{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/oracle/json-schema/oracle-cluster-placement-group-schema.json",
  "title": "ClusterPlacementGroup",
  "description": "A cluster placement group, which is a logical grouping of resources that offer low latency within an availability domain by being placed in close physical proximity.\n",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-clusterplacementgroupscp-api-openapi.yml#/components/schemas/ClusterPlacementGroup",
  "properties": {
    "availabilityDomain": {
      "description": "The availability domain of the cluster placement group.",
      "type": "string"
    },
    "capabilities": {
      "$ref": "#/$defs/CapabilitiesCollection"
    },
    "clusterPlacementGroupType": {
      "description": "The type of cluster placement group.",
      "enum": [
        "STANDARD"
      ],
      "type": "string",
      "x-obmcs-top-level-enum": "#/definitions/ClusterPlacementGroupType"
    },
    "compartmentId": {
      "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the cluster placement group.\n",
      "type": "string"
    },
    "definedTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only string type is supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing predefined tags' keys and values scoped to a namespace.\nExample: `{\"bar-key\": \"value\"}`\n",
        "type": "object"
      },
      "description": "Defined tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{\"foo-namespace\": {\"bar-key\": \"value\"}}`\n",
      "type": "object"
    },
    "description": {
      "description": "A description of the cluster placement group.",
      "type": "string"
    },
    "freeformTags": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Simple key-value pair that is applied without any predefined name, type, or scope. Exists for cross-compatibility only.\nExample: `{\"bar-key\": \"value\"}`\n",
      "type": "object"
    },
    "id": {
      "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the cluster placement group.\n",
      "type": "string"
    },
    "lifecycleDetails": {
      "description": "A message describing the current state in more detail. For example, lifecycle details for a resource in a Failed state might include information to act on.\n",
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of the ClusterPlacementGroup.",
      "enum": [
        "CREATING",
        "UPDATING",
        "ACTIVE",
        "INACTIVE",
        "DELETING",
        "DELETED",
        "FAILED"
      ],
      "type": "string"
    },
    "name": {
      "description": "The user-friendly name of the cluster placement group. The display name for a cluster placement must be unique and you cannot change it. Avoid entering confidential information.\n",
      "type": "string"
    },
    "placementInstruction": {
      "$ref": "#/$defs/PlacementInstructionDetails"
    },
    "systemTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only string type is supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing system tags' keys and values scoped to a namespace.\nExample: `{\"bar-key\": \"value\"}`\n",
        "type": "object"
      },
      "description": "System tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`\n",
      "type": "object"
    },
    "timeCreated": {
      "description": "The time the cluster placement group was created, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format.",
      "format": "date-time",
      "type": "string"
    },
    "timeUpdated": {
      "description": "The time the cluster placement group was updated, expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) timestamp format.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "id",
    "compartmentId",
    "availabilityDomain",
    "clusterPlacementGroupType",
    "lifecycleState",
    "timeCreated",
    "name",
    "description",
    "freeformTags",
    "definedTags"
  ],
  "type": "object",
  "x-example": "{\n  \"id\" : \"ocid1.clusterplacementgroup.oc1.iad.example7kwcej5cvbf23yyraup4uzr6fauxakv7ccyhjjoq\",\n  \"name\" : \"testclusterplacementgroup1\",\n  \"description\" : \"test cluster placement group 1\",\n  \"compartmentId\" : \"ocid1.tenancy.oc1..examplemyog6kcvbvq5dlzojpa7fauxila6fj4azxmethmwa\",\n  \"availabilityDomain\" : \"ABcd:US-ASHBURN-AD-1\",\n  \"clusterPlacementGroupType\" : \"STANDARD\",\n  \"timeCreated\" : \"2024-04-15T23:46:54.321Z\",\n  \"timeUpdated\" : \"2024-04-15T23:46:54.321Z\",\n  \"lifecycleState\" : \"ACTIVE\",\n  \"lifecycleDetails\" : null,\n  \"placementInstruction\" : null,\n  \"capabilities\" : {\n    \"items\" : [\n      {\n        \"service\" : \"block-storage\",\n        \"name\" : \"volume\"\n      }\n    ]\n  },\n  \"freeformTags\" : { },\n  \"definedTags\" : {\n    \"Oracle-Tags\" : {\n      \"CreatedBy\" : \"johndoe\",\n      \"CreatedOn\" : \"2024-04-15T23:46:54.060Z\"\n    }\n  },\n  \"systemTags\" : { }\n}\n",
  "$defs": {
    "AdditionalCapabilityDetails": {
      "description": "Additional details describing the selected capability.",
      "properties": {
        "serviceType": {
          "description": "Additional details about what service provides the capability. For example, `COMPUTE` means that the Oracle Cloud Infrastructure Compute service provides the selected capability.\n",
          "enum": [
            "COMPUTE"
          ],
          "type": "string"
        }
      },
      "required": [
        "serviceType"
      ]
    },
    "CapabilitiesCollection": {
      "description": "A list of resources that you can create in a cluster placement group.\n",
      "properties": {
        "items": {
          "description": "The supported resources.",
          "items": {
            "$ref": "#/$defs/CapabilityDetails"
          },
          "maxItems": 20,
          "type": "array"
        }
      },
      "required": [
        "items"
      ],
      "type": "object"
    },
    "CapabilityDetails": {
      "description": "Details about the supported type of resource.",
      "properties": {
        "additionalDetails": {
          "$ref": "#/$defs/AdditionalCapabilityDetails"
        },
        "name": {
          "description": "The type of resource.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "service": {
          "description": "The service that the resource is part of.",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "service",
        "name"
      ],
      "type": "object"
    },
    "PlacementInstructionDetails": {
      "description": "Details that inform cluster placement group provisioning.",
      "properties": {
        "type": {
          "description": "The type of placement instruction.",
          "enum": [
            "TOKEN"
          ],
          "type": "string"
        },
        "value": {
          "description": "The value of the token designated for placement of the cluster placement group upon creation.",
          "type": "string"
        }
      },
      "required": [
        "type",
        "value"
      ],
      "type": "object",
      "x-example": "{\n  \"type\" : \"TOKEN\",\n  \"value\" : \"<var>&lt;unique_token&gt;</var>\"\n}\n"
    }
  }
}