oracle.oci.oci_compute_instance (5.0.0) — module

Manage an Instance resource 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

This module allows the user to create, update and delete an Instance resource in Oracle Cloud Infrastructure

For I(state=present), creates a new instance in the specified compartment and the specified availability domain. For general information about instances, see L(Overview of the Compute Service,https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm).

For information about access control and compartments, see L(Overview of the IAM Service,https://docs.cloud.oracle.com/iaas/Content/Identity/Concepts/overview.htm).

For information about availability domains, see L(Regions and Availability Domains,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/regions.htm). To get a list of availability domains, use the `ListAvailabilityDomains` operation in the Identity and Access Management Service API.

All Oracle Cloud Infrastructure resources, including instances, get an Oracle-assigned, unique ID called an Oracle Cloud Identifier (OCID). When you create a resource, you can find its OCID in the response. You can also retrieve a resource's OCID by using a List API operation on that resource type, or by viewing the resource in the Console.

To launch an instance using an image or a boot volume use the `sourceDetails` parameter in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/LaunchInstanceDetails).

When you launch an instance, it is automatically attached to a virtual network interface card (VNIC), called the *primary VNIC*. The VNIC has a private IP address from the subnet's CIDR. You can either assign a private IP address of your choice or let Oracle automatically assign one. You can choose whether the instance has a public IP address. To retrieve the addresses, use the L(ListVnicAttachments,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/VnicAttachment/ListVnicAttachments) operation to get the VNIC ID for the instance, and then call L(GetVnic,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vnic/GetVnic) with the VNIC ID.

You can later add secondary VNICs to an instance. For more information, see L(Virtual Network Interface Cards (VNICs),https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVNICs.htm).

To launch an instance from a Marketplace image listing, you must provide the image ID of the listing resource version that you want, but you also must subscribe to the listing before you try to launch the instance. To subscribe to the listing, use the L(GetAppCatalogListingAgreements,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersionAgreements/GetAppCatalogListingAgreements) operation to get the signature for the terms of use agreement for the desired listing resource version. Then, call L(CreateAppCatalogSubscription,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/AppCatalogSubscription/CreateAppCatalogSubscription) with the signature. To get the image ID for the LaunchInstance operation, call L(GetAppCatalogListingResourceVersion,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/AppCatalogListingResourceVersion/GetAppCatalogListingResourceVersion).

To determine whether capacity is available for a specific shape before you create an instance, use the L(CreateComputeCapacityReport,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/ComputeCapacityReport/CreateComputeCapacityReport) operation.

This resource has the following action operations in the M(oracle.oci.oci_compute_instance_actions) module: stop, start, softreset, reset, softstop, senddiagnosticinterrupt, diagnosticreboot, rebootmigrate.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create instance
  oci_compute_instance:
    # required
    availability_domain: Uocm:PHX-AD-1
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    create_vnic_details:
      # optional
      assign_public_ip: true
      assign_private_dns_record: true
      defined_tags: {'Operations': {'CostCenter': 'US'}}
      display_name: display_name_example
      freeform_tags: {'Department': 'Finance'}
      hostname_label: hostname_label_example
      nsg_ids: [ "nsg_ids_example" ]
      private_ip: private_ip_example
      skip_source_dest_check: true
      subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
      vlan_id: "ocid1.vlan.oc1..xxxxxxEXAMPLExxxxxx"
    dedicated_vm_host_id: "ocid1.dedicatedvmhost.oc1..xxxxxxEXAMPLExxxxxx"
    compute_cluster_id: "ocid1.computecluster.oc1..xxxxxxEXAMPLExxxxxx"
    hostname_label: hostname_label_example
    image_id: "ocid1.image.oc1..xxxxxxEXAMPLExxxxxx"
    ipxe_script: ipxe_script_example
    preemptible_instance_config:
      # required
      preemption_action:
        # required
        type: TERMINATE

        # optional
        preserve_boot_volume: true
    source_details:
      # required
      source_type: image

      # optional
      boot_volume_size_in_gbs: 56
      image_id: "ocid1.image.oc1..xxxxxxEXAMPLExxxxxx"
      kms_key_id: "ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx"
      boot_volume_vpus_per_gb: 56
      instance_source_image_filter_details:
        # required
        compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

        # optional
        defined_tags_filter: null
        operating_system: operating_system_example
        operating_system_version: operating_system_version_example
    subnet_id: "ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx"
    is_pv_encryption_in_transit_enabled: true
    platform_config:
      # required
      type: AMD_ROME_BM_GPU

      # optional
      is_secure_boot_enabled: true
      is_trusted_platform_module_enabled: true
      is_measured_boot_enabled: true
      is_memory_encryption_enabled: true
      numa_nodes_per_socket: NPS0
      is_symmetric_multi_threading_enabled: true
      is_access_control_service_enabled: true
      are_virtual_instructions_enabled: true
      is_input_output_memory_management_unit_enabled: true
    instance_configuration_id: "ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx"
    capacity_reservation_id: "ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx"
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
    agent_config:
      # optional
      is_monitoring_disabled: true
      is_management_disabled: true
      are_all_plugins_disabled: true
      plugins_config:
      - # required
        name: name_example
        desired_state: ENABLED
    metadata: null
    extended_metadata: null
    shape: shape_example
    shape_config:
      # optional
      ocpus: 3.4
      vcpus: 56
      memory_in_gbs: 3.4
      baseline_ocpu_utilization: BASELINE_1_8
      nvmes: 56
    instance_options:
      # optional
      are_legacy_imds_endpoints_disabled: true
    fault_domain: FAULT-DOMAIN-1
    launch_options:
      # optional
      firmware: BIOS
      remote_data_volume_type: ISCSI
      is_consistent_volume_naming_enabled: true
      boot_volume_type: ISCSI
      network_type: E1000
      is_pv_encryption_in_transit_enabled: true
    availability_config:
      # optional
      is_live_migration_preferred: true
      recovery_action: RESTORE_INSTANCE
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update instance
  oci_compute_instance:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    capacity_reservation_id: "ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx"
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
    agent_config:
      # optional
      is_monitoring_disabled: true
      is_management_disabled: true
      are_all_plugins_disabled: true
      plugins_config:
      - # required
        name: name_example
        desired_state: ENABLED
    metadata: null
    extended_metadata: null
    shape: shape_example
    shape_config:
      # optional
      ocpus: 3.4
      vcpus: 56
      memory_in_gbs: 3.4
      baseline_ocpu_utilization: BASELINE_1_8
      nvmes: 56
    update_operation_constraint: ALLOW_DOWNTIME
    instance_options:
      # optional
      are_legacy_imds_endpoints_disabled: true
    fault_domain: FAULT-DOMAIN-1
    launch_options:
      # optional
      firmware: BIOS
      remote_data_volume_type: ISCSI
      is_consistent_volume_naming_enabled: true
      boot_volume_type: ISCSI
      network_type: E1000
      is_pv_encryption_in_transit_enabled: true
    availability_config:
      # optional
      is_live_migration_preferred: true
      recovery_action: RESTORE_INSTANCE
    time_maintenance_reboot_due: time_maintenance_reboot_due_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update instance using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_instance:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example

    # optional
    capacity_reservation_id: "ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx"
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    freeform_tags: {'Department': 'Finance'}
    agent_config:
      # optional
      is_monitoring_disabled: true
      is_management_disabled: true
      are_all_plugins_disabled: true
      plugins_config:
      - # required
        name: name_example
        desired_state: ENABLED
    metadata: null
    extended_metadata: null
    shape: shape_example
    shape_config:
      # optional
      ocpus: 3.4
      vcpus: 56
      memory_in_gbs: 3.4
      baseline_ocpu_utilization: BASELINE_1_8
      nvmes: 56
    update_operation_constraint: ALLOW_DOWNTIME
    instance_options:
      # optional
      are_legacy_imds_endpoints_disabled: true
    fault_domain: FAULT-DOMAIN-1
    launch_options:
      # optional
      firmware: BIOS
      remote_data_volume_type: ISCSI
      is_consistent_volume_naming_enabled: true
      boot_volume_type: ISCSI
      network_type: E1000
      is_pv_encryption_in_transit_enabled: true
    availability_config:
      # optional
      is_live_migration_preferred: true
      recovery_action: RESTORE_INSTANCE
    time_maintenance_reboot_due: time_maintenance_reboot_due_example
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete instance
  oci_compute_instance:
    # required
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent

    # optional
    preserve_boot_volume: true
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete instance using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_instance:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    state: absent

