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// Vcn A virtual cloud network (VCN). For more information, see 20// Overview of the Networking Service (https://docs.cloud.oracle.com/Content/Network/Concepts/overview.htm). 21// To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized, 22// talk to an administrator. If you're an administrator who needs to write policies to give users access, see 23// Getting Started with Policies (https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm). 24// **Warning:** Oracle recommends that you avoid using any confidential information when you 25// supply string values using the API. 26type Vcn struct { 27 28 // The CIDR IP address block of the VCN. 29 // Example: `172.16.0.0/16` 30 CidrBlock *string `mandatory:"true" json:"cidrBlock"` 31 32 // The OCID of the compartment containing the VCN. 33 CompartmentId *string `mandatory:"true" json:"compartmentId"` 34 35 // The VCN's Oracle ID (OCID). 36 Id *string `mandatory:"true" json:"id"` 37 38 // The VCN's current state. 39 LifecycleState VcnLifecycleStateEnum `mandatory:"true" json:"lifecycleState"` 40 41 // The OCID for the VCN's default set of DHCP options. 42 DefaultDhcpOptionsId *string `mandatory:"false" json:"defaultDhcpOptionsId"` 43 44 // The OCID for the VCN's default route table. 45 DefaultRouteTableId *string `mandatory:"false" json:"defaultRouteTableId"` 46 47 // The OCID for the VCN's default security list. 48 DefaultSecurityListId *string `mandatory:"false" json:"defaultSecurityListId"` 49 50 // Defined tags for this resource. Each key is predefined and scoped to a 51 // namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). 52 // Example: `{"Operations": {"CostCenter": "42"}}` 53 DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"` 54 55 // A user-friendly name. Does not have to be unique, and it's changeable. 56 // Avoid entering confidential information. 57 DisplayName *string `mandatory:"false" json:"displayName"` 58 59 // A DNS label for the VCN, used in conjunction with the VNIC's hostname and 60 // subnet's DNS label to form a fully qualified domain name (FQDN) for each VNIC 61 // within this subnet (for example, `bminstance-1.subnet123.vcn1.oraclevcn.com`). 62 // Must be an alphanumeric string that begins with a letter. 63 // The value cannot be changed. 64 // The absence of this parameter means the Internet and VCN Resolver will 65 // not work for this VCN. 66 // For more information, see 67 // DNS in Your Virtual Cloud Network (https://docs.cloud.oracle.com/Content/Network/Concepts/dns.htm). 68 // Example: `vcn1` 69 DnsLabel *string `mandatory:"false" json:"dnsLabel"` 70 71 // Free-form tags for this resource. Each tag is a simple key-value pair with no 72 // predefined name, type, or namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm). 73 // Example: `{"Department": "Finance"}` 74 FreeformTags map[string]string `mandatory:"false" json:"freeformTags"` 75 76 // For an IPv6-enabled VCN, this is the IPv6 CIDR block for the VCN's private IP address space. 77 // The VCN size is always /48. If you don't provide a value when creating the VCN, Oracle 78 // provides one and uses that *same* CIDR for the `ipv6PublicCidrBlock`. If you do provide a 79 // value, Oracle provides a *different* CIDR for the `ipv6PublicCidrBlock`. Note that IPv6 80 // addressing is currently supported only in the Government Cloud. 81 // Example: `2001:0db8:0123::/48` 82 Ipv6CidrBlock *string `mandatory:"false" json:"ipv6CidrBlock"` 83 84 // For an IPv6-enabled VCN, this is the IPv6 CIDR block for the VCN's public IP address space. 85 // The VCN size is always /48. This CIDR is always provided by Oracle. If you don't provide a 86 // custom CIDR for the `ipv6CidrBlock` when creating the VCN, Oracle assigns that value and also 87 // uses it for `ipv6PublicCidrBlock`. Oracle uses addresses from this block for the `publicIpAddress` 88 // attribute of an Ipv6 that has internet access allowed. 89 // Example: `2001:0db8:0123::/48` 90 Ipv6PublicCidrBlock *string `mandatory:"false" json:"ipv6PublicCidrBlock"` 91 92 // The date and time the VCN was created, in the format defined by RFC3339. 93 // Example: `2016-08-25T21:10:29.600Z` 94 TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"` 95 96 // The VCN's domain name, which consists of the VCN's DNS label, and the 97 // `oraclevcn.com` domain. 98 // For more information, see 99 // DNS in Your Virtual Cloud Network (https://docs.cloud.oracle.com/Content/Network/Concepts/dns.htm). 100 // Example: `vcn1.oraclevcn.com` 101 VcnDomainName *string `mandatory:"false" json:"vcnDomainName"` 102} 103 104func (m Vcn) String() string { 105 return common.PointerString(m) 106} 107 108// VcnLifecycleStateEnum Enum with underlying type: string 109type VcnLifecycleStateEnum string 110 111// Set of constants representing the allowable values for VcnLifecycleStateEnum 112const ( 113 VcnLifecycleStateProvisioning VcnLifecycleStateEnum = "PROVISIONING" 114 VcnLifecycleStateAvailable VcnLifecycleStateEnum = "AVAILABLE" 115 VcnLifecycleStateTerminating VcnLifecycleStateEnum = "TERMINATING" 116 VcnLifecycleStateTerminated VcnLifecycleStateEnum = "TERMINATED" 117) 118 119var mappingVcnLifecycleState = map[string]VcnLifecycleStateEnum{ 120 "PROVISIONING": VcnLifecycleStateProvisioning, 121 "AVAILABLE": VcnLifecycleStateAvailable, 122 "TERMINATING": VcnLifecycleStateTerminating, 123 "TERMINATED": VcnLifecycleStateTerminated, 124} 125 126// GetVcnLifecycleStateEnumValues Enumerates the set of values for VcnLifecycleStateEnum 127func GetVcnLifecycleStateEnumValues() []VcnLifecycleStateEnum { 128 values := make([]VcnLifecycleStateEnum, 0) 129 for _, v := range mappingVcnLifecycleState { 130 values = append(values, v) 131 } 132 return values 133} 134