{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/oracle/json-schema/oracle-volume-schema.json",
  "title": "Volume",
  "description": "A detachable block volume device that allows you to dynamically expand\nthe storage capacity of an instance. For more information, see\n[Overview of Cloud Volume Storage](/iaas/Content/Block/Concepts/overview.htm).\n\nTo use any of the API operations, you must be authorized in an IAM policy. If you're not authorized,\ntalk to an administrator. If you're an administrator who needs to write policies to give users access, see\n[Getting Started with Policies](/iaas/Content/Identity/Concepts/policygetstarted.htm).\n\n**Warning:** Oracle recommends that you avoid using any confidential information when you\nsupply string values using the API.\n",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-blockstorage-api-openapi.yml#/components/schemas/Volume",
  "properties": {
    "autoTunedVpusPerGB": {
      "description": "The number of Volume Performance Units per GB that this volume is effectively tuned to.\n",
      "format": "int64",
      "type": "integer"
    },
    "autotunePolicies": {
      "description": "The list of autotune policies enabled for this volume.",
      "items": {
        "$ref": "#/$defs/AutotunePolicy"
      },
      "type": "array",
      "uniqueItems": true
    },
    "availabilityDomain": {
      "description": "The availability domain of the volume.\n\nExample: `Uocm:PHX-AD-1`\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "blockVolumeReplicas": {
      "description": "The list of block volume replicas of this volume.",
      "items": {
        "$ref": "#/$defs/BlockVolumeReplicaInfo"
      },
      "type": "array"
    },
    "clusterPlacementGroupId": {
      "description": "The clusterPlacementGroup Id of the volume for volume placement.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "compartmentId": {
      "description": "The OCID of the compartment that contains the volume.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "definedTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only the String type is supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing a defined tag key and value, scoped to a namespace.\n\nExample: `{\"CostCenter\": \"42\"}`\n",
        "type": "object"
      },
      "description": "Defined tags for this resource. Each key is predefined and scoped to a\nnamespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Operations\": {\"CostCenter\": \"42\"}}`\n",
      "type": "object"
    },
    "displayName": {
      "description": "A user-friendly name. Does not have to be unique, and it's changeable.\nAvoid entering confidential information.\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "freeformTags": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Free-form tags for this resource. Each tag is a simple key-value pair with no\npredefined name, type, or namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Department\": \"Finance\"}`\n",
      "type": "object"
    },
    "id": {
      "description": "The OCID of the volume.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "isAutoTuneEnabled": {
      "description": "Specifies whether the auto-tune performance is enabled for this volume. This field is deprecated.\nUse the `DetachedVolumeAutotunePolicy` instead to enable the volume for detached autotune.\n",
      "type": "boolean"
    },
    "isHydrated": {
      "description": "Specifies whether the cloned volume's data has finished copying from the source volume or backup.\n",
      "type": "boolean"
    },
    "isReservationsEnabled": {
      "description": "When set to true, enables SCSI Persistent Reservation (SCSI PR) for the volume. For more information, see\n[Persistent Reservations](/iaas/Content/Block/Concepts/persistent-reservations.htm).\n",
      "type": "boolean"
    },
    "kmsKeyId": {
      "description": "The OCID of the Vault service key which is the master encryption key for the volume.\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of a volume.",
      "enum": [
        "PROVISIONING",
        "RESTORING",
        "AVAILABLE",
        "TERMINATING",
        "TERMINATED",
        "FAULTY"
      ],
      "type": "string"
    },
    "sizeInGBs": {
      "description": "The size of the volume in GBs.",
      "format": "int64",
      "type": "integer"
    },
    "sizeInMBs": {
      "description": "The size of the volume in MBs. This field is deprecated. Use\nsizeInGBs instead.\n",
      "format": "int64",
      "type": "integer"
    },
    "sourceDetails": {
      "$ref": "#/$defs/VolumeSourceDetails"
    },
    "timeCreated": {
      "description": "The date and time the volume was created. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).",
      "format": "date-time",
      "type": "string"
    },
    "volumeGroupId": {
      "description": "The OCID of the source volume group.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "vpusPerGB": {
      "description": "The number of volume performance units (VPUs) that will be applied to this volume per GB,\nrepresenting the Block Volume service's elastic performance options.\nSee [Block Volume Performance Levels](/iaas/Content/Block/Concepts/blockvolumeperformance.htm#perf_levels) for more information.\n\nAllowed values:\n\n  * `0`: Represents Lower Cost option.\n\n  * `10`: Represents Balanced option.\n\n  * `20`: Represents Higher Performance option.\n\n  * `30`-`120`: Represents the Ultra High Performance option.\n\nFor performance autotune enabled volumes, It would be the Default(Minimum) VPUs/GB.\n",
      "format": "int64",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "availabilityDomain",
    "displayName",
    "sizeInMBs",
    "compartmentId",
    "timeCreated",
    "lifecycleState"
  ],
  "$defs": {
    "AutotunePolicy": {
      "description": "An autotune policy automatically tunes the volume's performace based on the type of the policy.",
      "properties": {
        "autotuneType": {
          "description": "This specifies the type of autotunes supported by OCI.",
          "enum": [
            "DETACHED_VOLUME",
            "PERFORMANCE_BASED"
          ],
          "type": "string"
        }
      },
      "required": [
        "autotuneType"
      ]
    },
    "BlockVolumeReplicaInfo": {
      "description": "Information about the block volume replica in the destination availability domain.",
      "properties": {
        "availabilityDomain": {
          "description": "The availability domain of the block volume replica.\n\nExample: `Uocm:PHX-AD-1`\n",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "blockVolumeReplicaId": {
          "description": "The block volume replica's Oracle ID (OCID).",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        "displayName": {
          "description": "A user-friendly name. Does not have to be unique, and it's changeable.\nAvoid entering confidential information.\n",
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "blockVolumeReplicaId",
        "availabilityDomain",
        "displayName"
      ]
    },
    "VolumeSourceDetails": {
      "description": "Specifies the volume source details for a new Block volume. The volume source is either another Block volume in the same Availability Domain or a Block volume backup.\nThis is an optional field. If not specified or set to null, the new Block volume will be empty.\nWhen specified, the new Block volume will contain data from the source volume or backup.\n",
      "properties": {
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ]
    }
  }
}