{ "$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" ] }