Inputs

    
wait:
    default: true
    description: Whether to wait for create or delete operation to complete.
    type: bool

shape:
    description:
    - The shape of an instance. The shape determines the number of CPUs, amount of memory,
      and other resources allocated to the instance.
    - You can enumerate all available shapes by calling L(ListShapes,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Shape/ListShapes).
    - This parameter is updatable.
    type: str

state:
    choices:
    - present
    - absent
    default: present
    description:
    - The state of the Instance.
    - Use I(state=present) to create or update an Instance.
    - Use I(state=absent) to delete an Instance.
    required: false
    type: str

key_by:
    description: The list of attributes of this resource which should be used to uniquely
      identify an instance of the resource. By default, all the attributes of a resource
      are used to uniquely identify a resource.
    elements: str
    type: list

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

image_id:
    description:
    - Deprecated. Use `sourceDetails` with L(InstanceSourceViaImageDetails,https://docs.cloud.oracle.com/en-
      us/iaas/api/#/en/iaas/latest/requests/InstanceSourceViaImageDetails) source type
      instead. If you specify values for both, the values must match.
    type: str

metadata:
    description:
    - Custom metadata key/value pairs that you provide, such as the SSH public key required
      to connect to the instance.
    - 'A metadata service runs on every launched instance. The service is an HTTP endpoint
      listening on 169.254.169.254. You can use the service to:'
    - '* Provide information to L(Cloud-Init,https://cloudinit.readthedocs.org/en/latest/)
      to be used for various system initialization tasks.'
    - '* Get information about the instance, including the custom metadata that you provide
      when you launch the instance.'
    - '**Providing Cloud-Init Metadata**'
    - 'You can use the following metadata key names to provide information to Cloud-Init:'
    - '**"ssh_authorized_keys"** - Provide one or more public SSH keys to be included
      in the `~/.ssh/authorized_keys` file for the default user on the instance. Use a
      newline character to separate multiple keys. The SSH keys must be in the format
      necessary for the `authorized_keys` file, as shown in the example below.'
    - '**"user_data"** - Provide your own base64-encoded data to be used by Cloud-Init
      to run custom scripts or provide custom Cloud-Init configuration. For information
      about how to take advantage of user data, see the L(Cloud-Init Documentation,http://cloudinit.readthedocs.org/en/latest/topics/format.html).'
    - '**Metadata Example**'
    - '     "metadata" : { "quake_bot_level" : "Severe", "ssh_authorized_keys" : "ssh-rsa
      <your_public_SSH_key>== rsa-key-20160227", "user_data" : "<your_public_SSH_key>=="
      } **Getting Metadata on the Instance**'
    - 'To get information about your instance, connect to the instance using SSH and issue
      any of the following GET requests:'
    - '    curl -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/
      curl -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/metadata/
      curl -H "Authorization: Bearer Oracle" http://169.254.169.254/opc/v2/instance/metadata/<any-key-name>'
    - You'll get back a response that includes all the instance information; only the
      metadata information; or the metadata information for the specified key name, respectively.
    - The combined size of the `metadata` and `extendedMetadata` objects can be a maximum
      of 32,000 bytes.
    - This parameter is updatable.
    type: dict

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

subnet_id:
    description:
    - Deprecated. Instead use `subnetId` in L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/).
      At least one of them is required; if you provide both, the values must match.
    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

instance_id:
    aliases:
    - id
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the instance.
    - Required for update using I(state=present) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    - Required for delete using I(state=absent) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    type: str

