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 13package core 14 15import ( 16 "github.com/oracle/oci-go-sdk/common" 17) 18 19// Ipv6 An *IPv6* is a conceptual term that refers to an IPv6 address and related properties. 20// The `IPv6` object is the API representation of an IPv6. 21// You can create and assign an IPv6 to any VNIC that is in an IPv6-enabled subnet in an 22// IPv6-enabled VCN. 23// **Note:** IPv6 addressing is currently supported only in the Government Cloud. 24// For important details about IPv6 addressing in a VCN, see IPv6 Addresses (https://docs.cloud.oracle.com/Content/Network/Concepts/ipv6.htm). 25type Ipv6 struct { 26 27 // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the compartment containing the IPv6. 28 // This is the same as the VNIC's compartment. 29 CompartmentId *string `mandatory:"true" json:"compartmentId"` 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:"true" json:"displayName"` 34 35 // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the IPv6. 36 Id *string `mandatory:"true" json:"id"` 37 38 // The IPv6 address of the `IPv6` object. The address is within the private IPv6 CIDR block 39 // of the VNIC's subnet (see the `ipv6CidrBlock` attribute for the Subnet 40 // object). 41 // Example: `2001:0db8:0123:1111:abcd:ef01:2345:6789` 42 IpAddress *string `mandatory:"true" json:"ipAddress"` 43 44 // The IPv6's current state. 45 LifecycleState Ipv6LifecycleStateEnum `mandatory:"true" json:"lifecycleState"` 46 47 // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the subnet the VNIC is in. 48 SubnetId *string `mandatory:"true" json:"subnetId"` 49 50 // The date and time the IPv6 was created, in the format defined by RFC3339. 51 // Example: `2016-08-25T21:10:29.600Z` 52 TimeCreated *common.SDKTime `mandatory:"true" json:"timeCreated"` 53 54 // The OCID (https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm) of the VNIC the IPv6 is assigned to. 55 // The VNIC and IPv6 must be in the same subnet. 56 VnicId *string `mandatory:"true" json:"vnicId"` 57 58 // Defined tags for this resource. Each key is predefined and scoped to a 59 // namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). 60 // Example: `{"Operations": {"CostCenter": "42"}}` 61 DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` 62 63 // Free-form tags for this resource. Each tag is a simple key-value pair with no 64 // predefined name, type, or namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). 65 // Example: `{"Department": "Finance"}` 66 FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` 67 68 // Whether the IPv6 can be used for internet communication. Allowed by default for an IPv6 in 69 // a public subnet. Never allowed for an IPv6 in a private subnet. If the value is `true`, the 70 // IPv6 uses its public IP address for internet communication. 71 // Example: `true` 72 IsInternetAccessAllowed *bool `mandatory:"false" json:"isInternetAccessAllowed"` 73 74 // The IPv6 address to be used for internet communication. The address is within the public 75 // IPv6 CIDR block of the VNIC's subnet (see the `ipv6PublicCidrBlock` attribute for the 76 // Subnet object). 77 // If your organization did NOT assign a custom IPv6 CIDR to the VCN for the private address 78 // space, Oracle provides the IPv6 CIDR and uses that same CIDR for the private and public 79 // address space. Therefore the `publicIpAddress` would be the same as the `ipAddress`. 80 // If your organization assigned a custom IPv6 CIDR to the VCN for the private address space, 81 // the right 80 bits of the IPv6 public IP (the subnet and address bits) are the same as for 82 // the `ipAddress`. But the left 48 bits are from the public IPv6 CIDR that Oracle assigned 83 // to the VCN. 84 // This is null if the IPv6 is created with `isInternetAccessAllowed` set to `false`. 85 // Example: `2001:0db8:0123:1111:abcd:ef01:2345:6789` 86 PublicIpAddress *string `mandatory:"false" json:"publicIpAddress"` 87} 88 89func (m Ipv6) String() string { 90 return common.PointerString(m) 91} 92 93// Ipv6LifecycleStateEnum Enum with underlying type: string 94type Ipv6LifecycleStateEnum string 95 96// Set of constants representing the allowable values for Ipv6LifecycleStateEnum 97const ( 98 Ipv6LifecycleStateProvisioning Ipv6LifecycleStateEnum = "PROVISIONING" 99 Ipv6LifecycleStateAvailable Ipv6LifecycleStateEnum = "AVAILABLE" 100 Ipv6LifecycleStateTerminating Ipv6LifecycleStateEnum = "TERMINATING" 101 Ipv6LifecycleStateTerminated Ipv6LifecycleStateEnum = "TERMINATED" 102) 103 104var mappingIpv6LifecycleState = map[string]Ipv6LifecycleStateEnum{ 105 "PROVISIONING": Ipv6LifecycleStateProvisioning, 106 "AVAILABLE": Ipv6LifecycleStateAvailable, 107 "TERMINATING": Ipv6LifecycleStateTerminating, 108 "TERMINATED": Ipv6LifecycleStateTerminated, 109} 110 111// GetIpv6LifecycleStateEnumValues Enumerates the set of values for Ipv6LifecycleStateEnum 112func GetIpv6LifecycleStateEnumValues() []Ipv6LifecycleStateEnum { 113 values := make([]Ipv6LifecycleStateEnum, 0) 114 for _, v := range mappingIpv6LifecycleState { 115 values = append(values, v) 116 } 117 return values 118} 119