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

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