/** * Oracle Cloud Migrations API * A description of the Oracle Cloud Migrations API. * OpenAPI spec version: 20220919 * * * NOTE: This class is auto generated by OracleSDKGenerator. * Do not edit the class manually. * * Copyright (c) 2020, 2026, Oracle and/or its affiliates. All rights reserved. * This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. */ /** * Contains properties for a VNIC. You use this object when creating the * primary VNIC during instance launch or when creating a secondary VNIC. * For more information about VNICs, see * [Virtual Network Interface Cards (VNICs)](https://docs.oracle.com/iaas/Content/Network/Tasks/managingVNICs.htm). * */ export interface CreateVnicDetails { /** * Whether the VNIC should be assigned a public IP address. Defaults to whether * the subnet is public or private. If not set and the VNIC is being created * in a private subnet (that is, where {@code prohibitPublicIpOnVnic} = true in the * {@link Subnet}), then no public IP address is assigned. * If not set and the subnet is public ({@code prohibitPublicIpOnVnic} = false), then * a public IP address is assigned. If set to true and * {@code prohibitPublicIpOnVnic} = true, an error is returned. *
**Note:** This public IP address is associated with the primary private IP * on the VNIC. For more information, see * [IP Addresses](https://docs.oracle.com/iaas/Content/Network/Tasks/managingIPaddresses.htm). *
**Note:** There's a limit to the number of {@link PublicIp} * a VNIC or instance can have. If you try to create a secondary VNIC * with an assigned public IP for an instance that has already * reached its public IP limit, an error is returned. For information * about the public IP limits, see * [Public IP Addresses](https://docs.oracle.com/iaas/Content/Network/Tasks/managingpublicIPs.htm). *
Example: {@code false} *
If you specify a {@code vlanId}, then {@code assignPublicIp} must be set to false. See * {@link Vlan}. * */ "assignPublicIp"?: boolean; /** * Whether the VNIC should be assigned a DNS record. If set to false, there will be no DNS record * registration for the VNIC. If set to true, the DNS record will be registered. By default, * the value is true. *
If you specify a {@code hostnameLabel}, then {@code assignPrivateDnsRecord} must be set to true. * */ "assignPrivateDnsRecord"?: boolean; /** * Defined tags for this resource. Each key is predefined and scoped to a namespace. * Example: {@code {\"foo-namespace\": {\"bar-key\": \"value\"}}} * */ "definedTags"?: { [key: string]: { [key: string]: any; }; }; /** * A user-friendly name. Does not have to be unique, and it's changeable. * Avoid entering confidential information. * */ "displayName"?: string; /** * Simple key-value pair that is applied without any predefined name, type or scope. It exists only for cross-compatibility. * Example: {@code {\"bar-key\": \"value\"}} * */ "freeformTags"?: { [key: string]: string; }; /** * The hostname for the VNIC's primary private IP. Used for DNS. The value is the hostname * portion of the primary private IP's fully qualified domain name (FQDN) * (for example, {@code bminstance-1} in FQDN {@code bminstance-1.subnet123.vcn1.oraclevcn.com}). * Must be unique across all VNICs in the subnet and comply with * [RFC 952](https://tools.ietf.org/html/rfc952) and * [RFC 1123](https://tools.ietf.org/html/rfc1123). * The value appears in the {@link Vnic} object and also the * {@link PrivateIp} object returned by * {@link #listPrivateIps(ListPrivateIpsRequest) listPrivateIps} and * {@link #getPrivateIp(GetPrivateIpRequest) getPrivateIp}. *
For more information, see * [DNS in Your Virtual Cloud Network](https://docs.oracle.com/iaas/Content/Network/Concepts/dns.htm). *
When launching an instance, use this {@code hostnameLabel} instead * of the deprecated {@code hostnameLabel} in * {@link #launchInstanceDetails(LaunchInstanceDetailsRequest) launchInstanceDetails}. * If you provide both, the values must match. *
Example: {@code bminstance-1} *
If you specify a {@code vlanId}, the {@code hostnameLabel} cannot be specified. VNICs on a VLAN * can not be assigned a hostname. See {@link Vlan}. * */ "hostnameLabel"?: string; /** * List of OCIDs of the network security groups (NSGs) that are added to the VNIC. For more * information about NSGs, see * {@link NetworkSecurityGroup}. *
If a {@code vlanId} is specified, the {@code nsgIds} cannot be specified. The {@code vlanId}
* indicates that the VNIC will belong to a VLAN instead of a subnet. With VLANs,
* all VNICs in the VLAN belong to the NSGs that are associated with the VLAN.
* See {@link Vlan}.
*
*/
"nsgIds"?: Array
* If you specify a {@code vlanId}, the {@code privateIp} cannot be specified.
* See {@link Vlan}.
*
Example: {@code 10.0.3.3}
*
*/
"privateIp"?: string;
/**
* Whether the source/destination check is disabled on the VNIC.
* Defaults to {@code false}, which means the check is performed. For information
* about why you should skip the source/destination check, see
* [Using a Private IP as a Route Target](https://docs.oracle.com/iaas/Content/Network/Tasks/managingroutetables.htm#privateip).
*
* If you specify a {@code vlanId}, the {@code skipSourceDestCheck} cannot be specified because the
* source/destination check is always disabled for VNICs in a VLAN. See
* {@link Vlan}.
*
Example: {@code true}
*
*/
"skipSourceDestCheck"?: boolean;
/**
* The [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the subnet to create the VNIC. When launching an instance,
* use this {@code subnetId} instead of the deprecated {@code subnetId} in
* {@link #launchInstanceDetails(LaunchInstanceDetailsRequest) launchInstanceDetails}.
* At least one of them is required; if you provide both, the values must match.
*
If you are an Oracle Cloud VMware Solution customer and creating a secondary
* VNIC in a VLAN instead of a subnet, provide a {@code vlanId} instead of a {@code subnetId}.
* If you provide both {@code vlanId} and {@code subnetId}, the request fails.
*
*/
"subnetId"?: string;
/**
* Provide this attribute only if you are an Oracle Cloud VMware Solution
* customer and creating a secondary VNIC in a VLAN. The value is the [OCID](https://docs.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the VLAN.
* See {@link Vlan}.
*
Provide a {@code vlanId} instead of a {@code subnetId}. If you provide both
* {@code vlanId} and {@code subnetId}, the request fails.
*
*/
"vlanId"?: string;
}
export declare namespace CreateVnicDetails {
function getJsonObj(obj: CreateVnicDetails): object;
function getDeserializedJsonObj(obj: CreateVnicDetails): object;
}