{
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "OCIMachinePoolSpec defines the desired state of OCIMachinePool",
      "properties": {
        "instanceConfiguration": {
          "description": "InstanceConfiguration defines the configuration of the instance pool instances.",
          "properties": {
            "agentConfig": {
              "description": "AgentConfig defines the options for the Oracle Cloud Agent software running on the instance.",
              "properties": {
                "areAllPluginsDisabled": {
                  "description": "AreAllPluginsDisabled defines 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 ListInstanceagentAvailablePlugins operation in the Oracle Cloud Agent API. For more information about the available plugins, see Managing Plugins with Oracle Cloud Agent (https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).",
                  "type": "boolean"
                },
                "isManagementDisabled": {
                  "description": "IsManagementDisabled defines 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": "boolean"
                },
                "isMonitoringDisabled": {
                  "description": "IsMonitoringDisabled defines 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": "boolean"
                },
                "pluginsConfigs": {
                  "description": "PluginsConfig defines the configuration of plugins associated with this instance.",
                  "items": {
                    "description": "InstanceAgentPluginConfig defines the configuration of plugins associated with this instance.",
                    "properties": {
                      "desiredState": {
                        "description": "DesiredState defines 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. The following values are supported: * `ENABLED` * `DISABLED`",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name defines the name of the plugin. To get a list of available plugins, use the ListInstanceagentAvailablePlugins operation in the Oracle Cloud Agent API. For more information about the available plugins, see Managing Plugins with Oracle Cloud Agent (https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/manage-plugins.htm).",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "availabilityConfig": {
              "description": "LaunchInstanceAvailabilityConfig defines the options for VM migration during infrastructure maintenance events and for defining the availability of a VM instance after a maintenance event that impacts the underlying hardware.",
              "properties": {
                "isLiveMigrationPreferred": {
                  "description": "IsLiveMigrationPreferred defines whether to live migrate supported VM instances to a healthy physical VM host without disrupting running instances during infrastructure maintenance events. If null, Oracle chooses the best option for migrating the VM during infrastructure maintenance events.",
                  "type": "boolean"
                },
                "recoveryAction": {
                  "description": "RecoveryAction defines 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": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "capacityReservationId": {
              "description": "CapacityReservationId defines the OCID of the compute capacity reservation this instance is launched under. You can opt out of all default reservations by specifying an empty string as input for this field. For more information, see Capacity Reservations (https://docs.cloud.oracle.com/iaas/Content/Compute/Tasks/reserve-capacity.htm#default).",
              "type": "string"
            },
            "dedicatedVmHostId": {
              "description": "DedicatedVmHostId defines the OCID of the dedicated VM host.",
              "type": "string"
            },
            "instanceConfigurationId": {
              "type": "string"
            },
            "instanceOptions": {
              "description": "InstanceOptions defines the instance options",
              "properties": {
                "areLegacyImdsEndpointsDisabled": {
                  "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": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "instanceSourceViaImageConfig": {
              "description": "InstanceSourceViaImageConfig defines the options for booting up instances via images",
              "properties": {
                "bootVolumeSizeInGBs": {
                  "description": "The size of boot volume. Please see https://docs.oracle.com/en-us/iaas/Content/Block/Tasks/extendingbootpartition.htm to extend the boot volume size.",
                  "format": "int64",
                  "type": "integer"
                },
                "bootVolumeVpusPerGB": {
                  "description": "BootVolumeVpusPerGB defines 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 Block Volume Performance Levels (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/blockvolumeperformance.htm#perf_levels) for more information. Allowed values: * `10`: Represents Balanced option. * `20`: Represents Higher Performance option. * `30`-`120`: Represents the Ultra High Performance option. For volumes with the auto-tuned performance feature enabled, this is set to the default (minimum) VPUs/GB.",
                  "format": "int64",
                  "type": "integer"
                },
                "imageId": {
                  "description": "OCID of the image to be used to launch the instance.",
                  "type": "string"
                },
                "kmsKeyId": {
                  "description": "KmsKeyId defines the OCID of the Key Management key to assign as the master encryption key for the boot volume.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "instanceVnicConfiguration": {
              "description": "NetworkDetails defines the configuration options for the network",
              "properties": {
                "assignPrivateDnsRecord": {
                  "description": "AssignPrivateDnsRecord defines whether the VNIC should be assigned a DNS record.",
                  "type": "boolean"
                },
                "assignPublicIp": {
                  "description": "AssignPublicIp defines whether the instance should have a public IP address",
                  "type": "boolean"
                },
                "displayName": {
                  "description": "DisplayName defines a user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.",
                  "type": "string"
                },
                "hostnameLabel": {
                  "description": "HostnameLabel defines the hostname for the VNIC's primary private IP. Used for DNS.",
                  "type": "string"
                },
                "nsgId": {
                  "description": "NSGId defines the ID of the NSG to use. This parameter takes priority over NsgNames. Deprecated, please use NetworkDetails.NSGIds",
                  "type": "string"
                },
                "nsgIds": {
                  "description": "NSGIds defines the list of NSG IDs to use. This parameter takes priority over NsgNames.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "nsgNames": {
                  "description": "NsgNames defines a list of the nsg names of the network security groups (NSGs) to add the VNIC to.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "skipSourceDestCheck": {
                  "description": "SkipSourceDestCheck defines whether the source/destination check is disabled on the VNIC.",
                  "type": "boolean"
                },
                "subnetId": {
                  "description": "SubnetId defines the ID of the subnet to use. This parameter takes priority over SubnetName.",
                  "type": "string"
                },
                "subnetName": {
                  "description": "SubnetName defines the subnet name to use for the VNIC",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "isPvEncryptionInTransitEnabled": {
              "default": true,
              "description": "Is in transit encryption of volumes required.",
              "type": "boolean"
            },
            "launchOptions": {
              "description": "LaunchOptions defines the options for tuning the compatibility and performance of VM shapes",
              "properties": {
                "bootVolumeType": {
                  "description": "BootVolumeType defines 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": "string"
                },
                "firmware": {
                  "description": "Firmware defines the 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": "string"
                },
                "isConsistentVolumeNamingEnabled": {
                  "description": "IsConsistentVolumeNamingEnabled defines whether to enable consistent volume naming feature. Defaults to false.",
                  "type": "boolean"
                },
                "networkType": {
                  "description": "NetworkType defines the 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": "string"
                },
                "remoteDataVolumeType": {
                  "description": "RemoteDataVolumeType defines the 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": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "metadata": {
              "additionalProperties": {
                "type": "string"
              },
              "description": "Custom metadata key/value pairs that you provide, such as the SSH public key required to connect to the instance.",
              "type": "object"
            },
            "platformConfig": {
              "description": "PlatformConfig defines the platform config parameters",
              "properties": {
                "amdMilanBmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe AMD Milan BM platform configuration",
                  "properties": {
                    "areVirtualInstructionsEnabled": {
                      "description": "Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes or VT-x for Intel shapes.",
                      "type": "boolean"
                    },
                    "isAccessControlServiceEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isInputOutputMemoryManagementUnitEnabled": {
                      "description": "Whether the input-output memory management unit is enabled.",
                      "type": "boolean"
                    },
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isSymmetricMultiThreadingEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    },
                    "numaNodesPerSocket": {
                      "description": "The number of NUMA nodes per socket (NPS). The following values are supported: * `NPS0` * `NPS1` * `NPS2` * `NPS4`",
                      "type": "string"
                    },
                    "percentageOfCoresEnabled": {
                      "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.",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "amdRomeBmGpuPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe AMD Rome BM platform configuration",
                  "properties": {
                    "areVirtualInstructionsEnabled": {
                      "description": "Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes or VT-x for Intel shapes.",
                      "type": "boolean"
                    },
                    "isAccessControlServiceEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isInputOutputMemoryManagementUnitEnabled": {
                      "description": "Whether the input-output memory management unit is enabled.",
                      "type": "boolean"
                    },
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isSymmetricMultiThreadingEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    },
                    "numaNodesPerSocket": {
                      "description": "The number of NUMA nodes per socket (NPS). The following values are supported: * `NPS0` * `NPS1` * `NPS2` * `NPS4`",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "amdRomeBmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe AMD Rome BM platform configuration",
                  "properties": {
                    "areVirtualInstructionsEnabled": {
                      "description": "Whether virtualization instructions are available. For example, Secure Virtual Machine for AMD shapes or VT-x for Intel shapes.",
                      "type": "boolean"
                    },
                    "isAccessControlServiceEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isInputOutputMemoryManagementUnitEnabled": {
                      "description": "Whether the input-output memory management unit is enabled.",
                      "type": "boolean"
                    },
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isSymmetricMultiThreadingEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    },
                    "numaNodesPerSocket": {
                      "description": "The number of NUMA nodes per socket (NPS). The following values are supported: * `NPS0` * `NPS1` * `NPS2` * `NPS4`",
                      "type": "string"
                    },
                    "percentageOfCoresEnabled": {
                      "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.",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "amdVmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe AMD VM platform configuration",
                  "properties": {
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "intelIcelakeBmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe Intel Skylke BM platform configuration",
                  "properties": {
                    "isInputOutputMemoryManagementUnitEnabled": {
                      "description": "Whether the input-output memory management unit is enabled.",
                      "type": "boolean"
                    },
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isSymmetricMultiThreadingEnabled": {
                      "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.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    },
                    "numaNodesPerSocket": {
                      "description": "The number of NUMA nodes per socket (NPS). The following values are supported: * `NPS1` * `NPS2`",
                      "type": "string"
                    },
                    "percentageOfCoresEnabled": {
                      "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.",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "intelSkylakeBmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe Intel Skylke BM platform configuration",
                  "properties": {
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "intelVmPlatformConfig": {
                  "description": "AmdMilanBmPlatformConfig describe Intel VM platform configuration",
                  "properties": {
                    "isMeasuredBootEnabled": {
                      "description": "Whether the Measured Boot feature is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isMemoryEncryptionEnabled": {
                      "description": "Whether the instance is a confidential instance. If this value is `true`, the instance is a confidential instance. The default value is `false`.",
                      "type": "boolean"
                    },
                    "isSecureBootEnabled": {
                      "description": "Whether Secure Boot is enabled on the instance.",
                      "type": "boolean"
                    },
                    "isTrustedPlatformModuleEnabled": {
                      "description": "Whether the Trusted Platform Module (TPM) is enabled on the instance.",
                      "type": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "platformConfigType": {
                  "description": "The type of platform configuration. Valid values are * `AMD_ROME_BM_GPU` * `AMD_ROME_BM` * `INTEL_ICELAKE_BM` * `AMD_VM` * `INTEL_VM` * `INTEL_SKYLAKE_BM` * `AMD_MILAN_BM` Based on the enum, exactly one of the specific configuration types must be set",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "preemptibleInstanceConfig": {
              "description": "PreemptibleInstanceConfig Configuration options for preemptible instances.",
              "properties": {
                "terminatePreemptionAction": {
                  "description": "TerminatePreemptionAction terminates the preemptible instance when it is interrupted for eviction.",
                  "properties": {
                    "preserveBootVolume": {
                      "description": "PreserveBootVolume defines 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": "boolean"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "shape": {
              "type": "string"
            },
            "shapeConfig": {
              "description": "The shape configuration of the instance, applicable for flex instances.",
              "properties": {
                "baselineOcpuUtilization": {
                  "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": "string"
                },
                "memoryInGBs": {
                  "description": "The total amount of memory available to the instance, in gigabytes.",
                  "type": "string"
                },
                "nvmes": {
                  "description": "Nvmes defines the number of NVMe drives to be used for storage. A single drive has 6.8 TB available.",
                  "type": "integer"
                },
                "ocpus": {
                  "description": "The total number of OCPUs available to the instance.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "ocid": {
          "description": "OCID is the OCID of the associated InstancePool",
          "type": "string"
        },
        "placementDetails": {
          "description": "PlacementDetails defines the placement details of the instance pool.",
          "items": {
            "properties": {
              "availabilityDomain": {
                "description": "The availability domain to place instances.",
                "type": "integer"
              }
            },
            "required": [
              "availabilityDomain"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "providerID": {
          "description": "ProviderID is the OCID of the associated InstancePool in a provider format",
          "type": "string"
        },
        "providerIDList": {
          "description": "ProviderIDList are the identification IDs of machine instances provided by the provider. This field must match the provider IDs as seen on the node objects corresponding to a machine pool's machine instances.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "OCIMachinePoolStatus defines the observed state of OCIMachinePool",
      "properties": {
        "conditions": {
          "description": "Conditions defines current service state of the OCIMachinePool.",
          "items": {
            "description": "Condition defines an observation of a Cluster API resource operational state.",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition. This field may be empty.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.",
                "type": "string"
              },
              "severity": {
                "description": "Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "failureMessage": {
          "type": "string"
        },
        "failureReason": {
          "description": "MachineStatusError defines errors states for Machine objects.",
          "type": "string"
        },
        "infrastructureMachineKind": {
          "description": "InfrastructureMachineKind is the kind of the infrastructure resources behind MachinePool Machines.",
          "type": "string"
        },
        "ready": {
          "description": "Ready is true when the provider resource is ready.",
          "type": "boolean"
        },
        "replicas": {
          "description": "Replicas is the most recently observed number of replicas",
          "format": "int32",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
