oracle.oci.oci_network_public_ip_facts (5.0.0) — module

Fetches details about one or multiple PublicIp resources in Oracle Cloud Infrastructure

| "added in version" 2.9.0 of oracle.oci"

Authors: Oracle (@oracle)

preview | supported by community

Install collection

Install with ansible-galaxy collection install oracle.oci:==5.0.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 5.0.0

Description

Fetches details about one or multiple PublicIp resources in Oracle Cloud Infrastructure

Lists the L(PublicIp,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PublicIp/) objects in the specified compartment. You can filter the list by using query parameters.

To list your reserved public IPs: * Set `scope` = `REGION` (required) * Leave the `availabilityDomain` parameter empty * Set `lifetime` = `RESERVED`

To list the ephemeral public IPs assigned to a regional entity such as a NAT gateway: * Set `scope` = `REGION` (required) * Leave the `availabilityDomain` parameter empty * Set `lifetime` = `EPHEMERAL`

To list the ephemeral public IPs assigned to private IPs: * Set `scope` = `AVAILABILITY_DOMAIN` (required) * Set the `availabilityDomain` parameter to the desired availability domain (required) * Set `lifetime` = `EPHEMERAL`

**Note:** An ephemeral public IP assigned to a private IP is always in the same availability domain and compartment as the private IP.

If I(public_ip_id) is specified, the details of a single PublicIp will be returned.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Get a specific public_ip
  oci_network_public_ip_facts:
    # required
    public_ip_id: "ocid1.publicip.oc1..xxxxxxEXAMPLExxxxxx"
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: List public_ips
  oci_network_public_ip_facts:
    # required
    scope: REGION
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    private_ip_id: private_ip_id_example
    ip_address: ip_address_example
    availability_domain: Uocm:PHX-AD-1
    lifetime: EPHEMERAL
    public_ip_pool_id: "ocid1.publicippool.oc1..xxxxxxEXAMPLExxxxxx"

Inputs

    
scope:
    choices:
    - REGION
    - AVAILABILITY_DOMAIN
    description:
    - Whether the public IP is regional or specific to a particular availability domain.
    - '* `REGION`: The public IP exists within a region and is assigned to a regional
      entity (such as a L(NatGateway,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NatGateway/)),
      or can be assigned to a private IP in any availability domain in the region. Reserved
      public IPs have `scope` = `REGION`, as do ephemeral public IPs assigned to a regional
      entity.'
    - '* `AVAILABILITY_DOMAIN`: The public IP exists within the availability domain of
      the entity it''s assigned to, which is specified by the `availabilityDomain` property
      of the public IP object. Ephemeral public IPs that are assigned to private IPs have
      `scope` = `AVAILABILITY_DOMAIN`.'
    - Required to list multiple public_ips.
    type: str

region:
    description:
    - The Oracle Cloud Infrastructure region to use for all OCI API requests. If not set,
      then the value of the OCI_REGION variable, if any, is used. This option is required
      if the region is not specified through a configuration file (See C(config_file_location)).
      Please refer to U(https://docs.us-phoenix-1.oraclecloud.com/Content/General/Concepts/regions.htm)
      for more information on OCI regions.
    type: str

tenancy:
    description:
    - OCID of your tenancy. If not set, then the value of the OCI_TENANCY variable, if
      any, is used. This option is required if the tenancy OCID is not specified through
      a configuration file (See C(config_file_location)). To get the tenancy OCID, please
      refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm)
    type: str

api_user:
    description:
    - The OCID of the user, on whose behalf, OCI APIs are invoked. If not set, then the
      value of the OCI_USER_ID environment variable, if any, is used. This option is required
      if the user is not specified through a configuration file (See C(config_file_location)).
      To get the user's OCID, please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

lifetime:
    choices:
    - EPHEMERAL
    - RESERVED
    description:
    - A filter to return only public IPs that match given lifetime.
    type: str

auth_type:
    choices:
    - api_key
    - instance_principal
    - instance_obo_user
    - resource_principal
    - security_token
    default: api_key
    description:
    - The type of authentication to use for making API requests. By default C(auth_type="api_key")
      based authentication is performed and the API key (see I(api_user_key_file)) in
      your config file will be used. If this 'auth_type' module option is not specified,
      the value of the OCI_ANSIBLE_AUTH_TYPE, if any, is used. Use C(auth_type="instance_principal")
      to use instance principal based authentication when running ansible playbooks within
      an OCI compute instance.
    type: str