ipxe_script:
    description:
    - This is an advanced option.
    - When a bare metal or virtual machine instance boots, the iPXE firmware that runs
      on the instance is configured to run an iPXE script to continue the boot process.
    - If you want more control over the boot process, you can provide your own custom
      iPXE script that will run when the instance boots. Be aware that the same iPXE script
      will run every time an instance boots, not only after the initial LaunchInstance
      call.
    - 'The default iPXE script connects to the instance''s local boot volume over iSCSI
      and performs a network boot. If you use a custom iPXE script and want to network-boot
      from the instance''s local boot volume over iSCSI the same way as the default iPXE
      script, use the following iSCSI IP address: 169.254.0.2, and boot volume IQN: iqn.2015-02.oracle.boot.'
    - If your instance boot volume attachment type is paravirtualized, the boot volume
      is attached to the instance through virtio-scsi and no iPXE script is used. If your
      instance boot volume attachment type is paravirtualized and you use custom iPXE
      to network boot into your instance, the primary boot volume is attached as a data
      volume through virtio-scsi drive.
    - For more information about the Bring Your Own Image feature of Oracle Cloud Infrastructure,
      see L(Bring Your Own Image,https://docs.cloud.oracle.com/iaas/Content/Compute/References/bringyourownimage.htm).
    - For more information about iPXE, see http://ipxe.org.
    type: str

agent_config:
    description:
    - ''
    - This parameter is updatable.
    suboptions:
      are_all_plugins_disabled:
        description:
        - Whether Oracle Cloud Agent can run all the available plugins. This includes
          the management and monitoring plugins.
        - To get a list of available plugins, use the L(ListInstanceagentAvailablePlugins,https://docs.cloud.oracle.com/en-
          us/iaas/api/#/en/instanceagent/20180530/Plugin/ListInstanceagentAvailablePlugins)
          operation in the Oracle Cloud Agent API. For more information about the available
          plugins, see L(Managing Plugins with Oracle Cloud Agent,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).
        - This parameter is updatable.
        type: bool
      is_management_disabled:
        description:
        - Whether Oracle Cloud Agent can run all the available management plugins. Default
          value is false (management plugins are enabled).
        - 'These are the management plugins: OS Management Service Agent and Compute Instance
          Run Command.'
        - The management plugins are controlled by this parameter and by the per-plugin
          configuration in the `pluginsConfig` object.
        - '- If `isManagementDisabled` is true, all of the management plugins are disabled,
          regardless of the per-plugin configuration. - If `isManagementDisabled` is false,
          all of the management plugins are enabled. You can optionally disable individual
          management plugins by providing a value in the `pluginsConfig` object.'
        - This parameter is updatable.
        type: bool
      is_monitoring_disabled:
        description:
        - Whether Oracle Cloud Agent can gather performance metrics and monitor the instance
          using the monitoring plugins. Default value is false (monitoring plugins are
          enabled).
        - 'These are the monitoring plugins: Compute Instance Monitoring and Custom Logs
          Monitoring.'
        - The monitoring plugins are controlled by this parameter and by the per-plugin
          configuration in the `pluginsConfig` object.
        - '- If `isMonitoringDisabled` is true, all of the monitoring plugins are disabled,
          regardless of the per-plugin configuration. - If `isMonitoringDisabled` is false,
          all of the monitoring plugins are enabled. You can optionally disable individual
          monitoring plugins by providing a value in the `pluginsConfig` object.'
        - This parameter is updatable.
        type: bool
      plugins_config:
        description:
        - The configuration of plugins associated with this instance.
        elements: dict
        suboptions:
          desired_state:
            choices:
            - ENABLED
            - DISABLED
            description:
            - Whether the plugin should be enabled or disabled.
            - To enable the monitoring and management plugins, the `isMonitoringDisabled`
              and `isManagementDisabled` attributes must also be set to false.
            required: true
            type: str
          name:
            description:
            - The plugin name. To get a list of available plugins, use the L(ListInstanceagentAvailablePlugins,https://docs.cloud.oracle.com/en-
              us/iaas/api/#/en/instanceagent/20180530/Plugin/ListInstanceagentAvailablePlugins)
              operation in the Oracle Cloud Agent API. For more information about the
              available plugins, see L(Managing Plugins with Oracle Cloud Agent,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).
            required: true
            type: str
        type: list
    type: dict

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

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"}}`'
    - This parameter is updatable.
    type: dict

display_name:
    aliases:
    - name
    description:
    - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering
      confidential information.
    - Required for create, update, delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is set.
    - This parameter is updatable when C(OCI_USE_NAME_AS_IDENTIFIER) is not set.
    type: str

fault_domain:
    description:
    - A fault domain is a grouping of hardware and infrastructure within an availability
      domain. Each availability domain contains three fault domains. Fault domains let
      you distribute your instances so that they are not on the same physical hardware
      within a single availability domain. A hardware failure or Compute hardware maintenance
      that affects one fault domain does not affect instances in other fault domains.
    - If you do not specify the fault domain, the system selects one for you.
    - To get a list of fault domains, use the L(ListFaultDomains,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/identity/20160918/FaultDomain/ListFaultDomains)
      operation in the Identity and Access Management Service API.
    - 'Example: `FAULT-DOMAIN-1`'
    - This parameter is updatable.
    type: str

force_create:
    default: false
    description: Whether to attempt non-idempotent creation of a resource. By default,
      create resource is an idempotent operation, and doesn't create the resource if it
      already exists. Setting this option to true, forcefully creates a copy of the resource,
      even if it already exists.This option is mutually exclusive with I(key_by).
    type: bool

shape_config:
    description:
    - ''
    - This parameter is updatable.
    suboptions:
      baseline_ocpu_utilization:
        choices:
        - BASELINE_1_8
        - BASELINE_1_2
        - BASELINE_1_1
        description:
        - The baseline OCPU utilization for a subcore burstable VM instance. Leave this
          attribute blank for a non-burstable instance, or explicitly specify non-burstable
          with `BASELINE_1_1`.
        - 'The following values are supported: - `BASELINE_1_8` - baseline usage is 1/8
          of an OCPU. - `BASELINE_1_2` - baseline usage is 1/2 of an OCPU. - `BASELINE_1_1`
          - baseline usage is an entire OCPU. This represents a non-burstable instance.'
        - This parameter is updatable.
        type: str
      memory_in_gbs:
        description:
        - The total amount of memory available to the instance, in gigabytes.
        - This parameter is updatable.
        type: float
      nvmes:
        description:
        - The number of NVMe drives to be used for storage. A single drive has 6.8 TB
          available.
        - This parameter is updatable.
        type: int
      ocpus:
        description:
        - The total number of OCPUs available to the instance.
        - This parameter is updatable.
        type: float
      vcpus:
        description:
        - The total number of VCPUs available to the instance. This can be used instead
          of OCPUs, in which case the actual number of OCPUs will be calculated based
          on this value and the actual hardware. This must be a multiple of 2.
        - This parameter is updatable.
        type: int
    type: dict

wait_timeout:
    description: Time, in seconds, to wait when I(wait=yes). Defaults to 1200 for most
      of the services but some services might have a longer wait timeout.
    type: int

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"}`'
    - This parameter is updatable.
    type: dict

compartment_id:
    description:
    - The OCID of the compartment.
    - Required for create using I(state=present).
    - Required for update when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    - Required for delete when environment variable C(OCI_USE_NAME_AS_IDENTIFIER) is set.
    type: str

hostname_label:
    description:
    - Deprecated. Instead use `hostnameLabel` in L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/).
      If you provide both, the values must match.
    type: str

launch_options:
    description:
    - ''
    - This parameter is updatable.
    suboptions:
      boot_volume_type:
        choices:
        - ISCSI
        - SCSI
        - IDE
        - VFIO
        - PARAVIRTUALIZED
        description:
        - Emulation type for the boot volume. * `ISCSI` - ISCSI attached block storage
          device. * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. * `VFIO`
          - Direct attached Virtual Function storage. This is the default option for local
          data volumes on platform images. * `PARAVIRTUALIZED` - Paravirtualized disk.
          This is the default for boot volumes and remote block storage volumes on platform
          images.
        - This parameter is updatable.
        type: str
      firmware:
        choices:
        - BIOS
        - UEFI_64
        description:
        - Firmware used to boot VM. Select the option that matches your operating system.
          * `BIOS` - Boot VM using BIOS style firmware. This is compatible with both 32
          bit and 64 bit operating systems that boot using MBR style bootloaders. * `UEFI_64`
          - Boot VM using UEFI style firmware compatible with 64 bit operating systems.
          This is the default for platform images.
        type: str
      is_consistent_volume_naming_enabled:
        description:
        - Whether to enable consistent volume naming feature. Defaults to false.
        type: bool
      is_pv_encryption_in_transit_enabled:
        description:
        - Deprecated. Instead use `isPvEncryptionInTransitEnabled` in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/datatypes/LaunchInstanceDetails).
        - This parameter is updatable.
        type: bool
      network_type:
        choices:
        - E1000
        - VFIO
        - PARAVIRTUALIZED
        description:
        - Emulation type for the physical network interface card (NIC). * `E1000` - Emulated
          Gigabit ethernet controller. Compatible with Linux e1000 network driver. * `VFIO`
          - Direct attached Virtual Function network controller. This is the networking
          type when you launch an instance using hardware-assisted (SR-IOV) networking.
          * `PARAVIRTUALIZED` - VM instances launch with paravirtualized devices using
          VirtIO drivers.
        - This parameter is updatable.
        type: str
      remote_data_volume_type:
        choices:
        - ISCSI
        - SCSI
        - IDE
        - VFIO
        - PARAVIRTUALIZED
        description:
        - Emulation type for volume. * `ISCSI` - ISCSI attached block storage device.
          * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. * `VFIO` - Direct
          attached Virtual Function storage. This is the default option for local data
          volumes on platform images. * `PARAVIRTUALIZED` - Paravirtualized disk. This
          is the default for boot volumes and remote block storage volumes on platform
          images.
        type: str
    type: dict

source_details:
    description:
    - ''
    suboptions:
      boot_volume_id:
        description:
        - The OCID of the boot volume used to boot the instance.
        - Required when source_type is 'bootVolume'
        type: str
      boot_volume_size_in_gbs:
        description:
        - The size of the boot volume in GBs. Minimum value is 50 GB and maximum value
          is 32,768 GB (32 TB).
        - Applicable when source_type is 'image'
        type: int
      boot_volume_vpus_per_gb:
        description:
        - The number of volume performance units (VPUs) that will be applied to this volume
          per GB, representing the Block Volume service's elastic performance options.
          See L(Block Volume Performance Levels,https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/blockvolumeperformance.htm#perf_levels)
          for more information.
        - 'Allowed values:'
        - ' * `10`: Represents Balanced option.'
        - ' * `20`: Represents Higher Performance option.'
        - ' * `30`-`120`: Represents the Ultra High Performance option.'
        - For volumes with the auto-tuned performance feature enabled, this is set to
          the default (minimum) VPUs/GB.
        - Applicable when source_type is 'image'
        type: int
      image_id:
        description:
        - The OCID of the image used to boot the instance.
        - Applicable when source_type is 'image'
        type: str
      instance_source_image_filter_details:
        description:
        - ''
        - Applicable when source_type is 'image'
        suboptions:
          compartment_id:
            description:
            - The OCID of the compartment containing images to search
            - Required when source_type is 'image'
            required: true
            type: str
          defined_tags_filter:
            description:
            - Filter based on these defined tags. 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).
            - Applicable when source_type is 'image'
            type: dict
          operating_system:
            description:
            - The image's operating system.
            - 'Example: `Oracle Linux`'
            - Applicable when source_type is 'image'
            type: str
          operating_system_version:
            description:
            - The image's operating system version.
            - 'Example: `7.2`'
            - Applicable when source_type is 'image'
            type: str
        type: dict
      kms_key_id:
        description:
        - The OCID of the Vault service key to assign as the master encryption key for
          the boot volume.
        - Applicable when source_type is 'image'
        type: str
      source_type:
        choices:
        - image
        - bootVolume
        description:
        - The source type for the instance. Use `image` when specifying the image OCID.
          Use `bootVolume` when specifying the boot volume OCID.
        required: true
        type: str
    type: dict

platform_config:
    description:
    - ''
    suboptions:
      are_virtual_instructions_enabled:
        description:
        - Whether virtualization instructions are available. For example, Secure Virtual
          Machine for AMD shapes or VT-x for Intel shapes.
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_MILAN_BM_GPU', 'AMD_ROME_BM_GPU',
          'AMD_ROME_BM']
        type: bool
      is_access_control_service_enabled:
        description:
        - Whether the Access Control Service is enabled on the instance. When enabled,
          the platform can enforce PCIe device isolation, required for VFIO device pass-through.
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_MILAN_BM_GPU', 'AMD_ROME_BM_GPU',
          'AMD_ROME_BM']
        type: bool
      is_input_output_memory_management_unit_enabled:
        description:
        - Whether the input-output memory management unit is enabled.
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_MILAN_BM_GPU', 'AMD_ROME_BM_GPU',
          'AMD_ROME_BM', 'INTEL_ICELAKE_BM']
        type: bool
      is_measured_boot_enabled:
        description:
        - Whether the Measured Boot feature is enabled on the instance.
        type: bool
      is_memory_encryption_enabled:
        description:
        - Whether the instance is a confidential instance. If this value is `true`, the
          instance is a confidential instance. The default value is `false`.
        type: bool
      is_secure_boot_enabled:
        description:
        - Whether Secure Boot is enabled on the instance.
        type: bool
      is_symmetric_multi_threading_enabled:
        description:
        - Whether symmetric multithreading is enabled on the instance. Symmetric multithreading
          is also called simultaneous multithreading (SMT) or Intel Hyper-Threading.
        - Intel and AMD processors have two hardware execution threads per core (OCPU).
          SMT permits multiple independent threads of execution, to better use the resources
          and increase the efficiency of the CPU. When multithreading is disabled, only
          one thread is permitted to run on each core, which can provide higher or more
          predictable performance for some workloads.
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_MILAN_BM_GPU', 'AMD_ROME_BM_GPU',
          'AMD_ROME_BM', 'INTEL_ICELAKE_BM']
        type: bool
      is_trusted_platform_module_enabled:
        description:
        - Whether the Trusted Platform Module (TPM) is enabled on the instance.
        type: bool
      numa_nodes_per_socket:
        choices:
        - NPS0
        - NPS1
        - NPS2
        - NPS4
        description:
        - The number of NUMA nodes per socket (NPS).
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_MILAN_BM_GPU', 'AMD_ROME_BM_GPU',
          'AMD_ROME_BM', 'INTEL_ICELAKE_BM']
        type: str
      percentage_of_cores_enabled:
        description:
        - The percentage of cores enabled. Value must be a multiple of 25%. If the requested
          percentage results in a fractional number of cores, the system rounds up the
          number of cores across processors and provisions an instance with a whole number
          of cores.
        - If the applications that you run on the instance use a core-based licensing
          model and need fewer cores than the full size of the shape, you can disable
          cores to reduce your licensing costs. The instance itself is billed for the
          full shape, regardless of whether all cores are enabled.
        - Applicable when type is one of ['AMD_MILAN_BM', 'AMD_ROME_BM', 'INTEL_ICELAKE_BM']
        type: int
      type:
        choices:
        - AMD_ROME_BM_GPU
        - AMD_ROME_BM
        - INTEL_ICELAKE_BM
        - AMD_VM
        - INTEL_VM
        - INTEL_SKYLAKE_BM
        - AMD_MILAN_BM
        - AMD_MILAN_BM_GPU
        description:
        - The type of platform being configured.
        required: true
        type: str
    type: dict

