Amazon EC2 · JSON Structure
Amazon Ec2 Instance Structure
Represents an Amazon EC2 virtual server instance with its associated configuration, state, and metadata.
Type: object
Properties: 21
Required: 4
Cloud ComputingComputeIaaSInfrastructureVirtual Machines
Amazon EC2 Instance is a JSON Structure definition published by Amazon EC2, describing 21 properties, of which 4 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
instanceId
imageId
instanceType
keyName
launchTime
instanceState
placement
subnetId
vpcId
privateIpAddress
publicIpAddress
architecture
rootDeviceType
rootDeviceName
blockDeviceMappings
securityGroups
tags
monitoring
platform
ebsOptimized
enaSupport
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://raw.githubusercontent.com/api-evangelist/amazon-ec2/refs/heads/main/json-structure/amazon-ec2-instance-structure.json",
"name": "Amazon EC2 Instance",
"description": "Represents an Amazon EC2 virtual server instance with its associated configuration, state, and metadata.",
"type": "object",
"properties": {
"instanceId": {
"type": "string",
"description": "The unique identifier for the instance",
"pattern": "^i-[a-f0-9]{8,17}$"
},
"imageId": {
"type": "string",
"description": "The ID of the AMI used to launch the instance",
"pattern": "^ami-[a-f0-9]{8,17}$"
},
"instanceType": {
"type": "string",
"description": "The instance type (e.g., t2.micro, m5.large, c5.xlarge)"
},
"keyName": {
"type": "string",
"description": "The name of the key pair used for SSH access"
},
"launchTime": {
"type": "datetime",
"description": "The time the instance was launched"
},
"instanceState": {
"$ref": "#/$defs/InstanceState"
},
"placement": {
"$ref": "#/$defs/Placement"
},
"subnetId": {
"type": "string",
"description": "The ID of the subnet the instance is running in",
"pattern": "^subnet-[a-f0-9]{8,17}$"
},
"vpcId": {
"type": "string",
"description": "The ID of the VPC the instance is running in",
"pattern": "^vpc-[a-f0-9]{8,17}$"
},
"privateIpAddress": {
"type": "string",
"format": "ipv4",
"description": "The private IPv4 address assigned to the instance"
},
"publicIpAddress": {
"type": "string",
"format": "ipv4",
"description": "The public IPv4 address assigned to the instance"
},
"architecture": {
"type": "string",
"description": "The architecture of the instance",
"enum": [
"i386",
"x86_64",
"arm64"
]
},
"rootDeviceType": {
"type": "string",
"description": "The root device type used by the AMI",
"enum": [
"ebs",
"instance-store"
]
},
"rootDeviceName": {
"type": "string",
"description": "The device name of the root device volume"
},
"blockDeviceMappings": {
"type": "array",
"description": "Block device mappings for the instance",
"items": {
"$ref": "#/$defs/BlockDeviceMapping"
}
},
"securityGroups": {
"type": "array",
"description": "The security groups associated with the instance",
"items": {
"$ref": "#/$defs/SecurityGroupIdentifier"
}
},
"tags": {
"type": "array",
"description": "Tags assigned to the instance",
"items": {
"$ref": "#/$defs/Tag"
}
},
"monitoring": {
"type": "object",
"description": "The monitoring state of the instance",
"properties": {
"state": {
"type": "string",
"description": "Indicates whether detailed monitoring is enabled",
"enum": [
"disabled",
"disabling",
"enabled",
"pending"
]
}
}
},
"platform": {
"type": "string",
"description": "The platform of the instance (Windows or empty for Linux)"
},
"ebsOptimized": {
"type": "boolean",
"description": "Indicates whether the instance is optimized for Amazon EBS I/O"
},
"enaSupport": {
"type": "boolean",
"description": "Specifies whether enhanced networking with ENA is enabled"
}
},
"required": [
"instanceId",
"instanceType",
"imageId",
"instanceState"
],
"definitions": {
"InstanceState": {
"type": "object",
"description": "Describes the current state of the instance",
"properties": {
"code": {
"type": "int32",
"description": "The state code (0=pending, 16=running, 32=shutting-down, 48=terminated, 64=stopping, 80=stopped)",
"enum": [
0,
16,
32,
48,
64,
80
]
},
"name": {
"type": "string",
"description": "The current state of the instance",
"enum": [
"pending",
"running",
"shutting-down",
"terminated",
"stopping",
"stopped"
]
}
},
"name": "InstanceState"
},
"Placement": {
"type": "object",
"description": "Describes the placement of an instance",
"properties": {
"availabilityZone": {
"type": "string",
"description": "The Availability Zone of the instance"
},
"groupName": {
"type": "string",
"description": "The name of the placement group"
},
"tenancy": {
"type": "string",
"description": "The tenancy of the instance",
"enum": [
"default",
"dedicated",
"host"
]
}
},
"name": "Placement"
},
"BlockDeviceMapping": {
"type": "object",
"description": "Describes a block device mapping",
"properties": {
"deviceName": {
"type": "string",
"description": "The device name (e.g., /dev/sdh or xvdh)"
},
"ebs": {
"type": "object",
"description": "Parameters used to set up EBS volumes",
"properties": {
"volumeId": {
"type": "string",
"description": "The ID of the EBS volume"
},
"status": {
"type": "string",
"description": "The attachment state",
"enum": [
"attaching",
"attached",
"detaching",
"detached"
]
},
"deleteOnTermination": {
"type": "boolean",
"description": "Whether the volume is deleted on instance termination"
}
}
}
},
"name": "BlockDeviceMapping"
},
"SecurityGroupIdentifier": {
"type": "object",
"description": "Describes a security group",
"properties": {
"groupId": {
"type": "string",
"description": "The ID of the security group",
"pattern": "^sg-[a-f0-9]{8,17}$"
},
"groupName": {
"type": "string",
"description": "The name of the security group"
}
},
"name": "SecurityGroupIdentifier"
},
"Tag": {
"type": "object",
"description": "Describes a resource tag",
"properties": {
"key": {
"type": "string",
"description": "The key of the tag",
"maxLength": 128
},
"value": {
"type": "string",
"description": "The value of the tag",
"maxLength": 256
}
},
"required": [
"key"
],
"name": "Tag"
}
}
}