Skip to content

Commit 13d13cf

Browse files
authored
Releasing version 6.2.0
Releasing version 6.2.0
2 parents 399ee69 + 5819d65 commit 13d13cf

35 files changed

+1054
-82
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](http://keepachangelog.com/)
66

7+
## 6.2.0 - 2019-08-06
8+
### Added
9+
- Support for IPv6 load balancers in the Load Balancing service
10+
- Support for IPv6 on VCN and FastConnect resources in the Networking service
11+
712
## 6.1.0 - 2019-07-30
813
### Added
914
- Support for the Mumbai (BOM) region

common/version.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/add_security_rule_details.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ type AddSecurityRuleDetails struct {
3434
// Conceptually, this is the range of IP addresses that a packet originating from the instance
3535
// can go to.
3636
// Allowed values:
37-
// * An IP address range in CIDR notation. For example: `192.168.1.0/24`
37+
// * An IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`
3838
// * The `cidrBlock` value for a Service, if you're
3939
// setting up a security rule for traffic destined for a particular `Service` through
4040
// a service gateway. For example: `oci-phx-objectstorage`.
@@ -74,7 +74,7 @@ type AddSecurityRuleDetails struct {
7474
// Conceptually, this is the range of IP addresses that a packet coming into the instance
7575
// can come from.
7676
// Allowed values:
77-
// * An IP address range in CIDR notation. For example: `192.168.1.0/24`
77+
// * An IP address range in CIDR notation. For example: `192.168.1.0/24` or `2001:0db8:0123:45::/56`
7878
// * The `cidrBlock` value for a Service, if you're
7979
// setting up a security rule for traffic coming from a particular `Service` through
8080
// a service gateway. For example: `oci-phx-objectstorage`.

core/core_virtualnetwork_client.go

Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1382,6 +1382,53 @@ func (client VirtualNetworkClient) createInternetGateway(ctx context.Context, re
13821382
return response, err
13831383
}
13841384

1385+
// CreateIpv6 Creates an IPv6 for the specified VNIC.
1386+
func (client VirtualNetworkClient) CreateIpv6(ctx context.Context, request CreateIpv6Request) (response CreateIpv6Response, err error) {
1387+
var ociResponse common.OCIResponse
1388+
policy := common.NoRetryPolicy()
1389+
if request.RetryPolicy() != nil {
1390+
policy = *request.RetryPolicy()
1391+
}
1392+
1393+
if !(request.OpcRetryToken != nil && *request.OpcRetryToken != "") {
1394+
request.OpcRetryToken = common.String(common.RetryToken())
1395+
}
1396+
1397+
ociResponse, err = common.Retry(ctx, request, client.createIpv6, policy)
1398+
if err != nil {
1399+
if ociResponse != nil {
1400+
response = CreateIpv6Response{RawResponse: ociResponse.HTTPResponse()}
1401+
}
1402+
return
1403+
}
1404+
if convertedResponse, ok := ociResponse.(CreateIpv6Response); ok {
1405+
response = convertedResponse
1406+
} else {
1407+
err = fmt.Errorf("failed to convert OCIResponse into CreateIpv6Response")
1408+
}
1409+
return
1410+
}
1411+
1412+
// createIpv6 implements the OCIOperation interface (enables retrying operations)
1413+
func (client VirtualNetworkClient) createIpv6(ctx context.Context, request common.OCIRequest) (common.OCIResponse, error) {
1414+
httpRequest, err := request.HTTPRequest(http.MethodPost, "/ipv6")
1415+
if err != nil {
1416+
return nil, err
1417+
}
1418+
1419+
var response CreateIpv6Response
1420+
var httpResponse *http.Response
1421+
httpResponse, err = client.Call(ctx, &httpRequest)
1422+
defer common.CloseBodyIfValid(httpResponse)
1423+
response.RawResponse = httpResponse
1424+
if err != nil {
1425+
return response, err
1426+
}
1427+
1428+
err = common.UnmarshalResponse(httpResponse, &response)
1429+
return response, err
1430+
}
1431+
13851432
// CreateLocalPeeringGateway Creates a new local peering gateway (LPG) for the specified VCN.
13861433
func (client VirtualNetworkClient) CreateLocalPeeringGateway(ctx context.Context, request CreateLocalPeeringGatewayRequest) (response CreateLocalPeeringGatewayResponse, err error) {
13871434
var ociResponse common.OCIResponse
@@ -2415,6 +2462,49 @@ func (client VirtualNetworkClient) deleteInternetGateway(ctx context.Context, re
24152462
return response, err
24162463
}
24172464

2465+
// DeleteIpv6 Unassigns and deletes the specified IPv6. You must specify the object's OCID.
2466+
// The IPv6 address is returned to the subnet's pool of available addresses.
2467+
func (client VirtualNetworkClient) DeleteIpv6(ctx context.Context, request DeleteIpv6Request) (response DeleteIpv6Response, err error) {
2468+
var ociResponse common.OCIResponse
2469+
policy := common.NoRetryPolicy()
2470+
if request.RetryPolicy() != nil {
2471+
policy = *request.RetryPolicy()
2472+
}
2473+
ociResponse, err = common.Retry(ctx, request, client.deleteIpv6, policy)
2474+
if err != nil {
2475+
if ociResponse != nil {
2476+
response = DeleteIpv6Response{RawResponse: ociResponse.HTTPResponse()}
2477+
}
2478+
return
2479+
}
2480+
if convertedResponse, ok := ociResponse.(DeleteIpv6Response); ok {
2481+
response = convertedResponse
2482+
} else {
2483+
err = fmt.Errorf("failed to convert OCIResponse into DeleteIpv6Response")
2484+
}
2485+
return
2486+
}
2487+
2488+
// deleteIpv6 implements the OCIOperation interface (enables retrying operations)
2489+
func (client VirtualNetworkClient) deleteIpv6(ctx context.Context, request common.OCIRequest) (common.OCIResponse, error) {
2490+
httpRequest, err := request.HTTPRequest(http.MethodDelete, "/ipv6/{ipv6Id}")
2491+
if err != nil {
2492+
return nil, err
2493+
}
2494+
2495+
var response DeleteIpv6Response
2496+
var httpResponse *http.Response
2497+
httpResponse, err = client.Call(ctx, &httpRequest)
2498+
defer common.CloseBodyIfValid(httpResponse)
2499+
response.RawResponse = httpResponse
2500+
if err != nil {
2501+
return response, err
2502+
}
2503+
2504+
err = common.UnmarshalResponse(httpResponse, &response)
2505+
return response, err
2506+
}
2507+
24182508
// DeleteLocalPeeringGateway Deletes the specified local peering gateway (LPG).
24192509
// This is an asynchronous operation; the local peering gateway's `lifecycleState` changes to TERMINATING temporarily
24202510
// until the local peering gateway is completely removed.
@@ -3698,6 +3788,51 @@ func (client VirtualNetworkClient) getInternetGateway(ctx context.Context, reque
36983788
return response, err
36993789
}
37003790

3791+
// GetIpv6 Gets the specified IPv6. You must specify the object's OCID.
3792+
// Alternatively, you can get the object by using
3793+
// ListIpv6s
3794+
// with the IPv6 address (for example, 2001:0db8:0123:1111:98fe:dcba:9876:4321) and subnet OCID.
3795+
func (client VirtualNetworkClient) GetIpv6(ctx context.Context, request GetIpv6Request) (response GetIpv6Response, err error) {
3796+
var ociResponse common.OCIResponse
3797+
policy := common.NoRetryPolicy()
3798+
if request.RetryPolicy() != nil {
3799+
policy = *request.RetryPolicy()
3800+
}
3801+
ociResponse, err = common.Retry(ctx, request, client.getIpv6, policy)
3802+
if err != nil {
3803+
if ociResponse != nil {
3804+
response = GetIpv6Response{RawResponse: ociResponse.HTTPResponse()}
3805+
}
3806+
return
3807+
}
3808+
if convertedResponse, ok := ociResponse.(GetIpv6Response); ok {
3809+
response = convertedResponse
3810+
} else {
3811+
err = fmt.Errorf("failed to convert OCIResponse into GetIpv6Response")
3812+
}
3813+
return
3814+
}
3815+
3816+
// getIpv6 implements the OCIOperation interface (enables retrying operations)
3817+
func (client VirtualNetworkClient) getIpv6(ctx context.Context, request common.OCIRequest) (common.OCIResponse, error) {
3818+
httpRequest, err := request.HTTPRequest(http.MethodGet, "/ipv6/{ipv6Id}")
3819+
if err != nil {
3820+
return nil, err
3821+
}
3822+
3823+
var response GetIpv6Response
3824+
var httpResponse *http.Response
3825+
httpResponse, err = client.Call(ctx, &httpRequest)
3826+
defer common.CloseBodyIfValid(httpResponse)
3827+
response.RawResponse = httpResponse
3828+
if err != nil {
3829+
return response, err
3830+
}
3831+
3832+
err = common.UnmarshalResponse(httpResponse, &response)
3833+
return response, err
3834+
}
3835+
37013836
// GetLocalPeeringGateway Gets the specified local peering gateway's information.
37023837
func (client VirtualNetworkClient) GetLocalPeeringGateway(ctx context.Context, request GetLocalPeeringGatewayRequest) (response GetLocalPeeringGatewayResponse, err error) {
37033838
var ociResponse common.OCIResponse
@@ -5002,6 +5137,54 @@ func (client VirtualNetworkClient) listInternetGateways(ctx context.Context, req
50025137
return response, err
50035138
}
50045139

5140+
// ListIpv6s Lists the Ipv6 objects based
5141+
// on one of these filters:
5142+
// * Subnet OCID.
5143+
// * VNIC OCID.
5144+
// * Both IPv6 address and subnet OCID: This lets you get an `Ipv6` object based on its private
5145+
// IPv6 address (for example, 2001:0db8:0123:1111:abcd:ef01:2345:6789) and not its OCID. For comparison,
5146+
// GetIpv6 requires the OCID.
5147+
func (client VirtualNetworkClient) ListIpv6s(ctx context.Context, request ListIpv6sRequest) (response ListIpv6sResponse, err error) {
5148+
var ociResponse common.OCIResponse
5149+
policy := common.NoRetryPolicy()
5150+
if request.RetryPolicy() != nil {
5151+
policy = *request.RetryPolicy()
5152+
}
5153+
ociResponse, err = common.Retry(ctx, request, client.listIpv6s, policy)
5154+
if err != nil {
5155+
if ociResponse != nil {
5156+
response = ListIpv6sResponse{RawResponse: ociResponse.HTTPResponse()}
5157+
}
5158+
return
5159+
}
5160+
if convertedResponse, ok := ociResponse.(ListIpv6sResponse); ok {
5161+
response = convertedResponse
5162+
} else {
5163+
err = fmt.Errorf("failed to convert OCIResponse into ListIpv6sResponse")
5164+
}
5165+
return
5166+
}
5167+
5168+
// listIpv6s implements the OCIOperation interface (enables retrying operations)
5169+
func (client VirtualNetworkClient) listIpv6s(ctx context.Context, request common.OCIRequest) (common.OCIResponse, error) {
5170+
httpRequest, err := request.HTTPRequest(http.MethodGet, "/ipv6")
5171+
if err != nil {
5172+
return nil, err
5173+
}
5174+
5175+
var response ListIpv6sResponse
5176+
var httpResponse *http.Response
5177+
httpResponse, err = client.Call(ctx, &httpRequest)
5178+
defer common.CloseBodyIfValid(httpResponse)
5179+
response.RawResponse = httpResponse
5180+
if err != nil {
5181+
return response, err
5182+
}
5183+
5184+
err = common.UnmarshalResponse(httpResponse, &response)
5185+
return response, err
5186+
}
5187+
50055188
// ListLocalPeeringGateways Lists the local peering gateways (LPGs) for the specified VCN and compartment
50065189
// (the LPG's compartment).
50075190
func (client VirtualNetworkClient) ListLocalPeeringGateways(ctx context.Context, request ListLocalPeeringGatewaysRequest) (response ListLocalPeeringGatewaysResponse, err error) {
@@ -6230,6 +6413,53 @@ func (client VirtualNetworkClient) updateInternetGateway(ctx context.Context, re
62306413
return response, err
62316414
}
62326415

6416+
// UpdateIpv6 Updates the specified IPv6. You must specify the object's OCID.
6417+
// Use this operation if you want to:
6418+
// * Move an IPv6 to a different VNIC in the same subnet.
6419+
// * Enable/disable internet access for an IPv6.
6420+
// * Change the display name for an IPv6.
6421+
// * Update resource tags for an IPv6.
6422+
func (client VirtualNetworkClient) UpdateIpv6(ctx context.Context, request UpdateIpv6Request) (response UpdateIpv6Response, err error) {
6423+
var ociResponse common.OCIResponse
6424+
policy := common.NoRetryPolicy()
6425+
if request.RetryPolicy() != nil {
6426+
policy = *request.RetryPolicy()
6427+
}
6428+
ociResponse, err = common.Retry(ctx, request, client.updateIpv6, policy)
6429+
if err != nil {
6430+
if ociResponse != nil {
6431+
response = UpdateIpv6Response{RawResponse: ociResponse.HTTPResponse()}
6432+
}
6433+
return
6434+
}
6435+
if convertedResponse, ok := ociResponse.(UpdateIpv6Response); ok {
6436+
response = convertedResponse
6437+
} else {
6438+
err = fmt.Errorf("failed to convert OCIResponse into UpdateIpv6Response")
6439+
}
6440+
return
6441+
}
6442+
6443+
// updateIpv6 implements the OCIOperation interface (enables retrying operations)
6444+
func (client VirtualNetworkClient) updateIpv6(ctx context.Context, request common.OCIRequest) (common.OCIResponse, error) {
6445+
httpRequest, err := request.HTTPRequest(http.MethodPut, "/ipv6/{ipv6Id}")
6446+
if err != nil {
6447+
return nil, err
6448+
}
6449+
6450+
var response UpdateIpv6Response
6451+
var httpResponse *http.Response
6452+
httpResponse, err = client.Call(ctx, &httpRequest)
6453+
defer common.CloseBodyIfValid(httpResponse)
6454+
response.RawResponse = httpResponse
6455+
if err != nil {
6456+
return response, err
6457+
}
6458+
6459+
err = common.UnmarshalResponse(httpResponse, &response)
6460+
return response, err
6461+
}
6462+
62336463
// UpdateLocalPeeringGateway Updates the specified local peering gateway (LPG).
62346464
func (client VirtualNetworkClient) UpdateLocalPeeringGateway(ctx context.Context, request UpdateLocalPeeringGatewayRequest) (response UpdateLocalPeeringGatewayResponse, err error) {
62356465
var ociResponse common.OCIResponse

core/create_ipv6_details.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// Copyright (c) 2016, 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2+
// Code generated. DO NOT EDIT.
3+
4+
// Core Services API
5+
//
6+
// API covering the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm),
7+
// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and
8+
// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. Use this API
9+
// to manage resources such as virtual cloud networks (VCNs), compute instances, and
10+
// block storage volumes.
11+
//
12+
13+
package core
14+
15+
import (
16+
"github.com/oracle/oci-go-sdk/common"
17+
)
18+
19+
// CreateIpv6Details The representation of CreateIpv6Details
20+
type CreateIpv6Details struct {
21+
22+
// The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the VNIC to assign the IPv6 to. The
23+
// IPv6 will be in the VNIC's subnet.
24+
VnicId *string `mandatory:"true" json:"vnicId"`
25+
26+
// Defined tags for this resource. Each key is predefined and scoped to a
27+
// namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
28+
// Example: `{"Operations": {"CostCenter": "42"}}`
29+
DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
30+
31+
// A user-friendly name. Does not have to be unique, and it's changeable. Avoid
32+
// entering confidential information.
33+
DisplayName *string `mandatory:"false" json:"displayName"`
34+
35+
// Free-form tags for this resource. Each tag is a simple key-value pair with no
36+
// predefined name, type, or namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
37+
// Example: `{"Department": "Finance"}`
38+
FreeformTags map[string]string `mandatory:"false" json:"freeformTags"`
39+
40+
// An IPv6 address of your choice. Must be an available IP address within
41+
// the subnet's CIDR. If you don't specify a value, Oracle automatically
42+
// assigns an IPv6 address from the subnet. The subnet is the one that
43+
// contains the VNIC you specify in `vnicId`.
44+
// Example: `2001:0db8:0123:1111:abcd:ef01:2345:6789`
45+
IpAddress *string `mandatory:"false" json:"ipAddress"`
46+
47+
// Whether the IPv6 can be used for internet communication. Allowed by default for an IPv6 in
48+
// a public subnet. Never allowed for an IPv6 in a private subnet. If the value is `true`, the
49+
// IPv6 uses its public IP address for internet communication.
50+
// If `isInternetAccessAllowed` is set to `false`, the resulting `publicIpAddress` attribute
51+
// for the Ipv6 is null.
52+
// Example: `true`
53+
IsInternetAccessAllowed *bool `mandatory:"false" json:"isInternetAccessAllowed"`
54+
}
55+
56+
func (m CreateIpv6Details) String() string {
57+
return common.PointerString(m)
58+
}

0 commit comments

Comments
 (0)