lib/oci/core/virtual_network_client.rb
# Creates a public IP. Use the `lifetime` property to specify whether it's an ephemeral or
# reserved public IP. For information about limits on how many you can create, see
# [Public IP Addresses](https://docs.cloud.oracle.com/Content/Network/Tasks/managingpublicIPs.htm).
#
# * **For an ephemeral public IP assigned to a private IP:** You must also specify a `privateIpId`
# with the OCID of the primary private IP you want to assign the public IP to. The public IP is
# created in the same availability domain as the private IP. An ephemeral public IP must always be
# assigned to a private IP, and only to the *primary* private IP on a VNIC, not a secondary
# private IP. Exception: If you create a {NatGateway}, Oracle
# automatically assigns the NAT gateway a regional ephemeral public IP that you cannot remove.
#
# * **For a reserved public IP:** You may also optionally assign the public IP to a private
# IP by specifying `privateIpId`. Or you can later assign the public IP with
# {#update_public_ip update_public_ip}.
#
# **Note:** When assigning a public IP to a private IP, the private IP must not already have
# a public IP with `lifecycleState` = ASSIGNING or ASSIGNED. If it does, an error is returned.
#
# Also, for reserved public IPs, the optional assignment part of this operation is
# asynchronous. Poll the public IP's `lifecycleState` to determine if the assignment
# succeeded.
#
# @param [OCI::Core::Models::CreatePublicIpDetails] create_public_ip_details Create public IP details.
# @param [Hash] opts the optional parameters
# @option opts [OCI::Retry::RetryConfig] :retry_config The retry configuration to apply to this operation. If no key is provided then the service-level
#   retry configuration defined by {#retry_config} will be used. If an explicit `nil` value is provided then the operation will not retry
# @option opts [String] :opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or
#   server error without risk of executing that same action again. Retry tokens expire after 24
#   hours, but can be invalidated before then due to conflicting operations (for example, if a resource
#   has been deleted and purged from the system, then a retry of the original creation request
#   may be rejected).
#
# @return [Response] A Response object with data of type {OCI::Core::Models::PublicIp PublicIp}
Creates a public IP. Use the `lifetime` property to specify whether it's an ephemeral or
reserved public IP. For information about limits on how many you can create, see
[Public IP Addresses].

For an ephemeral public IP assigned to a private IP:** You must also specify a `privateIpId`
with the OCID of the primary private IP you want to assign the public IP to. The public IP is
created in the same availability domain as the private IP. An ephemeral public IP must always be
assigned to a private IP, and only to the *primary* private IP on a VNIC, not a secondary
private IP. Exception: If you create a {NatGateway}, Oracle
automatically assigns the NAT gateway a regional ephemeral public IP that you cannot remove.

For a reserved public IP:** You may also optionally assign the public IP to a private
IP by specifying `privateIpId`. Or you can later assign the public IP with
{#update_public_ip update_public_ip}.

When assigning a public IP to a private IP, the private IP must not already have
a public IP with `lifecycleState` = ASSIGNING or ASSIGNED. If it does, an error is returned.

Also, for reserved public IPs, the optional assignment part of this operation is
asynchronous. Poll the public IP's `lifecycleState` to determine if the assignment
succeeded.
Creates a public IP . Use the ` lifetime ` property to specify whether it ' s an ephemeral or reserved public IP . For information about limits on how many you can create see [ Public IP Addresses ] . For an ephemeral public IP assigned to a private IP : ** You must also specify a ` privateIpId ` with the OCID of the primary private IP you want to assign the public IP to . The public IP is created in the same availability domain as the private IP . An ephemeral public IP must always be assigned to a private IP and only to the * primary * private IP on a VNIC not a secondary private IP . Exception : If you create a { NatGateway } Oracle automatically assigns the NAT gateway a regional ephemeral public IP that you cannot remove . For a reserved public IP : ** You may also optionally assign the public IP to a private IP by specifying ` privateIpId ` . Or you can later assign the public IP with { #update_public_ip update_public_ip } . When assigning a public IP to a private IP the private IP must not already have a public IP with ` lifecycleState ` = ASSIGNING or ASSIGNED . If it does an error is returned . Also for reserved public IPs the optional assignment part of this operation is asynchronous . Poll the public IP ' s ` lifecycleState ` to determine if the assignment succeeded .
def create_public_ip(create_public_ip_details, opts = {})
      logger.debug 'Calling operation VirtualNetworkClient#create_public_ip.' if logger
      raise "Missing the required parameter 'create_public_ip_details' when calling create_public_ip." if create_public_ip_details.nil?
      path = '/publicIps'
      operation_signing_strategy = :standard
      query_params = {}
      header_params = {}
      header_params[:accept] = 'application/json'
      header_params[:'content-type'] = 'application/json'
      header_params[:'opc-retry-token'] = opts[:opc_retry_token] if opts[:opc_retry_token]
      header_params[:'opc-retry-token'] ||= OCI::Retry.generate_opc_retry_token
      post_body = @api_client.object_to_http_body(create_public_ip_details)
      OCI::Retry.make_retrying_call(applicable_retry_config(opts), call_name: 'VirtualNetworkClient#create_public_ip') do
        @api_client.call_api(
          :POST,
          path,
          endpoint,
          header_params: header_params,
          query_params: query_params,
          operation_signing_strategy: operation_signing_strategy,
          body: post_body,
          return_type: 'OCI::Core::Models::PublicIp'
        )
      end
    end
def create_public_ip ( create_public_ip_details , opts = { } ) logger . debug 'Calling operation VirtualNetworkClient#create_public_ip.' if logger raise "Missing the required parameter 'create_public_ip_details' when calling create_public_ip." if create_public_ip_details . nil? path = '/publicIps' operation_signing_strategy = :standard query_params = { } header_params = { } header_params [ :accept ] = 'application/json' header_params [ :' content-type ' ] = 'application/json' header_params [ :' opc-retry-token ' ] = opts [ :opc_retry_token ] if opts [ :opc_retry_token ] header_params [ :' opc-retry-token ' ] ||= OCI :: Retry . generate_opc_retry_token post_body = @api_client . object_to_http_body ( create_public_ip_details ) OCI :: Retry . make_retrying_call ( applicable_retry_config ( opts ) , call_name : 'VirtualNetworkClient#create_public_ip' ) do @api_client . call_api ( :POST , path , endpoint , header_params : header_params , query_params : query_params , operation_signing_strategy : operation_signing_strategy , body : post_body , return_type : 'OCI::Core::Models::PublicIp' ) end end
Creates a public IP.
Creates a public IP .
# rubocop:disable Style/NegatedIf # Query Params # Header Params # rubocop:enable Style/NegatedIf # rubocop:disable Metrics/BlockLength # rubocop:enable Metrics/BlockLength
A Response object with data of type {OCI::Core::Models::PublicIp PublicIp}
A Response object with data of type { OCI :: Core :: Models :: PublicIp PublicIp }
Response
create_public_ip_details
<not_specific>
opts
:opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again. Retry tokens expire after 24 hours, but can be invalidated before then due to conflicting operations (for example, if a resource has been deleted and purged from the system, then a retry of the original creation request may be rejected).
: opc_retry_token A token that uniquely identifies a request so it can be retried in case of a timeout or server error without risk of executing that same action again . Retry tokens expire after 24 hours but can be invalidated before then due to conflicting operations ( for example if a resource has been deleted and purged from the system then a retry of the original creation request may be rejected ) .
<not_specific>
opts the optional parameters
opts the optional parameters