Amazon EBS Volume is a JSON Structure definition published by Amazon EBS, describing 14 properties, of which 1 is required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/amazon-ebs/refs/heads/main/json-structure/amazon-ebs-volume-structure.json",
"name": "Amazon EBS Volume",
"description": "Schema representing an Amazon Elastic Block Store volume, which provides persistent block-level storage for use with Amazon EC2 instances.",
"type": "object",
"properties": {
"volumeId": {
"type": "string",
"description": "The ID of the volume.",
"pattern": "^vol-[a-f0-9]+$"
},
"size": {
"type": "int32",
"description": "The size of the volume, in GiBs.",
"minimum": 1,
"maximum": 16384
},
"volumeType": {
"type": "string",
"description": "The volume type.",
"enum": [
"gp2",
"gp3",
"io1",
"io2",
"st1",
"sc1",
"standard"
],
"default": "gp3"
},
"state": {
"type": "string",
"description": "The volume state.",
"enum": [
"creating",
"available",
"in-use",
"deleting",
"deleted",
"error"
]
},
"availabilityZone": {
"type": "string",
"description": "The Availability Zone for the volume."
},
"createTime": {
"type": "datetime",
"description": "The time stamp when volume creation was initiated."
},
"encrypted": {
"type": "boolean",
"description": "Indicates whether the volume is encrypted.",
"default": false
},
"kmsKeyId": {
"type": "string",
"description": "The Amazon Resource Name (ARN) of the AWS KMS key that was used to protect the volume encryption key."
},
"iops": {
"type": "int32",
"description": "The number of I/O operations per second (IOPS). For gp3, io1, and io2 volumes only.",
"minimum": 100,
"maximum": 256000
},
"throughput": {
"type": "int32",
"description": "The throughput that the volume supports, in MiB/s. For gp3 volumes only.",
"minimum": 125,
"maximum": 1000
},
"snapshotId": {
"type": "string",
"description": "The snapshot from which the volume was created, if applicable.",
"pattern": "^snap-[a-f0-9]*$"
},
"multiAttachEnabled": {
"type": "boolean",
"description": "Indicates whether Amazon EBS Multi-Attach is enabled. For io1 and io2 volumes only.",
"default": false
},
"attachments": {
"type": "array",
"description": "Information about the volume attachments.",
"items": {
"type": "object",
"properties": {
"volumeId": {
"type": "string",
"description": "The ID of the volume."
},
"instanceId": {
"type": "string",
"description": "The ID of the instance.",
"pattern": "^i-[a-f0-9]+$"
},
"device": {
"type": "string",
"description": "The device name."
},
"state": {
"type": "string",
"description": "The attachment state of the volume.",
"enum": [
"attaching",
"attached",
"detaching",
"detached",
"busy"
]
},
"attachTime": {
"type": "datetime",
"description": "The time stamp when the attachment initiated."
},
"deleteOnTermination": {
"type": "boolean",
"description": "Indicates whether the EBS volume is deleted on instance termination."
}
}
}
},
"tags": {
"type": "array",
"description": "Any tags assigned to the volume.",
"items": {
"type": "object",
"properties": {
"Key": {
"type": "string",
"description": "The key of the tag."
},
"Value": {
"type": "string",
"description": "The value of the tag."
}
}
}
}
},
"required": [
"availabilityZone"
]
}