ip_address:
    description:
    - OCID of the private IP that the public IP is assigned to. Use I(private_ip_id) to
      retrieve information of a public IP assigned to it.
    type: str

cert_bundle:
    description:
    - The full path to a CA certificate bundle to be used for SSL verification. This will
      override the default CA certificate bundle. If not set, then the value of the OCI_ANSIBLE_CERT_BUNDLE
      variable, if any, is used.
    type: str

auth_purpose:
    choices:
    - service_principal
    description:
    - The auth purpose which can be used in conjunction with 'auth_type=instance_principal'.
      The default auth_purpose for instance_principal is None.
    type: str

display_name:
    description: Use I(display_name) along with the other options to return only resources
      that match the given display name exactly.
    type: str

public_ip_id:
    aliases:
    - id
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the public IP.
    - Required to get a specific public_ip.
    type: str

private_ip_id:
    description:
    - OCID of the private IP that the public IP is assigned to. Use I(private_ip_id) to
      retrieve information of a public IP assigned to it.
    type: str

compartment_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the compartment.
    - Required to list multiple public_ips.
    type: str

api_user_key_file:
    description:
    - Full path and filename of the private key (in PEM format). If not set, then the
      value of the OCI_USER_KEY_FILE variable, if any, is used. This option is required
      if the private key is not specified through a configuration file (See C(config_file_location)).
      If the key is encrypted with a pass-phrase, the C(api_user_key_pass_phrase) option
      must also be provided.
    type: str

public_ip_pool_id:
    description:
    - A filter to return only resources that belong to the given public IP pool.
    type: str

availability_domain:
    description:
    - The name of the availability domain.
    - 'Example: `Uocm:PHX-AD-1`'
    type: str

config_profile_name:
    description:
    - The profile to load from the config file referenced by C(config_file_location).
      If not set, then the value of the OCI_CONFIG_PROFILE environment variable, if any,
      is used. Otherwise, defaults to the "DEFAULT" profile in C(config_file_location).
    type: str

api_user_fingerprint:
    description:
    - Fingerprint for the key pair being used. If not set, then the value of the OCI_USER_FINGERPRINT
      environment variable, if any, is used. This option is required if the key fingerprint
      is not specified through a configuration file (See C(config_file_location)). To
      get the key pair's fingerprint value please refer U(https://docs.us-phoenix-1.oraclecloud.com/Content/API/Concepts/apisigningkey.htm).
    type: str

config_file_location:
    description:
    - Path to configuration file. If not set then the value of the OCI_CONFIG_FILE environment
      variable, if any, is used. Otherwise, defaults to ~/.oci/config.
    type: str

api_user_key_pass_phrase:
    description:
    - Passphrase used by the key referenced in C(api_user_key_file), if it is encrypted.
      If not set, then the value of the OCI_USER_KEY_PASS_PHRASE variable, if any, is
      used. This option is required if the key passphrase is not specified through a configuration
      file (See C(config_file_location)).
    type: str

realm_specific_endpoint_template_enabled:
    description:
    - Enable/Disable realm specific endpoint template for service client. By Default,
      realm specific endpoint template is disabled. If not set, then the value of the
      OCI_REALM_SPECIFIC_SERVICE_ENDPOINT_TEMPLATE_ENABLED variable, if any, is used.
    type: bool

Outputs