instance_options:
    description:
    - ''
    - This parameter is updatable.
    suboptions:
      are_legacy_imds_endpoints_disabled:
        description:
        - Whether to disable the legacy (/v1) instance metadata service endpoints. Customers
          who have migrated to /v2 should set this to true for added security. Default
          is false.
        type: bool
    type: dict

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

extended_metadata:
    description:
    - Additional metadata key/value pairs that you provide. They serve the same purpose
      and functionality as fields in the `metadata` object.
    - They are distinguished from `metadata` fields in that these can be nested JSON objects
      (whereas `metadata` fields are string/string maps only).
    - The combined size of the `metadata` and `extendedMetadata` objects can be a maximum
      of 32,000 bytes.
    - This parameter is updatable.
    type: dict

compute_cluster_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the L(compute cluster,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/compute-clusters.htm)
      that the instance will be created in.
    type: str

availability_config:
    description:
    - ''
    - This parameter is updatable.
    suboptions:
      is_live_migration_preferred:
        description:
        - Whether to live migrate supported VM instances to a healthy physical VM host
          without disrupting running instances during infrastructure maintenance events.
          If null, Oracle chooses the best option for migrating the VM during infrastructure
          maintenance events.
        - This parameter is updatable.
        type: bool
      recovery_action:
        choices:
        - RESTORE_INSTANCE
        - STOP_INSTANCE
        description:
        - The lifecycle state for an instance when it is recovered after infrastructure
          maintenance. * `RESTORE_INSTANCE` - The instance is restored to the lifecycle
          state it was in before the maintenance event. If the instance was running, it
          is automatically rebooted. This is the default action when a value is not set.
          * `STOP_INSTANCE` - The instance is recovered in the stopped state.
        - This parameter is updatable.
        type: str
    type: dict

availability_domain:
    description:
    - The availability domain of the instance.
    - 'Example: `Uocm:PHX-AD-1`'
    - Required for create using I(state=present).
    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

