Amazon OpenSearch Service · JSON Structure
Amazon Opensearch Service Structure
Schema defining the structure of an Amazon OpenSearch Service domain resource, including cluster configuration, storage options, access policies, encryption settings, and VPC configuration.
Type: object
Properties: 20
Required: 1
AnalyticsElasticsearchFull-Text SearchLog AnalyticsOpenSearchSearch
Amazon OpenSearch Service Domain Definition is a JSON Structure definition published by Amazon OpenSearch Service, describing 20 properties, of which 1 is required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.
Properties
DomainId
DomainName
ARN
Created
Deleted
Endpoint
Endpoints
EngineVersion
ClusterConfig
EBSOptions
AccessPolicies
SnapshotOptions
VPCOptions
EncryptionAtRestOptions
NodeToNodeEncryptionOptions
AdvancedOptions
LogPublishingOptions
DomainEndpointOptions
AutoTuneOptions
tags
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$schema": "https://json-structure.org/meta/core/v0/#",
"$id": "https://schemas.apievangelist.com/amazon-opensearch-service/domain-definition",
"name": "Amazon OpenSearch Service Domain Definition",
"description": "Schema defining the structure of an Amazon OpenSearch Service domain resource, including cluster configuration, storage options, access policies, encryption settings, and VPC configuration.",
"type": "object",
"required": [
"DomainName"
],
"properties": {
"DomainId": {
"type": "string",
"description": "The unique identifier for the OpenSearch domain."
},
"DomainName": {
"type": "string",
"description": "The name of the OpenSearch domain.",
"minLength": 3,
"maxLength": 28,
"pattern": "^[a-z][a-z0-9-]+$"
},
"ARN": {
"type": "string",
"description": "The Amazon Resource Name of the domain."
},
"Created": {
"type": "boolean",
"description": "Whether the domain creation is complete."
},
"Deleted": {
"type": "boolean",
"description": "Whether the domain is being deleted."
},
"Endpoint": {
"type": "string",
"description": "The domain endpoint used to submit index, search, and data upload requests."
},
"Endpoints": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Map of VPC endpoints for the domain."
},
"EngineVersion": {
"type": "string",
"description": "The version of OpenSearch or Elasticsearch running on the domain."
},
"ClusterConfig": {
"$ref": "#/$defs/ClusterConfig"
},
"EBSOptions": {
"$ref": "#/$defs/EBSOptions"
},
"AccessPolicies": {
"type": "string",
"description": "IAM access policy as a JSON-formatted string."
},
"SnapshotOptions": {
"type": "object",
"properties": {
"AutomatedSnapshotStartHour": {
"type": "int32",
"minimum": 0,
"maximum": 23,
"description": "The time in UTC format when the service takes a daily automated snapshot."
}
}
},
"VPCOptions": {
"$ref": "#/$defs/VPCOptions"
},
"EncryptionAtRestOptions": {
"type": "object",
"properties": {
"Enabled": {
"type": "boolean",
"description": "Whether encryption at rest is enabled."
},
"KmsKeyId": {
"type": "string",
"description": "The KMS key ID for encryption at rest."
}
}
},
"NodeToNodeEncryptionOptions": {
"type": "object",
"properties": {
"Enabled": {
"type": "boolean",
"description": "Whether node-to-node encryption is enabled."
}
}
},
"AdvancedOptions": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Key-value pairs for advanced configuration options."
},
"LogPublishingOptions": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/LogPublishingOption"
},
"description": "Log publishing options for the domain."
},
"DomainEndpointOptions": {
"type": "object",
"properties": {
"EnforceHTTPS": {
"type": "boolean",
"description": "Whether to require HTTPS for all traffic to the domain."
},
"TLSSecurityPolicy": {
"type": "string",
"enum": [
"Policy-Min-TLS-1-0-2019-07",
"Policy-Min-TLS-1-2-2019-07",
"Policy-Min-TLS-1-2-PFS-2023-10"
],
"description": "The minimum TLS security policy."
},
"CustomEndpointEnabled": {
"type": "boolean"
},
"CustomEndpoint": {
"type": "string"
},
"CustomEndpointCertificateArn": {
"type": "string"
}
}
},
"AutoTuneOptions": {
"type": "object",
"properties": {
"State": {
"type": "string",
"enum": [
"ENABLED",
"DISABLED",
"ENABLE_IN_PROGRESS",
"DISABLE_IN_PROGRESS",
"DISABLED_AND_ROLLBACK_SCHEDULED",
"DISABLED_AND_ROLLBACK_IN_PROGRESS",
"DISABLED_AND_ROLLBACK_COMPLETE",
"DISABLED_AND_ROLLBACK_ERROR",
"ERROR"
]
},
"DesiredState": {
"type": "string",
"enum": [
"ENABLED",
"DISABLED"
]
}
}
},
"tags": {
"type": "array",
"items": {
"$ref": "#/$defs/Tag"
},
"description": "Tags associated with the domain."
}
},
"definitions": {
"ClusterConfig": {
"type": "object",
"description": "Container for the cluster configuration of an OpenSearch domain.",
"properties": {
"InstanceType": {
"type": "string",
"description": "The instance type for data nodes."
},
"InstanceCount": {
"type": "int32",
"minimum": 1,
"description": "The number of data nodes in the cluster."
},
"DedicatedMasterEnabled": {
"type": "boolean",
"description": "Whether dedicated master nodes are enabled."
},
"DedicatedMasterType": {
"type": "string",
"description": "The instance type for dedicated master nodes."
},
"DedicatedMasterCount": {
"type": "int32",
"description": "The number of dedicated master nodes."
},
"ZoneAwarenessEnabled": {
"type": "boolean",
"description": "Whether zone awareness is enabled."
},
"WarmEnabled": {
"type": "boolean",
"description": "Whether UltraWarm storage is enabled."
},
"WarmType": {
"type": "string",
"description": "The instance type for UltraWarm nodes."
},
"WarmCount": {
"type": "int32",
"description": "The number of UltraWarm nodes."
},
"ColdStorageOptions": {
"type": "object",
"properties": {
"Enabled": {
"type": "boolean"
}
}
}
},
"name": "ClusterConfig"
},
"EBSOptions": {
"type": "object",
"description": "Container for EBS-based storage configuration.",
"properties": {
"EBSEnabled": {
"type": "boolean",
"description": "Whether EBS-based storage is enabled."
},
"VolumeType": {
"type": "string",
"enum": [
"standard",
"gp2",
"gp3",
"io1"
],
"description": "The type of EBS volume."
},
"VolumeSize": {
"type": "int32",
"description": "The size of the EBS volume in GiB."
},
"Iops": {
"type": "int32",
"description": "The baseline I/O performance for the EBS volume."
},
"Throughput": {
"type": "int32",
"description": "The throughput for gp3 volumes in MiB/s."
}
},
"name": "EBSOptions"
},
"VPCOptions": {
"type": "object",
"description": "Container for VPC configuration options.",
"properties": {
"SubnetIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of subnet IDs for VPC endpoints."
},
"SecurityGroupIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of security group IDs for VPC endpoints."
}
},
"name": "VPCOptions"
},
"LogPublishingOption": {
"type": "object",
"properties": {
"CloudWatchLogsLogGroupArn": {
"type": "string",
"description": "The ARN of the CloudWatch Logs group."
},
"Enabled": {
"type": "boolean",
"description": "Whether log publishing is enabled."
}
},
"name": "LogPublishingOption"
},
"Tag": {
"type": "object",
"required": [
"Key",
"Value"
],
"properties": {
"Key": {
"type": "string",
"description": "The tag key.",
"minLength": 1,
"maxLength": 128
},
"Value": {
"type": "string",
"description": "The tag value.",
"maxLength": 256
}
},
"name": "Tag"
}
}
}