public_ips:
  contains:
    assigned_entity_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the entity the public IP is assigned to, or in the process of being assigned
        to.
      returned: on success
      sample: ocid1.assignedentity.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    assigned_entity_type:
      description:
      - The type of entity the public IP is assigned to, or in the process of being
        assigned to.
      returned: on success
      sample: PRIVATE_IP
      type: str
    availability_domain:
      description:
      - The public IP's availability domain. This property is set only for ephemeral
        public IPs that are assigned to a private IP (that is, when the `scope` of
        the public IP is set to AVAILABILITY_DOMAIN). The value is the availability
        domain of the assigned private IP.
      - 'Example: `Uocm:PHX-AD-1`'
      returned: on success
      sample: Uocm:PHX-AD-1
      type: str
    compartment_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the compartment containing the public IP. For an ephemeral public IP, this
        is the compartment of its assigned entity (which can be a private IP or a
        regional entity such as a NAT gateway). For a reserved public IP that is currently
        assigned, its compartment can be different from the assigned private IP's.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    defined_tags:
      description:
      - Defined tags for this resource. Each key is predefined and scoped to a namespace.
        For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Operations": {"CostCenter": "42"}}`'
      returned: on success
      sample:
        Operations:
          CostCenter: US
      type: dict
    display_name:
      description:
      - A user-friendly name. Does not have to be unique, and it's changeable. Avoid
        entering confidential information.
      returned: on success
      sample: display_name_example
      type: str
    freeform_tags:
      description:
      - Free-form tags for this resource. Each tag is a simple key-value pair with
        no predefined name, type, or namespace. For more information, see L(Resource
        Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
      - 'Example: `{"Department": "Finance"}`'
      returned: on success
      sample:
        Department: Finance
      type: dict
    id:
      description:
      - The public IP's Oracle ID (L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)).
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    ip_address:
      description:
      - The public IP address of the `publicIp` object.
      - 'Example: `203.0.113.2`'
      returned: on success
      sample: ip_address_example
      type: str
    lifecycle_state:
      description:
      - The public IP's current state.
      returned: on success
      sample: PROVISIONING
      type: str
    lifetime:
      description:
      - Defines when the public IP is deleted and released back to Oracle's public
        IP pool.
      - '* `EPHEMERAL`: The lifetime is tied to the lifetime of its assigned entity.
        An ephemeral public IP must always be assigned to an entity. If the assigned
        entity is a private IP, the ephemeral public IP is automatically deleted when
        the private IP is deleted, when the VNIC is terminated, or when the instance
        is terminated. If the assigned entity is a L(NatGateway,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NatGateway/),
        the ephemeral public IP is automatically deleted when the NAT gateway is terminated.'
      - '* `RESERVED`: You control the public IP''s lifetime. You can delete a reserved
        public IP whenever you like. It does not need to be assigned to a private
        IP at all times.'
      - For more information and comparison of the two types, see L(Public IP Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingpublicIPs.htm).
      returned: on success
      sample: EPHEMERAL
      type: str
    private_ip_id:
      description:
      - Deprecated. Use `assignedEntityId` instead.
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the private IP that the public IP is currently assigned to, or in the process
        of being assigned to.
      - '**Note:** This is `null` if the public IP is not assigned to a private IP,
        or is in the process of being assigned to one.'
      returned: on success
      sample: ocid1.privateip.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    public_ip_pool_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the pool object created in the current tenancy.
      returned: on success
      sample: ocid1.publicippool.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    scope:
      description:
      - Whether the public IP is regional or specific to a particular availability
        domain.
      - '* `REGION`: The public IP exists within a region and is assigned to a regional
        entity (such as a L(NatGateway,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NatGateway/)),
        or can be assigned to a private IP in any availability domain in the region.
        Reserved public IPs and ephemeral public IPs assigned to a regional entity
        have `scope` = `REGION`.'
      - '* `AVAILABILITY_DOMAIN`: The public IP exists within the availability domain
        of the entity it''s assigned to, which is specified by the `availabilityDomain`
        property of the public IP object. Ephemeral public IPs that are assigned to
        private IPs have `scope` = `AVAILABILITY_DOMAIN`.'
      returned: on success
      sample: REGION
      type: str
    time_created:
      description:
      - The date and time the public IP was created, in the format defined by L(RFC3339,https://tools.ietf.org/html/rfc3339).
      - 'Example: `2016-08-25T21:10:29.600Z`'
      returned: on success
      sample: '2013-10-20T19:20:30+01:00'
      type: str
  description:
  - List of PublicIp resources
  returned: on success
  sample:
  - assigned_entity_id: ocid1.assignedentity.oc1..xxxxxxEXAMPLExxxxxx
    assigned_entity_type: PRIVATE_IP
    availability_domain: Uocm:PHX-AD-1
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    defined_tags:
      Operations:
        CostCenter: US
    display_name: display_name_example
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    ip_address: ip_address_example
    lifecycle_state: PROVISIONING
    lifetime: EPHEMERAL
    private_ip_id: ocid1.privateip.oc1..xxxxxxEXAMPLExxxxxx
    public_ip_pool_id: ocid1.publicippool.oc1..xxxxxxEXAMPLExxxxxx
    scope: REGION
    time_created: '2013-10-20T19:20:30+01:00'
  type: complex