oracle.oci.oci_compute_management_instance_configuration_actions (4.2.0) — module

Perform actions on an InstanceConfiguration 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:==4.2.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 4.2.0

Description

Perform actions on an InstanceConfiguration resource in Oracle Cloud Infrastructure

For I(action=change_compartment), moves an instance configuration into a different compartment within the same tenancy. For information about moving resources between compartments, see L(Moving Resources to a Different Compartment,https://docs.cloud.oracle.com/iaas/Content/Identity/Tasks/managingcompartments.htm#moveRes). When you move an instance configuration to a different compartment, associated resources such as instance pools are not moved. **Important:** Most of the properties for an existing instance configuration, including the compartment, cannot be modified after you create the instance configuration. Although you can move an instance configuration to a different compartment, you will not be able to use the instance configuration to manage instance pools in the new compartment. If you want to update an instance configuration to point to a different compartment, you should instead create a new instance configuration in the target compartment using L(CreateInstanceConfiguration,https://docs.cloud.oracle.com/iaas/api/#/en/iaas/20160918/InstanceConfiguration/CreateInstanceConfiguration).

For I(action=launch), launches an instance from an instance configuration. If the instance configuration does not include all of the parameters that are required to launch an instance, such as the availability domain and subnet ID, you must provide these parameters when you launch an instance from the instance configuration. For more information, see the L(InstanceConfiguration,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/InstanceConfiguration/) resource.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Perform action change_compartment on instance_configuration
  oci_compute_management_instance_configuration_actions:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    instance_configuration_id: "ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx"
    action: change_compartment
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Perform action launch on instance_configuration with instance_type = compute
  oci_compute_management_instance_configuration_actions:
    # required
    instance_type: compute

    # optional
    block_volumes:
    - # optional
      attach_details:
        # required
        type: iscsi

        # optional
        use_chap: true
        display_name: display_name_example
        is_read_only: true
        device: device_example
        is_shareable: true
      create_details:
        # optional
        availability_domain: Uocm:PHX-AD-1
        backup_policy_id: "ocid1.backuppolicy.oc1..xxxxxxEXAMPLExxxxxx"
        compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
        defined_tags: {'Operations': {'CostCenter': 'US'}}
        display_name: display_name_example
        freeform_tags: {'Department': 'Finance'}
        kms_key_id: "ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx"
        vpus_per_gb: 56
        size_in_gbs: 56
        source_details:
          # required
          type: volumeBackup

          # optional
          id: "ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx"
        autotune_policies:
        - # required
          max_vpus_per_gb: 56
          autotune_type: PERFORMANCE_BASED
      volume_id: "ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx"
    launch_details:
      # optional
      availability_domain: Uocm:PHX-AD-1
      capacity_reservation_id: "ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx"
      compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
      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"
      defined_tags: {'Operations': {'CostCenter': 'US'}}
      display_name: display_name_example
      extended_metadata: null
      freeform_tags: {'Department': 'Finance'}
      ipxe_script: ipxe_script_example
      metadata: null
      shape: shape_example
      shape_config:
        # optional
        ocpus: 3.4
        memory_in_gbs: 3.4
        baseline_ocpu_utilization: BASELINE_1_8
        nvmes: 56
      platform_config:
        # required
        type: AMD_MILAN_BM

        # optional
        percentage_of_cores_enabled: 56
        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
        is_secure_boot_enabled: true
        is_trusted_platform_module_enabled: true
        is_measured_boot_enabled: true
      source_details:
        # required
        source_type: image

        # optional
        boot_volume_size_in_gbs: 56
        image_id: "ocid1.image.oc1..xxxxxxEXAMPLExxxxxx"
        boot_volume_vpus_per_gb: 56
      fault_domain: FAULT-DOMAIN-1
      dedicated_vm_host_id: "ocid1.dedicatedvmhost.oc1..xxxxxxEXAMPLExxxxxx"
      launch_mode: NATIVE
      launch_options:
        # optional
        boot_volume_type: ISCSI
        firmware: BIOS
        network_type: E1000
        remote_data_volume_type: ISCSI
        is_pv_encryption_in_transit_enabled: true
        is_consistent_volume_naming_enabled: true
      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
      is_pv_encryption_in_transit_enabled: true
      preferred_maintenance_action: LIVE_MIGRATE
      instance_options:
        # optional
        are_legacy_imds_endpoints_disabled: true
      availability_config:
        # optional
        recovery_action: RESTORE_INSTANCE
      preemptible_instance_config:
        # required
        preemption_action:
          # required
          type: TERMINATE

          # optional
          preserve_boot_volume: true
    secondary_vnics:
    - # 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"
      display_name: display_name_example
      nic_index: 56

Inputs

    
action:
    choices:
    - change_compartment
    - launch
    description:
    - The action to perform on the InstanceConfiguration.
    required: true
    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

auth_type:
    choices:
    - api_key
    - instance_principal
    - instance_obo_user
    - resource_principal
    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

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

block_volumes:
    description:
    - ''
    - Applicable only for I(action=launch).
    elements: dict
    suboptions:
      attach_details:
        description:
        - ''
        suboptions:
          device:
            description:
            - The device name.
            type: str
          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
          is_pv_encryption_in_transit_enabled:
            description:
            - Whether to enable in-transit encryption for the data volume's paravirtualized
              attachment. The default value is false.
            - Applicable when type is 'paravirtualized'
            type: bool
          is_read_only:
            description:
            - Whether the attachment should be created in read-only mode.
            type: bool
          is_shareable:
            description:
            - Whether the attachment should be created in shareable mode. If an attachment
              is created in shareable mode, then other instances can attach the same volume,
              provided that they also create their attachments in shareable mode. Only
              certain volume types can be attached in shareable mode. Defaults to false
              if not specified.
            type: bool
          type:
            choices:
            - iscsi
            - paravirtualized
            description:
            - The type of volume. The only supported values are "iscsi" and "paravirtualized".
            required: true
            type: str
          use_chap:
            description:
            - Whether to use CHAP authentication for the volume attachment. Defaults to
              false.
            - Applicable when type is 'iscsi'
            type: bool
        type: dict
      create_details:
        description:
        - ''
        suboptions:
          autotune_policies:
            description:
            - The list of autotune policies enabled for this volume.
            elements: dict
            suboptions:
              autotune_type:
                choices:
                - PERFORMANCE_BASED
                - DETACHED_VOLUME
                description:
                - This specifies the type of autotunes supported by OCI.
                required: true
                type: str
              max_vpus_per_gb:
                description:
                - This will be the maximum VPUs/GB performance level that the volume will
                  be auto-tuned temporarily based on performance monitoring.
                - Required when autotune_type is 'PERFORMANCE_BASED'
                type: int
            type: list
          availability_domain:
            description:
            - The availability domain of the volume.
            - 'Example: `Uocm:PHX-AD-1`'
            type: str
          backup_policy_id:
            description:
            - If provided, specifies the ID of the volume backup policy to assign to the
              newly created volume. If omitted, no policy will be assigned.
            type: str
          compartment_id:
            description:
            - The OCID of the compartment that contains the volume.
            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"}}`'
            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
          kms_key_id:
            description:
            - The OCID of the Key Management key to assign as the master encryption key
              for the volume.
            type: str
          size_in_gbs:
            description:
            - The size of the volume in GBs.
            type: int
          source_details:
            description:
            - ''
            suboptions:
              id:
                description:
                - The OCID of the volume backup.
                type: str
              type:
                choices:
                - volumeBackup
                - volume
                description:
                - ''
                required: true
                type: str
            type: dict
          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:'
            - ' * `0`: Represents Lower Cost option.'
            - ' * `10`: Represents Balanced option.'
            - ' * `20`: Represents Higher Performance option.'
            - ' * `30`-`120`: Represents the Ultra High Performance option.'
            - For performance autotune enabled volumes, it would be the Default(Minimum)
              VPUs/GB.
            type: int
        type: dict
      volume_id:
        description:
        - The OCID of the volume.
        type: str
    type: list

instance_type:
    choices:
    - compute
    description:
    - The type of instance details. Supported instanceType is compute
    - Required for I(action=launch).
    type: str

compartment_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the compartment to move the instance configuration to.
    - Required for I(action=change_compartment).
    type: str

launch_details:
    description:
    - ''
    - Applicable only for I(action=launch).
    suboptions:
      agent_config:
        description:
        - ''
        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).
            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.'
            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.'
            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
      availability_config:
        description:
        - ''
        suboptions:
          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.
            type: str
        type: dict
      availability_domain:
        description:
        - The availability domain of the instance.
        - 'Example: `Uocm:PHX-AD-1`'
        type: str
      capacity_reservation_id:
        description:
        - The OCID of the compute capacity reservation this instance is launched under.
        type: str
      compartment_id:
        description:
        - The OCID of the compartment containing the instance. Instances created from
          instance configurations are placed in the same compartment as the instance that
          was used to create the instance configuration.
        type: str
      create_vnic_details:
        description:
        - ''
        suboptions:
          assign_private_dns_record:
            description:
            - Whether the VNIC should be assigned a private DNS record. See the `assignPrivateDnsRecord`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: bool
          assign_public_ip:
            description:
            - Whether the VNIC should be assigned a public IP address. See the `assignPublicIp`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            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. See the `hostnameLabel`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            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/).
            elements: str
            type: list
          private_ip:
            description:
            - A private IP address of your choice to assign to the VNIC. See the `privateIp`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: str
          skip_source_dest_check:
            description:
            - Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: bool
          subnet_id:
            description:
            - The OCID of the subnet to create the VNIC in. See the `subnetId` attribute
              of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: str
        type: dict
      dedicated_vm_host_id:
        description:
        - The OCID of dedicated VM host.
        - Dedicated VM hosts can be used when launching individual instances from an instance
          configuration. They cannot be used to launch instance pools.
        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"}}`'
        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
      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.
        type: dict
      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`'
        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
      instance_options:
        description:
        - ''
        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
      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; however, you should 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, you should use the following iSCSI IP address: 169.254.0.2,
          and boot volume IQN: iqn.2015-02.oracle.boot.'
        - 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
      is_pv_encryption_in_transit_enabled:
        description:
        - Whether to enable in-transit encryption for the data volume's paravirtualized
          attachment. The default value is false.
        type: bool
      launch_mode:
        choices:
        - NATIVE
        - EMULATED
        - PARAVIRTUALIZED
        - CUSTOM
        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.'
        type: str
      launch_options:
        description:
        - ''
        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.
            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(InstanceConfigurationLaunchInstanceDetails,https://docs.cloud.oracle.com/en-
              us/iaas/api/#/en/iaas/latest/datatypes/InstanceConfigurationLaunchInstanceDetails).
            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.
            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
      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.
        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_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_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_ROME_BM_GPU', 'INTEL_ICELAKE_BM',
              'AMD_ROME_BM']
            type: bool
          is_measured_boot_enabled:
            description:
            - Whether the Measured Boot feature is enabled on the instance.
            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_ROME_BM_GPU', 'INTEL_ICELAKE_BM',
              'AMD_ROME_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_ROME_BM_GPU', 'INTEL_ICELAKE_BM',
              'AMD_ROME_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', 'INTEL_ICELAKE_BM', 'AMD_ROME_BM']
            type: int
          type:
            choices:
            - AMD_MILAN_BM
            - INTEL_VM
            - INTEL_ICELAKE_BM
            - AMD_ROME_BM
            - INTEL_SKYLAKE_BM
            - AMD_ROME_BM_GPU
            - AMD_VM
            description:
            - The type of platform being configured.
            required: true
            type: str
        type: dict
      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
      preferred_maintenance_action:
        choices:
        - LIVE_MIGRATE
        - REBOOT
        description:
        - The preferred maintenance action for an instance. The default is LIVE_MIGRATE,
          if live migration is supported. * `LIVE_MIGRATE` - Run maintenance using a live
          migration. * `REBOOT` - Run maintenance using a reboot.
        type: str
      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).
        type: str
      shape_config:
        description:
        - ''
        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.'
            type: str
          memory_in_gbs:
            description:
            - The total amount of memory available to the instance, in gigabytes.
            type: float
          nvmes:
            description:
            - The number of NVMe drives to be used for storage. A single drive has 6.8
              TB available.
            type: int
          ocpus:
            description:
            - The total number of OCPUs available to the instance.
            type: float
        type: dict
      source_details:
        description:
        - ''
        suboptions:
          boot_volume_id:
            description:
            - The OCID of the boot volume used to boot the instance.
            - Applicable when source_type is 'bootVolume'
            type: str
          boot_volume_size_in_gbs:
            description:
            - The size of the boot volume in GBs. The minimum value is 50 GB and the 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 performance autotune enabled volumes, it would be 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
          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
    type: dict

secondary_vnics:
    description:
    - ''
    - Applicable only for I(action=launch).
    elements: dict
    suboptions:
      create_vnic_details:
        description:
        - ''
        suboptions:
          assign_private_dns_record:
            description:
            - Whether the VNIC should be assigned a private DNS record. See the `assignPrivateDnsRecord`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: bool
          assign_public_ip:
            description:
            - Whether the VNIC should be assigned a public IP address. See the `assignPublicIp`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            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. See the `hostnameLabel`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            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/).
            elements: str
            type: list
          private_ip:
            description:
            - A private IP address of your choice to assign to the VNIC. See the `privateIp`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: str
          skip_source_dest_check:
            description:
            - Whether the source/destination check is disabled on the VNIC. See the `skipSourceDestCheck`
              attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: bool
          subnet_id:
            description:
            - The OCID of the subnet to create the VNIC in. See the `subnetId` attribute
              of L(CreateVnicDetails,https://docs.cloud.oracle.com/en- us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
              for more information.
            type: str
        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
      nic_index:
        description:
        - Which physical network interface card (NIC) the VNIC will use. Defaults to 0.
          Certain bare metal instance shapes have two active physical NICs (0 and 1).
          If you add a secondary VNIC to one of these instances, you can specify which
          NIC the VNIC will use. For more information, see L(Virtual Network Interface
          Cards (VNICs),https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVNICs.htm).
        type: int
    type: list

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

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

instance_configuration_id:
    aliases:
    - id
    description:
    - The OCID of the instance configuration.
    required: true
    type: str

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 dedicated VM host.
      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_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 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 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
    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_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
    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
      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
        kms_key_id:
          description:
          - The OCID of the Key Management 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 InstanceConfiguration 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_options:
      are_legacy_imds_endpoints_disabled: true
    ipxe_script: ipxe_script_example
    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_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
    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
    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
      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
instance_configuration:
  contains:
    compartment_id:
      description:
      - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the compartment containing the instance configuration.
      returned: on success
      sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    deferred_fields:
      description:
      - Parameters that were not specified when the instance configuration was created,
        but that are required to launch an instance from the instance configuration.
        See the L(LaunchInstanceConfiguration,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Instance/LaunchInstanceConfiguration)
        operation.
      returned: on success
      sample: []
      type: list
    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 L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
        of the instance configuration.
      returned: on success
      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
      type: str
    instance_details:
      contains:
        block_volumes:
          contains:
            attach_details:
              contains:
                device:
                  description:
                  - The device name.
                  returned: on success
                  sample: device_example
                  type: str
                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
                is_pv_encryption_in_transit_enabled:
                  description:
                  - Whether to enable in-transit encryption for the data volume's
                    paravirtualized attachment. The default value is false.
                  returned: on success
                  sample: true
                  type: bool
                is_read_only:
                  description:
                  - Whether the attachment should be created in read-only mode.
                  returned: on success
                  sample: true
                  type: bool
                is_shareable:
                  description:
                  - Whether the attachment should be created in shareable mode. If
                    an attachment is created in shareable mode, then other instances
                    can attach the same volume, provided that they also create their
                    attachments in shareable mode. Only certain volume types can be
                    attached in shareable mode. Defaults to false if not specified.
                  returned: on success
                  sample: true
                  type: bool
                type:
                  description:
                  - The type of volume. The only supported values are "iscsi" and
                    "paravirtualized".
                  returned: on success
                  sample: iscsi
                  type: str
                use_chap:
                  description:
                  - Whether to use CHAP authentication for the volume attachment.
                    Defaults to false.
                  returned: on success
                  sample: true
                  type: bool
              description:
              - ''
              returned: on success
              type: complex
            create_details:
              contains:
                autotune_policies:
                  contains:
                    autotune_type:
                      description:
                      - This specifies the type of autotunes supported by OCI.
                      returned: on success
                      sample: DETACHED_VOLUME
                      type: str
                    max_vpus_per_gb:
                      description:
                      - This will be the maximum VPUs/GB performance level that the
                        volume will be auto-tuned temporarily based on performance
                        monitoring.
                      returned: on success
                      sample: 56
                      type: int
                  description:
                  - The list of autotune policies enabled for this volume.
                  returned: on success
                  type: complex
                availability_domain:
                  description:
                  - The availability domain of the volume.
                  - 'Example: `Uocm:PHX-AD-1`'
                  returned: on success
                  sample: Uocm:PHX-AD-1
                  type: str
                backup_policy_id:
                  description:
                  - If provided, specifies the ID of the volume backup policy to assign
                    to the newly created volume. If omitted, no policy will be assigned.
                  returned: on success
                  sample: ocid1.backuppolicy.oc1..xxxxxxEXAMPLExxxxxx
                  type: str
                compartment_id:
                  description:
                  - The OCID of the compartment that contains the volume.
                  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
                kms_key_id:
                  description:
                  - The OCID of the Key Management key to assign as the master encryption
                    key for the volume.
                  returned: on success
                  sample: ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx
                  type: str
                size_in_gbs:
                  description:
                  - The size of the volume in GBs.
                  returned: on success
                  sample: 56
                  type: int
                source_details:
                  contains:
                    id:
                      description:
                      - The OCID of the volume.
                      returned: on success
                      sample: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
                      type: str
                    type:
                      description:
                      - ''
                      returned: on success
                      sample: volume
                      type: str
                  description:
                  - ''
                  returned: on success
                  type: complex
                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:'
                  - ' * `0`: Represents Lower Cost option.'
                  - ' * `10`: Represents Balanced option.'
                  - ' * `20`: Represents Higher Performance option.'
                  - ' * `30`-`120`: Represents the Ultra High Performance option.'
                  - For performance autotune enabled volumes, it would be the Default(Minimum)
                    VPUs/GB.
                  returned: on success
                  sample: 56
                  type: int
              description:
              - ''
              returned: on success
              type: complex
            volume_id:
              description:
              - The OCID of the volume.
              returned: on success
              sample: ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx
              type: str
          description:
          - ''
          returned: on success
          type: complex
        instance_type:
          description:
          - The type of instance details. Supported instanceType is compute
          returned: on success
          sample: compute
          type: str
        launch_details:
          contains:
            agent_config:
              contains:
                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).
                  returned: on success
                  sample: true
                  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.'
                  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. 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.'
                  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:
                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 of the instance.
              - '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.
              returned: on success
              sample: ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx
              type: str
            compartment_id:
              description:
              - The OCID of the compartment containing the instance. Instances created
                from instance configurations are placed in the same compartment as
                the instance that was used to create the instance configuration.
              returned: on success
              sample: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
              type: str
            create_vnic_details:
              contains:
                assign_private_dns_record:
                  description:
                  - Whether the VNIC should be assigned a private DNS record. See
                    the `assignPrivateDnsRecord` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
                    for more information.
                  returned: on success
                  sample: true
                  type: bool
                assign_public_ip:
                  description:
                  - Whether the VNIC should be assigned a public IP address. See the
                    `assignPublicIp` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
                    for more information.
                  returned: on success
                  sample: true
                  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"}}`'
                  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
                hostname_label:
                  description:
                  - The hostname for the VNIC's primary private IP. See the `hostnameLabel`
                    attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: hostname_label_example
                  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/).
                  returned: on success
                  sample: []
                  type: list
                private_ip:
                  description:
                  - A private IP address of your choice to assign to the VNIC. See
                    the `privateIp` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: private_ip_example
                  type: str
                skip_source_dest_check:
                  description:
                  - Whether the source/destination check is disabled on the VNIC.
                    See the `skipSourceDestCheck` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: true
                  type: bool
                subnet_id:
                  description:
                  - The OCID of the subnet to create the VNIC in. See the `subnetId`
                    attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx
                  type: str
              description:
              - ''
              returned: on success
              type: complex
            dedicated_vm_host_id:
              description:
              - The OCID of dedicated VM host.
              - Dedicated VM hosts can be used when launching individual instances
                from an instance configuration. They cannot be used to launch instance
                pools.
              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).
              - The combined size of the `metadata` and `extendedMetadata` objects
                can be a maximum of 32,000 bytes.
              returned: on success
              sample: {}
              type: dict
            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`'
              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
            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:
              - 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; however,
                you should 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, you should use the
                following iSCSI IP address: 169.254.0.2, and boot volume IQN: iqn.2015-02.oracle.boot.'
              - 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_pv_encryption_in_transit_enabled:
              description:
              - Whether to enable in-transit encryption for the data volume's paravirtualized
                attachment. The default value is false.
              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(InstanceConfigurationLaunchInstanceDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/datatypes/InstanceConfigurationLaunchInstanceDetails).
                  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
            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.
              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_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
            preferred_maintenance_action:
              description:
              - The preferred maintenance action for an instance. The default is LIVE_MIGRATE,
                if live migration is supported. * `LIVE_MIGRATE` - Run maintenance
                using a live migration. * `REBOOT` - Run maintenance using a reboot.
              returned: on success
              sample: LIVE_MIGRATE
              type: str
            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).
              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 an entire
                    OCPU. This represents a non-burstable instance.'
                  returned: on success
                  sample: BASELINE_1_8
                  type: str
                memory_in_gbs:
                  description:
                  - The total amount of memory available to the instance, in gigabytes.
                  returned: on success
                  sample: 3.4
                  type: float
                nvmes:
                  description:
                  - The number of NVMe drives to be used for storage. A single drive
                    has 6.8 TB available.
                  returned: on success
                  sample: 56
                  type: int
                ocpus:
                  description:
                  - The total number of OCPUs available to the instance.
                  returned: on success
                  sample: 3.4
                  type: float
              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. The minimum value is 50 GB
                    and the 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 performance autotune enabled volumes, it would be 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
                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
          description:
          - ''
          returned: on success
          type: complex
        secondary_vnics:
          contains:
            create_vnic_details:
              contains:
                assign_private_dns_record:
                  description:
                  - Whether the VNIC should be assigned a private DNS record. See
                    the `assignPrivateDnsRecord` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
                    for more information.
                  returned: on success
                  sample: true
                  type: bool
                assign_public_ip:
                  description:
                  - Whether the VNIC should be assigned a public IP address. See the
                    `assignPublicIp` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/CreateVnicDetails/)
                    for more information.
                  returned: on success
                  sample: true
                  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"}}`'
                  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
                hostname_label:
                  description:
                  - The hostname for the VNIC's primary private IP. See the `hostnameLabel`
                    attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: hostname_label_example
                  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/).
                  returned: on success
                  sample: []
                  type: list
                private_ip:
                  description:
                  - A private IP address of your choice to assign to the VNIC. See
                    the `privateIp` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: private_ip_example
                  type: str
                skip_source_dest_check:
                  description:
                  - Whether the source/destination check is disabled on the VNIC.
                    See the `skipSourceDestCheck` attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: true
                  type: bool
                subnet_id:
                  description:
                  - The OCID of the subnet to create the VNIC in. See the `subnetId`
                    attribute of L(CreateVnicDetails,https://docs.cloud.oracle.com/en-
                    us/iaas/api/#/en/iaas/latest/CreateVnicDetails/) for more information.
                  returned: on success
                  sample: ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx
                  type: str
              description:
              - ''
              returned: on success
              type: complex
            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
            nic_index:
              description:
              - Which physical network interface card (NIC) the VNIC will use. Defaults
                to 0. Certain bare metal instance shapes have two active physical
                NICs (0 and 1). If you add a secondary VNIC to one of these instances,
                you can specify which NIC the VNIC will use. For more information,
                see L(Virtual Network Interface Cards (VNICs),https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/managingVNICs.htm).
              returned: on success
              sample: 56
              type: int
          description:
          - ''
          returned: on success
          type: complex
      description:
      - ''
      returned: on success
      type: complex
    time_created:
      description:
      - The date and time the instance configuration 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:
  - Details of the InstanceConfiguration resource acted upon by the current operation
  returned: on success
  sample:
    compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
    deferred_fields: []
    defined_tags:
      Operations:
        CostCenter: US
    display_name: display_name_example
    freeform_tags:
      Department: Finance
    id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
    instance_details:
      block_volumes:
      - attach_details:
          device: device_example
          display_name: display_name_example
          is_pv_encryption_in_transit_enabled: true
          is_read_only: true
          is_shareable: true
          type: iscsi
          use_chap: true
        create_details:
          autotune_policies:
          - autotune_type: DETACHED_VOLUME
            max_vpus_per_gb: 56
          availability_domain: Uocm:PHX-AD-1
          backup_policy_id: ocid1.backuppolicy.oc1..xxxxxxEXAMPLExxxxxx
          compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
          defined_tags:
            Operations:
              CostCenter: US
          display_name: display_name_example
          freeform_tags:
            Department: Finance
          kms_key_id: ocid1.kmskey.oc1..xxxxxxEXAMPLExxxxxx
          size_in_gbs: 56
          source_details:
            id: ocid1.resource.oc1..xxxxxxEXAMPLExxxxxx
            type: volume
          vpus_per_gb: 56
        volume_id: ocid1.volume.oc1..xxxxxxEXAMPLExxxxxx
      instance_type: compute
      launch_details:
        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:
          recovery_action: RESTORE_INSTANCE
        availability_domain: Uocm:PHX-AD-1
        capacity_reservation_id: ocid1.capacityreservation.oc1..xxxxxxEXAMPLExxxxxx
        compartment_id: ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx
        create_vnic_details:
          assign_private_dns_record: true
          assign_public_ip: true
          defined_tags:
            Operations:
              CostCenter: US
          display_name: display_name_example
          freeform_tags:
            Department: Finance
          hostname_label: hostname_label_example
          nsg_ids: []
          private_ip: private_ip_example
          skip_source_dest_check: true
          subnet_id: ocid1.subnet.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
        instance_options:
          are_legacy_imds_endpoints_disabled: true
        ipxe_script: ipxe_script_example
        is_pv_encryption_in_transit_enabled: 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
        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_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
        preferred_maintenance_action: LIVE_MIGRATE
        shape: shape_example
        shape_config:
          baseline_ocpu_utilization: BASELINE_1_8
          memory_in_gbs: 3.4
          nvmes: 56
          ocpus: 3.4
        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
          source_type: bootVolume
      secondary_vnics:
      - create_vnic_details:
          assign_private_dns_record: true
          assign_public_ip: true
          defined_tags:
            Operations:
              CostCenter: US
          display_name: display_name_example
          freeform_tags:
            Department: Finance
          hostname_label: hostname_label_example
          nsg_ids: []
          private_ip: private_ip_example
          skip_source_dest_check: true
          subnet_id: ocid1.subnet.oc1..xxxxxxEXAMPLExxxxxx
        display_name: display_name_example
        nic_index: 56
    time_created: '2013-10-20T19:20:30+01:00'
  type: complex