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// PrivateIp A *private IP* is a conceptual term that refers to an IPv4 private IP address and related properties.
20// The `privateIp` object is the API representation of a private IP.
21// **Note:** For information about IPv6 addresses, see Ipv6.
22// Each instance has a *primary private IP* that is automatically created and
23// assigned to the primary VNIC during instance launch. If you add a secondary
24// VNIC to the instance, it also automatically gets a primary private IP. You
25// can't remove a primary private IP from its VNIC. The primary private IP is
26// automatically deleted when the VNIC is terminated.
27// You can add *secondary private IPs* to a VNIC after it's created. For more
28// information, see the `privateIp` operations and also
29// IP Addresses (https://docs.cloud.oracle.com/Content/Network/Tasks/managingIPaddresses.htm).
30// **Note:** Only
31// ListPrivateIps and
32// GetPrivateIp work with
33// *primary* private IPs. To create and update primary private IPs, you instead
34// work with instance and VNIC operations. For example, a primary private IP's
35// properties come from the values you specify in
36// CreateVnicDetails when calling either
37// LaunchInstance or
38// AttachVnic. To update the hostname
39// for a primary private IP, you use UpdateVnic.
40// To use any of the API operations, you must be authorized in an IAM policy. If you're not authorized,
41// talk to an administrator. If you're an administrator who needs to write policies to give users access, see
42// Getting Started with Policies (https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm).
43// **Warning:** Oracle recommends that you avoid using any confidential information when you
44// supply string values using the API.
45type PrivateIp struct {
46
47	// The private IP's availability domain. This attribute will be null if this is a *secondary*
48	// private IP assigned to a VNIC that is in a *regional* subnet.
49	// Example: `Uocm:PHX-AD-1`
50	AvailabilityDomain *string `mandatory:"false" json:"availabilityDomain"`
51
52	// The OCID of the compartment containing the private IP.
53	CompartmentId *string `mandatory:"false" json:"compartmentId"`
54
55	// Defined tags for this resource. Each key is predefined and scoped to a
56	// namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
57	// Example: `{"Operations": {"CostCenter": "42"}}`
58	DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
59
60	// A user-friendly name. Does not have to be unique, and it's changeable. Avoid
61	// entering confidential information.
62	DisplayName *string `mandatory:"false" json:"displayName"`
63
64	// Free-form tags for this resource. Each tag is a simple key-value pair with no
65	// predefined name, type, or namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
66	// Example: `{"Department": "Finance"}`
67	FreeformTags map[string]string `mandatory:"false" json:"freeformTags"`
68
69	// The hostname for the private IP. Used for DNS. The value is the hostname
70	// portion of the private IP's fully qualified domain name (FQDN)
71	// (for example, `bminstance-1` in FQDN `bminstance-1.subnet123.vcn1.oraclevcn.com`).
72	// Must be unique across all VNICs in the subnet and comply with
73	// RFC 952 (https://tools.ietf.org/html/rfc952) and
74	// RFC 1123 (https://tools.ietf.org/html/rfc1123).
75	// For more information, see
76	// DNS in Your Virtual Cloud Network (https://docs.cloud.oracle.com/Content/Network/Concepts/dns.htm).
77	// Example: `bminstance-1`
78	HostnameLabel *string `mandatory:"false" json:"hostnameLabel"`
79
80	// The private IP's Oracle ID (OCID).
81	Id *string `mandatory:"false" json:"id"`
82
83	// The private IP address of the `privateIp` object. The address is within the CIDR
84	// of the VNIC's subnet.
85	// Example: `10.0.3.3`
86	IpAddress *string `mandatory:"false" json:"ipAddress"`
87
88	// Whether this private IP is the primary one on the VNIC. Primary private IPs
89	// are unassigned and deleted automatically when the VNIC is terminated.
90	// Example: `true`
91	IsPrimary *bool `mandatory:"false" json:"isPrimary"`
92
93	// The OCID of the subnet the VNIC is in.
94	SubnetId *string `mandatory:"false" json:"subnetId"`
95
96	// The date and time the private IP was created, in the format defined by RFC3339.
97	// Example: `2016-08-25T21:10:29.600Z`
98	TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"`
99
100	// The OCID of the VNIC the private IP is assigned to. The VNIC and private IP
101	// must be in the same subnet.
102	VnicId *string `mandatory:"false" json:"vnicId"`
103}
104
105func (m PrivateIp) String() string {
106	return common.PointerString(m)
107}
108