create_vnic_details:
    description:
    - ''
    suboptions:
      assign_private_dns_record:
        description:
        - 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. The default value is true.
        - If you specify a `hostnameLabel`, then `assignPrivateDnsRecord` must be set
          to true.
        type: bool
      assign_public_ip:
        description:
        - 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 `prohibitPublicIpOnVnic` = true in the L(Subnet,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Subnet/)),
          then no public IP address is assigned. If not set and the subnet is public (`prohibitPublicIpOnVnic`
          = false), then a public IP address is assigned. If set to true and `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 L(IP Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingIPaddresses.htm).'
        - '**Note:** There''s a limit to the number of L(public IPs,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/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 L(Public IP Addresses,https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingpublicIPs.htm).'
        - 'Example: `false`'
        - If you specify a `vlanId`, then `assignPublicIp` must be set to false. See L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        type: bool
      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"}}`'
        type: dict
      display_name:
        aliases:
        - name
        description:
        - A user-friendly name. Does not have to be unique, and it's changeable. Avoid
          entering confidential information.
        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"}`'
        type: dict
      hostname_label:
        description:
        - 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, `bminstance1` in FQDN `bminstance1.subnet123.vcn1.oraclevcn.com`).
          Must be unique across all VNICs in the subnet and comply with L(RFC 952,https://tools.ietf.org/html/rfc952)
          and L(RFC 1123,https://tools.ietf.org/html/rfc1123). The value appears in the
          L(Vnic,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vnic/)
          object and also the L(PrivateIp,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/)
          object returned by L(ListPrivateIps,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/ListPrivateIps)
          and L(GetPrivateIp,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/GetPrivateIp).
        - For more information, see L(DNS in Your Virtual Cloud Network,https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/dns.htm).
        - When launching an instance, use this `hostnameLabel` instead of the deprecated
          `hostnameLabel` in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/requests/LaunchInstanceDetails).
          If you provide both, the values must match.
        - 'Example: `bminstance1`'
        - If you specify a `vlanId`, the `hostnameLabel` cannot be specified. VNICs on
          a VLAN can not be assigned a hostname. See L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        type: str
      nsg_ids:
        description:
        - A list of the OCIDs of the network security groups (NSGs) to add the VNIC to.
          For more information about NSGs, see L(NetworkSecurityGroup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/NetworkSecurityGroup/).
        - If a `vlanId` is specified, the `nsgIds` cannot be specified. The `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 L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        elements: str
        type: list
      private_ip:
        description:
        - A private IP address of your choice to assign to the VNIC. Must be an available
          IP address within the subnet's CIDR. If you don't specify a value, Oracle automatically
          assigns a private IP address from the subnet. This is the VNIC's *primary* private
          IP address. The value appears in the L(Vnic,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vnic/)
          object and also the L(PrivateIp,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/)
          object returned by L(ListPrivateIps,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/ListPrivateIps)
          and L(GetPrivateIp,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/PrivateIp/GetPrivateIp).
        - If you specify a `vlanId`, the `privateIp` cannot be specified. See L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        - 'Example: `10.0.3.3`'
        type: str
      skip_source_dest_check:
        description:
        - Whether the source/destination check is disabled on the VNIC. Defaults to `false`,
          which means the check is performed. For information about why you would skip
          the source/destination check, see L(Using a Private IP as a Route Target,https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingroutetables.htm#privateip).
        - If you specify a `vlanId`, the `skipSourceDestCheck` cannot be specified because
          the source/destination check is always disabled for VNICs in a VLAN. See L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        - 'Example: `true`'
        type: bool
      subnet_id:
        description:
        - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of the subnet to create the VNIC in. When launching an instance, use this `subnetId`
          instead of the deprecated `subnetId` in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/requests/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 `vlanId` instead of a `subnetId`.
          If you provide both a `vlanId` and `subnetId`, the request fails.
        type: str
      vlan_id:
        description:
        - 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 L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
          of the VLAN. See L(Vlan,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Vlan).
        - Provide a `vlanId` instead of a `subnetId`. If you provide both a `vlanId` and
          `subnetId`, the request fails.
        type: str
    type: dict

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

dedicated_vm_host_id:
    description:
    - The OCID of the dedicated virtual machine host to place the instance on.
    type: str

preserve_boot_volume:
    description:
    - Specifies whether to delete or preserve the boot volume when terminating an instance.
      When set to `true`, the boot volume is preserved. The default value is `false`.
    type: bool

capacity_reservation_id:
    description:
    - The OCID of the compute capacity reservation this instance is launched under. You
      can opt out of all default reservations by specifying an empty string as input for
      this field. For more information, see L(Capacity Reservations,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default).
    - This parameter is updatable.
    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

instance_configuration_id:
    description:
    - The OCID of the Instance Configuration containing instance launch details. Any other
      fields supplied in this instance launch request will override the details stored
      in the Instance Configuration for this instance launch.
    type: str

preemptible_instance_config:
    description:
    - ''
    suboptions:
      preemption_action:
        description:
        - ''
        required: true
        suboptions:
          preserve_boot_volume:
            description:
            - Whether to preserve the boot volume that was used to launch the preemptible
              instance when the instance is terminated. Defaults to false if not specified.
            type: bool
          type:
            choices:
            - TERMINATE
            description:
            - The type of action to run when the instance is interrupted for eviction.
            required: true
            type: str
        type: dict
    type: dict

time_maintenance_reboot_due:
    description:
    - For a VM instance, resets the scheduled time that the instance will be reboot migrated
      for infrastructure maintenance, in the format defined by L(RFC3339,https://tools.ietf.org/html/rfc3339).
      If the instance hasn't been rebooted after this date, Oracle reboots the instance
      within 24 hours of the time and date that maintenance is due.
    - To get the maximum possible date that a maintenance reboot can be extended, use
      L(GetInstanceMaintenanceReboot,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/InstanceMaintenanceReboot/GetInstanceMaintenanceReboot).
    - Regardless of how the instance is stopped, this flag is reset to empty as soon as
      the instance reaches the Stopped state.
    - To reboot migrate a bare metal instance, use the L(InstanceAction,https://docs.cloud.oracle.com/en-
      us/iaas/api/#/en/iaas/latest/Instance/InstanceAction) operation.
    - For more information, see L(Infrastructure Maintenance,https://docs.cloud.oracle.com/iaas/Content/Compute/References/infrastructure-maintenance.htm).
    - 'Example: `2018-05-25T21:10:29.600Z`'
    - This parameter is updatable.
    type: str

update_operation_constraint:
    choices:
    - ALLOW_DOWNTIME
    - AVOID_DOWNTIME
    description:
    - The parameter acts as a fail-safe to prevent unwanted downtime when updating a running
      instance. The default is ALLOW_DOWNTIME. * `ALLOW_DOWNTIME` - Compute might reboot
      the instance while updating the instance if a reboot is required. * `AVOID_DOWNTIME`
      - If the instance is in running state, Compute tries to update the instance without
      rebooting it. If the instance requires a reboot to be updated, an error is returned
      and the instance is not updated. If the instance is stopped, it is updated and remains
      in the stopped state.
    - This parameter is updatable.
    type: str

is_pv_encryption_in_transit_enabled:
    description:
    - Whether to enable in-transit encryption for the data volume's paravirtualized attachment.
      This field applies to both block volumes and boot volumes. The default value is
      false.
    type: bool

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

instance:
  contains:
    agent_config:
      contains:
        are_all_plugins_disabled:
          description:
          - Whether Oracle Cloud Agent can run all of the available plugins. This
            includes the management and monitoring plugins.
          - For more information about the available plugins, see L(Managing Plugins
            with Oracle Cloud Agent,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).
          returned: on success
          sample: true
          type: bool
        is_management_disabled:
          description:
          - Whether Oracle Cloud Agent can run all the available management plugins.
          - 'These are the management plugins: OS Management Service Agent and Compute
            Instance Run Command.'
          - The management plugins are controlled by this parameter and by the per-plugin
            configuration in the `pluginsConfig` object.
          - '- If `isManagementDisabled` is true, all of the management plugins are
            disabled, regardless of the per-plugin configuration. - If `isManagementDisabled`
            is false, all of the management plugins are enabled. You can optionally
            disable individual management plugins by providing a value in the `pluginsConfig`
            object.'
          returned: on success
          sample: true
          type: bool
        is_monitoring_disabled:
          description:
          - Whether Oracle Cloud Agent can gather performance metrics and monitor
            the instance using the monitoring plugins.
          - 'These are the monitoring plugins: Compute Instance Monitoring and Custom
            Logs Monitoring.'
          - The monitoring plugins are controlled by this parameter and by the per-plugin
            configuration in the `pluginsConfig` object.
          - '- If `isMonitoringDisabled` is true, all of the monitoring plugins are
            disabled, regardless of the per-plugin configuration. - If `isMonitoringDisabled`
            is false, all of the monitoring plugins are enabled. You can optionally
            disable individual monitoring plugins by providing a value in the `pluginsConfig`
            object.'
          returned: on success
          sample: true
          type: bool
        plugins_config:
          contains:
            desired_state:
              description:
              - Whether the plugin should be enabled or disabled.
              - To enable the monitoring and management plugins, the `isMonitoringDisabled`
                and `isManagementDisabled` attributes must also be set to false.
              returned: on success
              sample: ENABLED
              type: str
            name:
              description:
              - The plugin name. To get a list of available plugins, use the L(ListInstanceagentAvailablePlugins,https://docs.cloud.oracle.com/en-
                us/iaas/api/#/en/instanceagent/20180530/Plugin/ListInstanceagentAvailablePlugins)
                operation in the Oracle Cloud Agent API. For more information about
                the available plugins, see L(Managing Plugins with Oracle Cloud Agent,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).
              returned: on success
              sample: name_example
              type: str
          description:
          - The configuration of plugins associated with this instance.
          returned: on success
          type: complex
      description:
      - ''
      returned: on success
      type: complex
    availability_config:
      contains:
        is_live_migration_preferred:
          description:
          - Whether to live migrate supported VM instances to a healthy physical VM
            host without disrupting running instances during infrastructure maintenance
            events. If null, Oracle chooses the best option for migrating the VM during
            infrastructure maintenance events.
          returned: on success
          sample: true
          type: bool
        recovery_action:
          description:
          - The lifecycle state for an instance when it is recovered after infrastructure
            maintenance. * `RESTORE_INSTANCE` - The instance is restored to the lifecycle
            state it was in before the maintenance event. If the instance was running,
            it is automatically rebooted. This is the default action when a value
            is not set. * `STOP_INSTANCE` - The instance is recovered in the stopped
            state.
          returned: on success
          sample: RESTORE_INSTANCE
          type: str
      description:
      - ''
      returned: on success
      type: complex
    availability_domain:
      description:
      - The availability domain the instance is running in.
      - 'Example: `Uocm:PHX-AD-1`'
      returned: on success
      sample: Uocm:PHX-AD-1
      type: str
    capacity_reservation_id:
      description:
      - The OCID of the compute capacity reservation this instance is launched under.
        When this field contains an empty string or is null, the instance is not currently
        in a capacity reservation. For more information, see L(Capacity Reservations,https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default).
      returned: on success
      sample: ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    compartment_id:
      description:
      - The OCID of the compartment that contains the instance.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    dedicated_vm_host_id:
      description:
      - The OCID of the dedicated virtual machine host that the instance is placed
        on.
      returned: on success
      sample: ocid1.dedicatedvmhost.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
    extended_metadata:
      description:
      - Additional metadata key/value pairs that you provide. They serve the same
        purpose and functionality as fields in the `metadata` object.
      - They are distinguished from `metadata` fields in that these can be nested
        JSON objects (whereas `metadata` fields are string/string maps only).
      returned: on success
      sample: {}
      type: dict
    fault_domain:
      description:
      - The name of the fault domain the instance is running in.
      - A fault domain is a grouping of hardware and infrastructure within an availability
        domain. Each availability domain contains three fault domains. Fault domains
        let you distribute your instances so that they are not on the same physical
        hardware within a single availability domain. A hardware failure or Compute
        hardware maintenance that affects one fault domain does not affect instances
        in other fault domains.
      - If you do not specify the fault domain, the system selects one for you.
      - 'Example: `FAULT-DOMAIN-1`'
      returned: on success
      sample: FAULT-DOMAIN-1
      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 OCID of the instance.
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    image_id:
      description:
      - Deprecated. Use `sourceDetails` instead.
      returned: on success
      sample: ocid1.image.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    instance_configuration_id:
      description:
      - The OCID of the Instance Configuration used to source launch details for this
        instance. Any other fields supplied in the instance launch request override
        the details stored in the Instance Configuration for this instance launch.
      returned: on success
      sample: ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    instance_options:
      contains:
        are_legacy_imds_endpoints_disabled:
          description:
          - Whether to disable the legacy (/v1) instance metadata service endpoints.
            Customers who have migrated to /v2 should set this to true for added security.
            Default is false.
          returned: on success
          sample: true
          type: bool
      description:
      - ''
      returned: on success
      type: complex
    ipxe_script:
      description:
      - When a bare metal or virtual machine instance boots, the iPXE firmware that
        runs on the instance is configured to run an iPXE script to continue the boot
        process.
      - If you want more control over the boot process, you can provide your own custom
        iPXE script that will run when the instance boots. Be aware that the same
        iPXE script will run every time an instance boots, not only after the initial
        LaunchInstance call.
      - 'The default iPXE script connects to the instance''s local boot volume over
        iSCSI and performs a network boot. If you use a custom iPXE script and want
        to network-boot from the instance''s local boot volume over iSCSI the same
        way as the default iPXE script, use the following iSCSI IP address: 169.254.0.2,
        and boot volume IQN: iqn.2015-02.oracle.boot.'
      - If your instance boot volume attachment type is paravirtualized, the boot
        volume is attached to the instance through virtio-scsi and no iPXE script
        is used. If your instance boot volume attachment type is paravirtualized and
        you use custom iPXE to network boot into your instance, the primary boot volume
        is attached as a data volume through virtio-scsi drive.
      - For more information about the Bring Your Own Image feature of Oracle Cloud
        Infrastructure, see L(Bring Your Own Image,https://docs.cloud.oracle.com/iaas/Content/Compute/References/bringyourownimage.htm).
      - For more information about iPXE, see http://ipxe.org.
      returned: on success
      sample: ipxe_script_example
      type: str
    is_cross_numa_node:
      description:
      - Whether the instance's OCPUs and memory are distributed across multiple NUMA
        nodes.
      returned: on success
      sample: true
      type: bool
    launch_mode:
      description:
      - 'Specifies the configuration mode for launching virtual machine (VM) instances.
        The configuration modes are: * `NATIVE` - VM instances launch with iSCSI boot
        and VFIO devices. The default value for platform images. * `EMULATED` - VM
        instances launch with emulated devices, such as the E1000 network driver and
        emulated SCSI disk controller. * `PARAVIRTUALIZED` - VM instances launch with
        paravirtualized devices using VirtIO drivers. * `CUSTOM` - VM instances launch
        with custom configuration settings specified in the `LaunchOptions` parameter.'
      returned: on success
      sample: NATIVE
      type: str
    launch_options:
      contains:
        boot_volume_type:
          description:
          - Emulation type for the boot volume. * `ISCSI` - ISCSI attached block storage
            device. * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. *
            `VFIO` - Direct attached Virtual Function storage. This is the default
            option for local data volumes on platform images. * `PARAVIRTUALIZED`
            - Paravirtualized disk. This is the default for boot volumes and remote
            block storage volumes on platform images.
          returned: on success
          sample: ISCSI
          type: str
        firmware:
          description:
          - Firmware used to boot VM. Select the option that matches your operating
            system. * `BIOS` - Boot VM using BIOS style firmware. This is compatible
            with both 32 bit and 64 bit operating systems that boot using MBR style
            bootloaders. * `UEFI_64` - Boot VM using UEFI style firmware compatible
            with 64 bit operating systems. This is the default for platform images.
          returned: on success
          sample: BIOS
          type: str
        is_consistent_volume_naming_enabled:
          description:
          - Whether to enable consistent volume naming feature. Defaults to false.
          returned: on success
          sample: true
          type: bool
        is_pv_encryption_in_transit_enabled:
          description:
          - Deprecated. Instead use `isPvEncryptionInTransitEnabled` in L(LaunchInstanceDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/datatypes/LaunchInstanceDetails).
          returned: on success
          sample: true
          type: bool
        network_type:
          description:
          - Emulation type for the physical network interface card (NIC). * `E1000`
            - Emulated Gigabit ethernet controller. Compatible with Linux e1000 network
            driver. * `VFIO` - Direct attached Virtual Function network controller.
            This is the networking type when you launch an instance using hardware-assisted
            (SR-IOV) networking. * `PARAVIRTUALIZED` - VM instances launch with paravirtualized
            devices using VirtIO drivers.
          returned: on success
          sample: E1000
          type: str
        remote_data_volume_type:
          description:
          - Emulation type for volume. * `ISCSI` - ISCSI attached block storage device.
            * `SCSI` - Emulated SCSI disk. * `IDE` - Emulated IDE disk. * `VFIO` -
            Direct attached Virtual Function storage. This is the default option for
            local data volumes on platform images. * `PARAVIRTUALIZED` - Paravirtualized
            disk. This is the default for boot volumes and remote block storage volumes
            on platform images.
          returned: on success
          sample: ISCSI
          type: str
      description:
      - ''
      returned: on success
      type: complex
    lifecycle_state:
      description:
      - The current state of the instance.
      returned: on success
      sample: MOVING
      type: str
    metadata:
      description:
      - Custom metadata that you provide.
      returned: on success
      sample: {}
      type: dict
    platform_config:
      contains:
        are_virtual_instructions_enabled:
          description:
          - Whether virtualization instructions are available. For example, Secure
            Virtual Machine for AMD shapes or VT-x for Intel shapes.
          returned: on success
          sample: true
          type: bool
        is_access_control_service_enabled:
          description:
          - Whether the Access Control Service is enabled on the instance. When enabled,
            the platform can enforce PCIe device isolation, required for VFIO device
            pass-through.
          returned: on success
          sample: true
          type: bool
        is_input_output_memory_management_unit_enabled:
          description:
          - Whether the input-output memory management unit is enabled.
          returned: on success
          sample: true
          type: bool
        is_measured_boot_enabled:
          description:
          - Whether the Measured Boot feature is enabled on the instance.
          returned: on success
          sample: true
          type: bool
        is_memory_encryption_enabled:
          description:
          - Whether the instance is a confidential instance. If this value is `true`,
            the instance is a confidential instance. The default value is `false`.
          returned: on success
          sample: true
          type: bool
        is_secure_boot_enabled:
          description:
          - Whether Secure Boot is enabled on the instance.
          returned: on success
          sample: true
          type: bool
        is_symmetric_multi_threading_enabled:
          description:
          - Whether symmetric multithreading is enabled on the instance. Symmetric
            multithreading is also called simultaneous multithreading (SMT) or Intel
            Hyper-Threading.
          - Intel and AMD processors have two hardware execution threads per core
            (OCPU). SMT permits multiple independent threads of execution, to better
            use the resources and increase the efficiency of the CPU. When multithreading
            is disabled, only one thread is permitted to run on each core, which can
            provide higher or more predictable performance for some workloads.
          returned: on success
          sample: true
          type: bool
        is_trusted_platform_module_enabled:
          description:
          - Whether the Trusted Platform Module (TPM) is enabled on the instance.
          returned: on success
          sample: true
          type: bool
        numa_nodes_per_socket:
          description:
          - The number of NUMA nodes per socket (NPS).
          returned: on success
          sample: NPS0
          type: str
        percentage_of_cores_enabled:
          description:
          - The percentage of cores enabled. Value must be a multiple of 25%. If the
            requested percentage results in a fractional number of cores, the system
            rounds up the number of cores across processors and provisions an instance
            with a whole number of cores.
          - If the applications that you run on the instance use a core-based licensing
            model and need fewer cores than the full size of the shape, you can disable
            cores to reduce your licensing costs. The instance itself is billed for
            the full shape, regardless of whether all cores are enabled.
          returned: on success
          sample: 56
          type: int
        type:
          description:
          - The type of platform being configured.
          returned: on success
          sample: AMD_MILAN_BM
          type: str
      description:
      - ''
      returned: on success
      type: complex
    preemptible_instance_config:
      contains:
        preemption_action:
          contains:
            preserve_boot_volume:
              description:
              - Whether to preserve the boot volume that was used to launch the preemptible
                instance when the instance is terminated. Defaults to false if not
                specified.
              returned: on success
              sample: true
              type: bool
            type:
              description:
              - The type of action to run when the instance is interrupted for eviction.
              returned: on success
              sample: TERMINATE
              type: str
          description:
          - ''
          returned: on success
          type: complex
      description:
      - ''
      returned: on success
      type: complex
    primary_private_ip:
      description:
      - The private IP of the primary VNIC attached to this instance
      returned: on success
      sample: 10.0.0.10
      type: str
    primary_public_ip:
      description:
      - The public IP of the primary VNIC attached to this instance
      returned: on success
      sample: 140.34.93.209
      type: str
    region:
      description:
      - The region that contains the availability domain the instance is running in.
      - For the us-phoenix-1 and us-ashburn-1 regions, `phx` and `iad` are returned,
        respectively. For all other regions, the full region name is returned.
      - 'Examples: `phx`, `eu-frankfurt-1`'
      returned: on success
      sample: us-phoenix-1
      type: str
    shape:
      description:
      - The shape of the instance. The shape determines the number of CPUs and the
        amount of memory allocated to the instance. You can enumerate all available
        shapes by calling L(ListShapes,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Shape/ListShapes).
      returned: on success
      sample: shape_example
      type: str
    shape_config:
      contains:
        baseline_ocpu_utilization:
          description:
          - The baseline OCPU utilization for a subcore burstable VM instance. Leave
            this attribute blank for a non-burstable instance, or explicitly specify
            non-burstable with `BASELINE_1_1`.
          - 'The following values are supported: - `BASELINE_1_8` - baseline usage
            is 1/8 of an OCPU. - `BASELINE_1_2` - baseline usage is 1/2 of an OCPU.
            - `BASELINE_1_1` - baseline usage is the entire OCPU. This represents
            a non-burstable instance.'
          returned: on success
          sample: BASELINE_1_8
          type: str
        gpu_description:
          description:
          - A short description of the instance's graphics processing unit (GPU).
          - If the instance does not have any GPUs, this field is `null`.
          returned: on success
          sample: gpu_description_example
          type: str
        gpus:
          description:
          - The number of GPUs available to the instance.
          returned: on success
          sample: 56
          type: int
        local_disk_description:
          description:
          - A short description of the local disks available to this instance.
          - If the instance does not have any local disks, this field is `null`.
          returned: on success
          sample: local_disk_description_example
          type: str
        local_disks:
          description:
          - The number of local disks available to the instance.
          returned: on success
          sample: 56
          type: int
        local_disks_total_size_in_gbs:
          description:
          - The aggregate size of all local disks, in gigabytes.
          - If the instance does not have any local disks, this field is `null`.
          returned: on success
          sample: 3.4
          type: float
        max_vnic_attachments:
          description:
          - The maximum number of VNIC attachments for the instance.
          returned: on success
          sample: 56
          type: int
        memory_in_gbs:
          description:
          - The total amount of memory available to the instance, in gigabytes.
          returned: on success
          sample: 3.4
          type: float
        networking_bandwidth_in_gbps:
          description:
          - The networking bandwidth available to the instance, in gigabits per second.
          returned: on success
          sample: 3.4
          type: float
        ocpus:
          description:
          - The total number of OCPUs available to the instance.
          returned: on success
          sample: 3.4
          type: float
        processor_description:
          description:
          - A short description of the instance's processor (CPU).
          returned: on success
          sample: processor_description_example
          type: str
        vcpus:
          description:
          - The total number of VCPUs available to the instance. This can be used
            instead of OCPUs, in which case the actual number of OCPUs will be calculated
            based on this value and the actual hardware. This must be a multiple of
            2.
          returned: on success
          sample: 56
          type: int
      description:
      - ''
      returned: on success
      type: complex
    source_details:
      contains:
        boot_volume_id:
          description:
          - The OCID of the boot volume used to boot the instance.
          returned: on success
          sample: ocid1.bootvolume.oc1..xxxxxxEXAMPLExxxxxx
          type: str
        boot_volume_size_in_gbs:
          description:
          - The size of the boot volume in GBs. Minimum value is 50 GB and maximum
            value is 32,768 GB (32 TB).
          returned: on success
          sample: 56
          type: int
        boot_volume_vpus_per_gb:
          description:
          - The number of volume performance units (VPUs) that will be applied to
            this volume per GB, representing the Block Volume service's elastic performance
            options. See L(Block Volume Performance Levels,https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/blockvolumeperformance.htm#perf_levels)
            for more information.
          - 'Allowed values:'
          - ' * `10`: Represents Balanced option.'
          - ' * `20`: Represents Higher Performance option.'
          - ' * `30`-`120`: Represents the Ultra High Performance option.'
          - For volumes with the auto-tuned performance feature enabled, this is set
            to the default (minimum) VPUs/GB.
          returned: on success
          sample: 56
          type: int
        image_id:
          description:
          - The OCID of the image used to boot the instance.
          returned: on success
          sample: ocid1.image.oc1..xxxxxxEXAMPLExxxxxx
          type: str
        instance_source_image_filter_details:
          contains:
            compartment_id:
              description:
              - The OCID of the compartment containing images to search
              returned: on success
              sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
              type: str
            defined_tags_filter:
              description:
              - Filter based on these defined tags. 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).
              returned: on success
              sample: {}
              type: dict
            operating_system:
              description:
              - The image's operating system.
              - 'Example: `Oracle Linux`'
              returned: on success
              sample: operating_system_example
              type: str
            operating_system_version:
              description:
              - The image's operating system version.
              - 'Example: `7.2`'
              returned: on success
              sample: operating_system_version_example
              type: str
          description:
          - ''
          returned: on success
          type: complex
        kms_key_id:
          description:
          - The OCID of the Vault service key to assign as the master encryption key
            for the boot volume.
          returned: on success
          sample: ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx
          type: str
        source_type:
          description:
          - The source type for the instance. Use `image` when specifying the image
            OCID. Use `bootVolume` when specifying the boot volume OCID.
          returned: on success
          sample: bootVolume
          type: str
      description:
      - ''
      returned: on success
      type: complex
    system_tags:
      description:
      - 'System tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{"foo-namespace": {"bar-key": "value"}}`'
      returned: on success
      sample: {}
      type: dict
    time_created:
      description:
      - The date and time the instance 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
    time_maintenance_reboot_due:
      description:
      - 'The date and time the instance is expected to be stopped / started,  in the
        format defined by L(RFC3339,https://tools.ietf.org/html/rfc3339). After that
        time if instance hasn''t been rebooted, Oracle will reboot the instance within
        24 hours of the due time. Regardless of how the instance was stopped, the
        flag will be reset to empty as soon as instance reaches Stopped state. Example:
        `2018-05-25T21:10:29.600Z`'
      returned: on success
      sample: '2013-10-20T19:20:30+01:00'
      type: str
  description:
  - Details of the Instance resource acted upon by the current operation
  returned: on success
  sample:
    agent_config:
      are_all_plugins_disabled: true
      is_management_disabled: true
      is_monitoring_disabled: true
      plugins_config:
      - desired_state: ENABLED
        name: name_example
    availability_config:
      is_live_migration_preferred: true
      recovery_action: RESTORE_INSTANCE
    availability_domain: Uocm:PHX-AD-1
    capacity_reservation_id: ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    dedicated_vm_host_id: ocid1.dedicatedvmhost.oc1..xxxxxxEXAMPLExxxxxx
    defined_tags:
      Operations:
        CostCenter: US
    display_name: display_name_example
    extended_metadata: {}
    fault_domain: FAULT-DOMAIN-1
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    image_id: ocid1.image.oc1..xxxxxxEXAMPLExxxxxx
    instance_configuration_id: ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx
    instance_options:
      are_legacy_imds_endpoints_disabled: true
    ipxe_script: ipxe_script_example
    is_cross_numa_node: true
    launch_mode: NATIVE
    launch_options:
      boot_volume_type: ISCSI
      firmware: BIOS
      is_consistent_volume_naming_enabled: true
      is_pv_encryption_in_transit_enabled: true
      network_type: E1000
      remote_data_volume_type: ISCSI
    lifecycle_state: MOVING
    metadata: {}
    platform_config:
      are_virtual_instructions_enabled: true
      is_access_control_service_enabled: true
      is_input_output_memory_management_unit_enabled: true
      is_measured_boot_enabled: true
      is_memory_encryption_enabled: true
      is_secure_boot_enabled: true
      is_symmetric_multi_threading_enabled: true
      is_trusted_platform_module_enabled: true
      numa_nodes_per_socket: NPS0
      percentage_of_cores_enabled: 56
      type: AMD_MILAN_BM
    preemptible_instance_config:
      preemption_action:
        preserve_boot_volume: true
        type: TERMINATE
    primary_private_ip: 10.0.0.10
    primary_public_ip: 140.34.93.209
    region: us-phoenix-1
    shape: shape_example
    shape_config:
      baseline_ocpu_utilization: BASELINE_1_8
      gpu_description: gpu_description_example
      gpus: 56
      local_disk_description: local_disk_description_example
      local_disks: 56
      local_disks_total_size_in_gbs: 3.4
      max_vnic_attachments: 56
      memory_in_gbs: 3.4
      networking_bandwidth_in_gbps: 3.4
      ocpus: 3.4
      processor_description: processor_description_example
      vcpus: 56
    source_details:
      boot_volume_id: ocid1.bootvolume.oc1..xxxxxxEXAMPLExxxxxx
      boot_volume_size_in_gbs: 56
      boot_volume_vpus_per_gb: 56
      image_id: ocid1.image.oc1..xxxxxxEXAMPLExxxxxx
      instance_source_image_filter_details:
        compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
        defined_tags_filter: {}
        operating_system: operating_system_example
        operating_system_version: operating_system_version_example
      kms_key_id: ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx
      source_type: bootVolume
    system_tags: {}
    time_created: '2013-10-20T19:20:30+01:00'
    time_maintenance_reboot_due: '2013-10-20T19:20:30+01:00'
  type: complex