{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/oracle/json-schema/oracle-volume-backup-schema.json",
  "title": "VolumeBackup",
  "description": "A point-in-time copy of a volume that can then be used to create a new block volume\nor recover a block volume. 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/VolumeBackup",
  "properties": {
    "compartmentId": {
      "description": "The OCID of the compartment that contains the volume backup.",
      "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"
    },
    "expirationTime": {
      "description": "The date and time the volume backup will expire and be automatically deleted.\nFormat defined by [RFC3339](https://tools.ietf.org/html/rfc3339). This parameter will always be present for backups that\nwere created automatically by a scheduled-backup policy. For manually created backups,\nit will be absent, signifying that there is no expiration time and the backup will\nlast forever until manually deleted.\n",
      "format": "date-time",
      "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 backup.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "isIndefiniteRetentionEnabled": {
      "description": "feature that preserves backup data from modification or deletion to ensure it remains available for legal or regulatory investigations or litigation, regardless of standard retention policies. This is an optional field. If it is not specified, it is set to null, no legal hold will be applied to the backups.",
      "type": "boolean"
    },
    "isPreventDeletionEnabled": {
      "description": "Prevent backups from being deleted during the configured retention period. This is an optional field. If it is not specified, it is set to null, prevent deletion will not be applied to the backups.",
      "type": "boolean"
    },
    "isRetentionLockEnabled": {
      "description": "feature that prevents deletion or alteration of backup data for a specified period to ensure data protection and regulatory compliance. This is an optional field. If it is not specified, it is set to null, no retention lock will be applied to the backups. This feature should be used in conjunction with the retention-period field.",
      "type": "boolean"
    },
    "kmsKeyId": {
      "description": "The OCID of the Vault service key which is the master encryption key for the volume backup.\nFor more information about the Vault service and encryption keys, see\n[Overview of Vault service](/iaas/Content/KeyManagement/Concepts/keyoverview.htm) and\n[Using Keys](/iaas/Content/KeyManagement/Tasks/usingkeys.htm).\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of a volume backup.",
      "enum": [
        "CREATING",
        "AVAILABLE",
        "TERMINATING",
        "TERMINATED",
        "FAULTY",
        "REQUEST_RECEIVED"
      ],
      "type": "string"
    },
    "retentionPeriod": {
      "$ref": "#/$defs/RetentionDuration"
    },
    "sizeInGBs": {
      "description": "The size of the volume, in GBs.\n",
      "format": "int64",
      "maximum": 16384,
      "minimum": 1,
      "type": "integer"
    },
    "sizeInMBs": {
      "description": "The size of the volume in MBs. The value must be a multiple of 1024.\nThis field is deprecated. Please use sizeInGBs.\n",
      "format": "int64",
      "maximum": 16777216,
      "minimum": 1024,
      "type": "integer"
    },
    "sourceType": {
      "description": "Specifies whether the backup was created manually, or via scheduled backup policy.\n",
      "enum": [
        "MANUAL",
        "SCHEDULED"
      ],
      "type": "string"
    },
    "sourceVolumeBackupId": {
      "description": "The OCID of the source volume backup.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "timeCreated": {
      "description": "The date and time the volume backup was created. This is the time the actual point-in-time image\nof the volume data was taken. Format defined by [RFC3339](https://tools.ietf.org/html/rfc3339).\n",
      "format": "date-time",
      "type": "string"
    },
    "timeRequestReceived": {
      "description": "The date and time the request to create the volume backup was received. Format defined by [RFC3339]https://tools.ietf.org/html/rfc3339.\n",
      "format": "date-time",
      "type": "string"
    },
    "timeRetentionExpiresAt": {
      "description": "The date and time when a backup’s retention period ends and it is set to expire. This is an optional field. If it is not specified, it is set to null, no retention period will be applied to the backups.",
      "format": "date-time",
      "type": "string"
    },
    "type": {
      "description": "The type of a volume backup.",
      "enum": [
        "FULL",
        "INCREMENTAL"
      ],
      "type": "string"
    },
    "uniqueSizeInGBs": {
      "description": "The size used by the backup, in GBs. It is typically smaller than sizeInGBs, depending on the space\nconsumed on the volume and whether the backup is full or incremental.\n",
      "format": "int64",
      "maximum": 16384,
      "minimum": 0,
      "type": "integer"
    },
    "uniqueSizeInMbs": {
      "description": "The size used by the backup, in MBs. It is typically smaller than sizeInMBs, depending on the space\nconsumed on the volume and whether the backup is full or incremental.\nThis field is deprecated. Please use uniqueSizeInGBs.\n",
      "format": "int64",
      "maximum": 16777216,
      "minimum": 0,
      "type": "integer"
    },
    "volumeGroupBackupId": {
      "description": "The OCID of the volume group backup associated with the backup. This is an optional field. If it is not present in the response, the backup does not belong to a volume group.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "volumeId": {
      "description": "The OCID of the volume.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "id",
    "type",
    "displayName",
    "compartmentId",
    "timeCreated",
    "lifecycleState"
  ],
  "$defs": {
    "RetentionDuration": {
      "description": "This field is used to define the retention period for backups. This is an optional field. If it is not specified, it is set to null, no retention period will be applied to the backups.",
      "properties": {
        "retentionTimeAmount": {
          "description": "The value to enter for the amount of retention time should be a numerical figure (such as 1, 7, 30, etc.) that corresponds to the period specified in the retention time unit property (such as YEARS, DAYS). The combination of these two properties determines the total length of the retention period.",
          "type": "integer"
        },
        "retentionTimeUnit": {
          "description": "The value you can assign to the Time Unit property for this Duration may be either \"YEARS\" or \"DAYS\".",
          "enum": [
            "YEARS",
            "DAYS"
          ],
          "type": "string"
        }
      },
      "required": [
        "retentionTimeUnit",
        "retentionTimeAmount"
      ]
    }
  }
}