oracle.oci.oci_compute_management_instance_configuration (3.5.0) — module

Manage 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:==3.5.0


Add to requirements.yml

  collections:
    - name: oracle.oci
      version: 3.5.0

Description

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

For I(state=present), creates an instance configuration. An instance configuration is a template that defines the settings to use when creating Compute instances.

This resource has the following action operations in the M(oracle.oci.oci_compute_management_instance_configuration_actions) module: change_compartment, launch.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create instance_configuration with source = NONE
  oci_compute_management_instance_configuration:
    # required
    instance_details:
      # 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
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    source: NONE
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Create instance_configuration with source = INSTANCE
  oci_compute_management_instance_configuration:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    source: INSTANCE
    instance_id: "ocid1.instance.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update instance_configuration
  oci_compute_management_instance_configuration:
    # required
    instance_configuration_id: "ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx"

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    display_name: display_name_example
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Update instance_configuration using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_management_instance_configuration:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example

    # optional
    defined_tags: {'Operations': {'CostCenter': 'US'}}
    freeform_tags: {'Department': 'Finance'}
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete instance_configuration
  oci_compute_management_instance_configuration:
    # required
    instance_configuration_id: "ocid1.instanceconfiguration.oc1..xxxxxxEXAMPLExxxxxx"
    state: absent
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete instance_configuration using name (when environment variable OCI_USE_NAME_AS_IDENTIFIER is set)
  oci_compute_management_instance_configuration:
    # required
    compartment_id: "ocid1.compartment.oc1..xxxxxxEXAMPLExxxxxx"
    display_name: display_name_example
    state: absent

Inputs

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

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

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

source:
    choices:
    - NONE
    - INSTANCE
    default: NONE
    description:
    - The source of the instance configuration. An instance configuration defines the
      settings to use when creating Compute instances, including details such as the base
      image, shape, and metadata. You can also specify the associated resources for the
      instance, such as block volume attachments and network configuration.
    - When you create an instance configuration using an existing instance as a template,
      the instance configuration does not include any information from the source instance's
      boot volume, such as installed applications, binaries, and files on the instance.
      It also does not include the contents of any block volumes that are attached to
      the instance.
    - To create an instance configuration that includes the custom setup from an instance's
      boot volume, you must first create a custom image from the instance (see L(CreateImage,https://docs.cloud.oracle.com/en-
      us/iaas/api/#/en/iaas/latest/Image/CreateImage)). Then, use the custom image to
      launch a new instance (see L(LaunchInstance,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/Instance/LaunchInstance)).
      Finally, create the instance configuration based on the instance that you created
      from the custom image.
    - To include block volume contents with an instance configuration, first create a
      backup of the attached block volumes (see L(CreateVolumeBackup,https://docs.cloud.oracle.com/en-us/iaas/api/#/en/iaas/latest/VolumeBackup/CreateVolumeBackup)).
      Then, create the instance configuration by specifying the list of settings, using
      L(InstanceConfigurationVolumeSourceFromVolumeBackupDetails,https://docs.cloud.oracle.com/en-
      us/iaas/api/#/en/iaas/latest/datatypes/InstanceConfigurationVolumeSourceFromVolumeBackupDetails)
      to include the block volume backups in the list of settings.
    - 'The following values are supported:'
    - '* `NONE`: Creates an instance configuration using the list of settings that you
      specify.'
    - '* `INSTANCE`: Creates an instance configuration using an existing instance as a
      template.'
    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

instance_id:
    description:
    - The L(OCID,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm)
      of the instance to use to create the instance configuration.
    - Required when source is 'INSTANCE'
    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

defined_tags:
    description:
    - Defined tags for this resource. Each key is predefined and scoped to a namespace.
      For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Operations": {"CostCenter": "42"}}`'
    - This parameter is updatable.
    type: dict

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

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

freeform_tags:
    description:
    - Free-form tags for this resource. Each tag is a simple key-value pair with no predefined
      name, type, or namespace. For more information, see L(Resource Tags,https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm).
    - 'Example: `{"Department": "Finance"}`'
    - This parameter is updatable.
    type: dict

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

instance_details:
    description:
    - ''
    - Required when source is 'NONE'
    suboptions:
      block_volumes:
        description:
        - ''
        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: true
        type: str
      launch_details:
        description:
        - ''
        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:
        - ''
        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
    type: dict

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

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 for update using I(state=present) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    - Required for delete using I(state=absent) when environment variable C(OCI_USE_NAME_AS_IDENTIFIER)
      is not set.
    type: str

Outputs

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