@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Elasticsearch Service
@version 2015-01-01
@auth AWS SigV4
@endpoints 51
@hint download_for_search
@toc 2015-01-01(51)

@endpoint PUT /2015-01-01/es/ccs/inboundConnection/{ConnectionId}/accept
@desc Allows the destination domain owner to accept an inbound cross-cluster search connection request.
@required {CrossClusterSearchConnectionId: str}
@returns(200) {CrossClusterSearchConnection: InboundCrossClusterSearchConnection?{SourceDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, DestinationDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, CrossClusterSearchConnectionId: str?, ConnectionStatus: InboundCrossClusterSearchConnectionStatus?{StatusCode: str?, Message: str?}}}

@endpoint POST /2015-01-01/tags
@desc Attaches tags to an existing Elasticsearch domain. Tags are a set of case-sensitive key value pairs. An Elasticsearch domain may have up to 10 tags. See  Tagging Amazon Elasticsearch Service Domains for more information.
@required {ARN: str, TagList: [Tag]}

@endpoint POST /2015-01-01/packages/associate/{PackageID}/{DomainName}
@desc Associates a package with an Amazon ES domain.
@required {PackageID: str, DomainName: str}
@returns(200) {DomainPackageDetails: DomainPackageDetails?{PackageID: str?, PackageName: str?, PackageType: str?, LastUpdated: str(timestamp)?, DomainName: str?, DomainPackageStatus: str?, PackageVersion: str?, ReferencePath: str?, ErrorDetails: ErrorDetails?{ErrorType: str?, ErrorMessage: str?}}}

@endpoint POST /2015-01-01/es/domain/{DomainName}/authorizeVpcEndpointAccess
@desc Provides access to an Amazon OpenSearch Service domain through the use of an interface VPC endpoint.
@required {DomainName: str, Account: str}
@returns(200) {AuthorizedPrincipal: AuthorizedPrincipal{PrincipalType: str?, Principal: str?}}

@endpoint POST /2015-01-01/es/domain/{DomainName}/config/cancel
@desc Cancels a pending configuration change on an Amazon OpenSearch Service domain.
@required {DomainName: str}
@optional {DryRun: bool}
@returns(200) {DryRun: bool?, CancelledChangeIds: [str]?, CancelledChangeProperties: [CancelledChangeProperty]?}

@endpoint POST /2015-01-01/es/serviceSoftwareUpdate/cancel
@desc Cancels a scheduled service software update for an Amazon ES domain. You can only perform this operation before the AutomatedUpdateDate and when the UpdateStatus is in the PENDING_UPDATE state.
@required {DomainName: str}
@returns(200) {ServiceSoftwareOptions: ServiceSoftwareOptions?{CurrentVersion: str?, NewVersion: str?, UpdateAvailable: bool?, Cancellable: bool?, UpdateStatus: str?, Description: str?, AutomatedUpdateDate: str(timestamp)?, OptionalDeployment: bool?}}

@endpoint POST /2015-01-01/es/domain
@desc Creates a new Elasticsearch domain. For more information, see Creating Elasticsearch Domains in the Amazon Elasticsearch Service Developer Guide.
@required {DomainName: str}
@optional {ElasticsearchVersion: str, ElasticsearchClusterConfig: ElasticsearchClusterConfig, EBSOptions: EBSOptions, AccessPolicies: str, SnapshotOptions: SnapshotOptions, VPCOptions: VPCOptions, CognitoOptions: CognitoOptions, EncryptionAtRestOptions: EncryptionAtRestOptions, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions, AdvancedOptions: map<str,str>, LogPublishingOptions: map<str,LogPublishingOption>, DomainEndpointOptions: DomainEndpointOptions, AdvancedSecurityOptions: AdvancedSecurityOptionsInput, AutoTuneOptions: AutoTuneOptionsInput, TagList: [Tag]}
@returns(200) {DomainStatus: ElasticsearchDomainStatus?{DomainId: str, DomainName: str, ARN: str, Created: bool?, Deleted: bool?, Endpoint: str?, Endpoints: map<str,str>?, Processing: bool?, UpgradeProcessing: bool?, ElasticsearchVersion: str?, ElasticsearchClusterConfig: ElasticsearchClusterConfig{InstanceType: str?, InstanceCount: int?, DedicatedMasterEnabled: bool?, ZoneAwarenessEnabled: bool?, ZoneAwarenessConfig: ZoneAwarenessConfig?{AvailabilityZoneCount: int?}, DedicatedMasterType: str?, DedicatedMasterCount: int?, WarmEnabled: bool?, WarmType: str?, WarmCount: int?, ColdStorageOptions: ColdStorageOptions?{Enabled: bool}}, EBSOptions: EBSOptions?{EBSEnabled: bool?, VolumeType: str?, VolumeSize: int?, Iops: int?, Throughput: int?}, AccessPolicies: str?, SnapshotOptions: SnapshotOptions?{AutomatedSnapshotStartHour: int?}, VPCOptions: VPCDerivedInfo?{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, CognitoOptions: CognitoOptions?{Enabled: bool?, UserPoolId: str?, IdentityPoolId: str?, RoleArn: str?}, EncryptionAtRestOptions: EncryptionAtRestOptions?{Enabled: bool?, KmsKeyId: str?}, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions?{Enabled: bool?}, AdvancedOptions: map<str,str>?, LogPublishingOptions: map<str,LogPublishingOption>?, ServiceSoftwareOptions: ServiceSoftwareOptions?{CurrentVersion: str?, NewVersion: str?, UpdateAvailable: bool?, Cancellable: bool?, UpdateStatus: str?, Description: str?, AutomatedUpdateDate: str(timestamp)?, OptionalDeployment: bool?}, DomainEndpointOptions: DomainEndpointOptions?{EnforceHTTPS: bool?, TLSSecurityPolicy: str?, CustomEndpointEnabled: bool?, CustomEndpoint: str?, CustomEndpointCertificateArn: str?}, AdvancedSecurityOptions: AdvancedSecurityOptions?{Enabled: bool?, InternalUserDatabaseEnabled: bool?, SAMLOptions: SAMLOptionsOutput?{Enabled: bool?, Idp: SAMLIdp?, SubjectKey: str?, RolesKey: str?, SessionTimeoutMinutes: int?}, AnonymousAuthDisableDate: str(timestamp)?, AnonymousAuthEnabled: bool?}, AutoTuneOptions: AutoTuneOptionsOutput?{State: str?, ErrorMessage: str?}, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}, DomainProcessingStatus: str?, ModifyingProperties: [ModifyingProperties]?}}

@endpoint POST /2015-01-01/es/ccs/outboundConnection
@desc Creates a new cross-cluster search connection from a source domain to a destination domain.
@required {SourceDomainInfo: DomainInformation, DestinationDomainInfo: DomainInformation, ConnectionAlias: str}
@returns(200) {SourceDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, DestinationDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, ConnectionAlias: str?, ConnectionStatus: OutboundCrossClusterSearchConnectionStatus?{StatusCode: str?, Message: str?}, CrossClusterSearchConnectionId: str?}

@endpoint POST /2015-01-01/packages
@desc Create a package for use with Amazon ES domains.
@required {PackageName: str, PackageType: str, PackageSource: PackageSource}
@optional {PackageDescription: str}
@returns(200) {PackageDetails: PackageDetails?{PackageID: str?, PackageName: str?, PackageType: str?, PackageDescription: str?, PackageStatus: str?, CreatedAt: str(timestamp)?, LastUpdatedAt: str(timestamp)?, AvailablePackageVersion: str?, ErrorDetails: ErrorDetails?{ErrorType: str?, ErrorMessage: str?}}}

@endpoint POST /2015-01-01/es/vpcEndpoints
@desc Creates an Amazon OpenSearch Service-managed VPC endpoint.
@required {DomainArn: str, VpcOptions: VPCOptions}
@optional {ClientToken: str}
@returns(200) {VpcEndpoint: VpcEndpoint{VpcEndpointId: str?, VpcEndpointOwner: str?, DomainArn: str?, VpcOptions: VPCDerivedInfo?{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, Status: str?, Endpoint: str?}}

@endpoint DELETE /2015-01-01/es/domain/{DomainName}
@desc Permanently deletes the specified Elasticsearch domain and all of its data. Once a domain is deleted, it cannot be recovered.
@required {DomainName: str}
@returns(200) {DomainStatus: ElasticsearchDomainStatus?{DomainId: str, DomainName: str, ARN: str, Created: bool?, Deleted: bool?, Endpoint: str?, Endpoints: map<str,str>?, Processing: bool?, UpgradeProcessing: bool?, ElasticsearchVersion: str?, ElasticsearchClusterConfig: ElasticsearchClusterConfig{InstanceType: str?, InstanceCount: int?, DedicatedMasterEnabled: bool?, ZoneAwarenessEnabled: bool?, ZoneAwarenessConfig: ZoneAwarenessConfig?{AvailabilityZoneCount: int?}, DedicatedMasterType: str?, DedicatedMasterCount: int?, WarmEnabled: bool?, WarmType: str?, WarmCount: int?, ColdStorageOptions: ColdStorageOptions?{Enabled: bool}}, EBSOptions: EBSOptions?{EBSEnabled: bool?, VolumeType: str?, VolumeSize: int?, Iops: int?, Throughput: int?}, AccessPolicies: str?, SnapshotOptions: SnapshotOptions?{AutomatedSnapshotStartHour: int?}, VPCOptions: VPCDerivedInfo?{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, CognitoOptions: CognitoOptions?{Enabled: bool?, UserPoolId: str?, IdentityPoolId: str?, RoleArn: str?}, EncryptionAtRestOptions: EncryptionAtRestOptions?{Enabled: bool?, KmsKeyId: str?}, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions?{Enabled: bool?}, AdvancedOptions: map<str,str>?, LogPublishingOptions: map<str,LogPublishingOption>?, ServiceSoftwareOptions: ServiceSoftwareOptions?{CurrentVersion: str?, NewVersion: str?, UpdateAvailable: bool?, Cancellable: bool?, UpdateStatus: str?, Description: str?, AutomatedUpdateDate: str(timestamp)?, OptionalDeployment: bool?}, DomainEndpointOptions: DomainEndpointOptions?{EnforceHTTPS: bool?, TLSSecurityPolicy: str?, CustomEndpointEnabled: bool?, CustomEndpoint: str?, CustomEndpointCertificateArn: str?}, AdvancedSecurityOptions: AdvancedSecurityOptions?{Enabled: bool?, InternalUserDatabaseEnabled: bool?, SAMLOptions: SAMLOptionsOutput?{Enabled: bool?, Idp: SAMLIdp?, SubjectKey: str?, RolesKey: str?, SessionTimeoutMinutes: int?}, AnonymousAuthDisableDate: str(timestamp)?, AnonymousAuthEnabled: bool?}, AutoTuneOptions: AutoTuneOptionsOutput?{State: str?, ErrorMessage: str?}, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}, DomainProcessingStatus: str?, ModifyingProperties: [ModifyingProperties]?}}

@endpoint DELETE /2015-01-01/es/role
@desc Deletes the service-linked role that Elasticsearch Service uses to manage and maintain VPC domains. Role deletion will fail if any existing VPC domains use the role. You must delete any such Elasticsearch domains before deleting the role. See Deleting Elasticsearch Service Role in VPC Endpoints for Amazon Elasticsearch Service Domains.

@endpoint DELETE /2015-01-01/es/ccs/inboundConnection/{ConnectionId}
@desc Allows the destination domain owner to delete an existing inbound cross-cluster search connection.
@required {CrossClusterSearchConnectionId: str}
@returns(200) {CrossClusterSearchConnection: InboundCrossClusterSearchConnection?{SourceDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, DestinationDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, CrossClusterSearchConnectionId: str?, ConnectionStatus: InboundCrossClusterSearchConnectionStatus?{StatusCode: str?, Message: str?}}}

@endpoint DELETE /2015-01-01/es/ccs/outboundConnection/{ConnectionId}
@desc Allows the source domain owner to delete an existing outbound cross-cluster search connection.
@required {CrossClusterSearchConnectionId: str}
@returns(200) {CrossClusterSearchConnection: OutboundCrossClusterSearchConnection?{SourceDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, DestinationDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, CrossClusterSearchConnectionId: str?, ConnectionAlias: str?, ConnectionStatus: OutboundCrossClusterSearchConnectionStatus?{StatusCode: str?, Message: str?}}}

@endpoint DELETE /2015-01-01/packages/{PackageID}
@desc Delete the package.
@required {PackageID: str}
@returns(200) {PackageDetails: PackageDetails?{PackageID: str?, PackageName: str?, PackageType: str?, PackageDescription: str?, PackageStatus: str?, CreatedAt: str(timestamp)?, LastUpdatedAt: str(timestamp)?, AvailablePackageVersion: str?, ErrorDetails: ErrorDetails?{ErrorType: str?, ErrorMessage: str?}}}

@endpoint DELETE /2015-01-01/es/vpcEndpoints/{VpcEndpointId}
@desc Deletes an Amazon OpenSearch Service-managed interface VPC endpoint.
@required {VpcEndpointId: str}
@returns(200) {VpcEndpointSummary: VpcEndpointSummary{VpcEndpointId: str?, VpcEndpointOwner: str?, DomainArn: str?, Status: str?}}

@endpoint GET /2015-01-01/es/domain/{DomainName}/autoTunes
@desc Provides scheduled Auto-Tune action details for the Elasticsearch domain, such as Auto-Tune action type, description, severity, and scheduled date.
@required {DomainName: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {AutoTunes: [AutoTune]?, NextToken: str?}

@endpoint GET /2015-01-01/es/domain/{DomainName}/progress
@desc Returns information about the current blue/green deployment happening on a domain, including a change ID, status, and progress stages.
@required {DomainName: str}
@optional {changeid: str}
@returns(200) {ChangeProgressStatus: ChangeProgressStatusDetails?{ChangeId: str?, StartTime: str(timestamp)?, Status: str?, PendingProperties: [str]?, CompletedProperties: [str]?, TotalNumberOfStages: int?, ChangeProgressStages: [ChangeProgressStage]?, ConfigChangeStatus: str?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}}

@endpoint GET /2015-01-01/es/domain/{DomainName}
@desc Returns domain configuration information about the specified Elasticsearch domain, including the domain ID, domain endpoint, and domain ARN.
@required {DomainName: str}
@returns(200) {DomainStatus: ElasticsearchDomainStatus{DomainId: str, DomainName: str, ARN: str, Created: bool?, Deleted: bool?, Endpoint: str?, Endpoints: map<str,str>?, Processing: bool?, UpgradeProcessing: bool?, ElasticsearchVersion: str?, ElasticsearchClusterConfig: ElasticsearchClusterConfig{InstanceType: str?, InstanceCount: int?, DedicatedMasterEnabled: bool?, ZoneAwarenessEnabled: bool?, ZoneAwarenessConfig: ZoneAwarenessConfig?{AvailabilityZoneCount: int?}, DedicatedMasterType: str?, DedicatedMasterCount: int?, WarmEnabled: bool?, WarmType: str?, WarmCount: int?, ColdStorageOptions: ColdStorageOptions?{Enabled: bool}}, EBSOptions: EBSOptions?{EBSEnabled: bool?, VolumeType: str?, VolumeSize: int?, Iops: int?, Throughput: int?}, AccessPolicies: str?, SnapshotOptions: SnapshotOptions?{AutomatedSnapshotStartHour: int?}, VPCOptions: VPCDerivedInfo?{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, CognitoOptions: CognitoOptions?{Enabled: bool?, UserPoolId: str?, IdentityPoolId: str?, RoleArn: str?}, EncryptionAtRestOptions: EncryptionAtRestOptions?{Enabled: bool?, KmsKeyId: str?}, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions?{Enabled: bool?}, AdvancedOptions: map<str,str>?, LogPublishingOptions: map<str,LogPublishingOption>?, ServiceSoftwareOptions: ServiceSoftwareOptions?{CurrentVersion: str?, NewVersion: str?, UpdateAvailable: bool?, Cancellable: bool?, UpdateStatus: str?, Description: str?, AutomatedUpdateDate: str(timestamp)?, OptionalDeployment: bool?}, DomainEndpointOptions: DomainEndpointOptions?{EnforceHTTPS: bool?, TLSSecurityPolicy: str?, CustomEndpointEnabled: bool?, CustomEndpoint: str?, CustomEndpointCertificateArn: str?}, AdvancedSecurityOptions: AdvancedSecurityOptions?{Enabled: bool?, InternalUserDatabaseEnabled: bool?, SAMLOptions: SAMLOptionsOutput?{Enabled: bool?, Idp: SAMLIdp?, SubjectKey: str?, RolesKey: str?, SessionTimeoutMinutes: int?}, AnonymousAuthDisableDate: str(timestamp)?, AnonymousAuthEnabled: bool?}, AutoTuneOptions: AutoTuneOptionsOutput?{State: str?, ErrorMessage: str?}, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}, DomainProcessingStatus: str?, ModifyingProperties: [ModifyingProperties]?}}

@endpoint GET /2015-01-01/es/domain/{DomainName}/config
@desc Provides cluster configuration information about the specified Elasticsearch domain, such as the state, creation date, update version, and update date for cluster options.
@required {DomainName: str}
@returns(200) {DomainConfig: ElasticsearchDomainConfig{ElasticsearchVersion: ElasticsearchVersionStatus?{Options: str, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, ElasticsearchClusterConfig: ElasticsearchClusterConfigStatus?{Options: ElasticsearchClusterConfig{InstanceType: str?, InstanceCount: int?, DedicatedMasterEnabled: bool?, ZoneAwarenessEnabled: bool?, ZoneAwarenessConfig: ZoneAwarenessConfig?, DedicatedMasterType: str?, DedicatedMasterCount: int?, WarmEnabled: bool?, WarmType: str?, WarmCount: int?, ColdStorageOptions: ColdStorageOptions?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, EBSOptions: EBSOptionsStatus?{Options: EBSOptions{EBSEnabled: bool?, VolumeType: str?, VolumeSize: int?, Iops: int?, Throughput: int?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AccessPolicies: AccessPoliciesStatus?{Options: str, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, SnapshotOptions: SnapshotOptionsStatus?{Options: SnapshotOptions{AutomatedSnapshotStartHour: int?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, VPCOptions: VPCDerivedInfoStatus?{Options: VPCDerivedInfo{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, CognitoOptions: CognitoOptionsStatus?{Options: CognitoOptions{Enabled: bool?, UserPoolId: str?, IdentityPoolId: str?, RoleArn: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, EncryptionAtRestOptions: EncryptionAtRestOptionsStatus?{Options: EncryptionAtRestOptions{Enabled: bool?, KmsKeyId: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptionsStatus?{Options: NodeToNodeEncryptionOptions{Enabled: bool?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AdvancedOptions: AdvancedOptionsStatus?{Options: map<str,str>, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, LogPublishingOptions: LogPublishingOptionsStatus?{Options: map<str,LogPublishingOption>?, Status: OptionStatus?{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, DomainEndpointOptions: DomainEndpointOptionsStatus?{Options: DomainEndpointOptions{EnforceHTTPS: bool?, TLSSecurityPolicy: str?, CustomEndpointEnabled: bool?, CustomEndpoint: str?, CustomEndpointCertificateArn: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AdvancedSecurityOptions: AdvancedSecurityOptionsStatus?{Options: AdvancedSecurityOptions{Enabled: bool?, InternalUserDatabaseEnabled: bool?, SAMLOptions: SAMLOptionsOutput?, AnonymousAuthDisableDate: str(timestamp)?, AnonymousAuthEnabled: bool?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AutoTuneOptions: AutoTuneOptionsStatus?{Options: AutoTuneOptions?{DesiredState: str?, RollbackOnDisable: str?, MaintenanceSchedules: [AutoTuneMaintenanceSchedule]?}, Status: AutoTuneStatus?{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, ErrorMessage: str?, PendingDeletion: bool?}}, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}, ModifyingProperties: [ModifyingProperties]?}}

@endpoint POST /2015-01-01/es/domain-info
@desc Returns domain configuration information about the specified Elasticsearch domains, including the domain ID, domain endpoint, and domain ARN.
@required {DomainNames: [str]}
@returns(200) {DomainStatusList: [ElasticsearchDomainStatus]}

@endpoint GET /2015-01-01/es/instanceTypeLimits/{ElasticsearchVersion}/{InstanceType}
@desc Describe Elasticsearch Limits for a given InstanceType and ElasticsearchVersion. When modifying existing Domain, specify the  DomainName  to know what Limits are supported for modifying.
@required {InstanceType: str, ElasticsearchVersion: str}
@optional {domainName: str}
@returns(200) {LimitsByRole: map<str,Limits>?}

@endpoint POST /2015-01-01/es/ccs/inboundConnection/search
@desc Lists all the inbound cross-cluster search connections for a destination domain.
@optional {Filters: [Filter], MaxResults: int, NextToken: str}
@returns(200) {CrossClusterSearchConnections: [InboundCrossClusterSearchConnection]?, NextToken: str?}

@endpoint POST /2015-01-01/es/ccs/outboundConnection/search
@desc Lists all the outbound cross-cluster search connections for a source domain.
@optional {Filters: [Filter], MaxResults: int, NextToken: str}
@returns(200) {CrossClusterSearchConnections: [OutboundCrossClusterSearchConnection]?, NextToken: str?}

@endpoint POST /2015-01-01/packages/describe
@desc Describes all packages available to Amazon ES. Includes options for filtering, limiting the number of results, and pagination.
@optional {Filters: [DescribePackagesFilter], MaxResults: int, NextToken: str}
@returns(200) {PackageDetailsList: [PackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/es/reservedInstanceOfferings
@desc Lists available reserved Elasticsearch instance offerings.
@optional {offeringId: str, maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, ReservedElasticsearchInstanceOfferings: [ReservedElasticsearchInstanceOffering]?}

@endpoint GET /2015-01-01/es/reservedInstances
@desc Returns information about reserved Elasticsearch instances for this account.
@optional {reservationId: str, maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, ReservedElasticsearchInstances: [ReservedElasticsearchInstance]?}

@endpoint POST /2015-01-01/es/vpcEndpoints/describe
@desc Describes one or more Amazon OpenSearch Service-managed VPC endpoints.
@required {VpcEndpointIds: [str]}
@returns(200) {VpcEndpoints: [VpcEndpoint], VpcEndpointErrors: [VpcEndpointError]}

@endpoint POST /2015-01-01/packages/dissociate/{PackageID}/{DomainName}
@desc Dissociates a package from the Amazon ES domain.
@required {PackageID: str, DomainName: str}
@returns(200) {DomainPackageDetails: DomainPackageDetails?{PackageID: str?, PackageName: str?, PackageType: str?, LastUpdated: str(timestamp)?, DomainName: str?, DomainPackageStatus: str?, PackageVersion: str?, ReferencePath: str?, ErrorDetails: ErrorDetails?{ErrorType: str?, ErrorMessage: str?}}}

@endpoint GET /2015-01-01/es/compatibleVersions
@desc Returns a list of upgrade compatible Elastisearch versions. You can optionally pass a  DomainName  to get all upgrade compatible Elasticsearch versions for that specific domain.
@optional {domainName: str}
@returns(200) {CompatibleElasticsearchVersions: [CompatibleVersionsMap]?}

@endpoint GET /2015-01-01/packages/{PackageID}/history
@desc Returns a list of versions of the package, along with their creation time and commit message.
@required {PackageID: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {PackageID: str?, PackageVersionHistoryList: [PackageVersionHistory]?, NextToken: str?}

@endpoint GET /2015-01-01/es/upgradeDomain/{DomainName}/history
@desc Retrieves the complete history of the last 10 upgrades that were performed on the domain.
@required {DomainName: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {UpgradeHistories: [UpgradeHistory]?, NextToken: str?}

@endpoint GET /2015-01-01/es/upgradeDomain/{DomainName}/status
@desc Retrieves the latest status of the last upgrade or upgrade eligibility check that was performed on the domain.
@required {DomainName: str}
@returns(200) {UpgradeStep: str?, StepStatus: str?, UpgradeName: str?}

@endpoint GET /2015-01-01/domain
@desc Returns the name of all Elasticsearch domains owned by the current user's account.
@optional {engineType: str}
@returns(200) {DomainNames: [DomainInfo]?}

@endpoint GET /2015-01-01/packages/{PackageID}/domains
@desc Lists all Amazon ES domains associated with the package.
@required {PackageID: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {DomainPackageDetailsList: [DomainPackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/es/instanceTypes/{ElasticsearchVersion}
@desc List all Elasticsearch instance types that are supported for given ElasticsearchVersion
@required {ElasticsearchVersion: str}
@optional {domainName: str, maxResults: int, nextToken: str}
@returns(200) {ElasticsearchInstanceTypes: [str]?, NextToken: str?}

@endpoint GET /2015-01-01/es/versions
@desc List all supported Elasticsearch versions
@optional {maxResults: int, nextToken: str}
@returns(200) {ElasticsearchVersions: [str]?, NextToken: str?}

@endpoint GET /2015-01-01/domain/{DomainName}/packages
@desc Lists all packages associated with the Amazon ES domain.
@required {DomainName: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {DomainPackageDetailsList: [DomainPackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/tags/
@desc Returns all tags for the given Elasticsearch domain.
@required {arn: str}
@returns(200) {TagList: [Tag]?}

@endpoint GET /2015-01-01/es/domain/{DomainName}/listVpcEndpointAccess
@desc Retrieves information about each principal that is allowed to access a given Amazon OpenSearch Service domain through the use of an interface VPC endpoint.
@required {DomainName: str}
@optional {nextToken: str}
@returns(200) {AuthorizedPrincipalList: [AuthorizedPrincipal], NextToken: str}

@endpoint GET /2015-01-01/es/vpcEndpoints
@desc Retrieves all Amazon OpenSearch Service-managed VPC endpoints in the current account and Region.
@optional {nextToken: str}
@returns(200) {VpcEndpointSummaryList: [VpcEndpointSummary], NextToken: str}

@endpoint GET /2015-01-01/es/domain/{DomainName}/vpcEndpoints
@desc Retrieves all Amazon OpenSearch Service-managed VPC endpoints associated with a particular domain.
@required {DomainName: str}
@optional {nextToken: str}
@returns(200) {VpcEndpointSummaryList: [VpcEndpointSummary], NextToken: str}

@endpoint POST /2015-01-01/es/purchaseReservedInstanceOffering
@desc Allows you to purchase reserved Elasticsearch instances.
@required {ReservedElasticsearchInstanceOfferingId: str, ReservationName: str}
@optional {InstanceCount: int}
@returns(200) {ReservedElasticsearchInstanceId: str?, ReservationName: str?}

@endpoint PUT /2015-01-01/es/ccs/inboundConnection/{ConnectionId}/reject
@desc Allows the destination domain owner to reject an inbound cross-cluster search connection request.
@required {CrossClusterSearchConnectionId: str}
@returns(200) {CrossClusterSearchConnection: InboundCrossClusterSearchConnection?{SourceDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, DestinationDomainInfo: DomainInformation?{OwnerId: str?, DomainName: str, Region: str?}, CrossClusterSearchConnectionId: str?, ConnectionStatus: InboundCrossClusterSearchConnectionStatus?{StatusCode: str?, Message: str?}}}

@endpoint POST /2015-01-01/tags-removal
@desc Removes the specified set of tags from the specified Elasticsearch domain.
@required {ARN: str, TagKeys: [str]}

@endpoint POST /2015-01-01/es/domain/{DomainName}/revokeVpcEndpointAccess
@desc Revokes access to an Amazon OpenSearch Service domain that was provided through an interface VPC endpoint.
@required {DomainName: str, Account: str}

@endpoint POST /2015-01-01/es/serviceSoftwareUpdate/start
@desc Schedules a service software update for an Amazon ES domain.
@required {DomainName: str}
@returns(200) {ServiceSoftwareOptions: ServiceSoftwareOptions?{CurrentVersion: str?, NewVersion: str?, UpdateAvailable: bool?, Cancellable: bool?, UpdateStatus: str?, Description: str?, AutomatedUpdateDate: str(timestamp)?, OptionalDeployment: bool?}}

@endpoint POST /2015-01-01/es/domain/{DomainName}/config
@desc Modifies the cluster configuration of the specified Elasticsearch domain, setting as setting the instance type and the number of instances.
@required {DomainName: str}
@optional {ElasticsearchClusterConfig: ElasticsearchClusterConfig, EBSOptions: EBSOptions, SnapshotOptions: SnapshotOptions, VPCOptions: VPCOptions, CognitoOptions: CognitoOptions, AdvancedOptions: map<str,str>, AccessPolicies: str, LogPublishingOptions: map<str,LogPublishingOption>, DomainEndpointOptions: DomainEndpointOptions, AdvancedSecurityOptions: AdvancedSecurityOptionsInput, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptions, EncryptionAtRestOptions: EncryptionAtRestOptions, AutoTuneOptions: AutoTuneOptions, DryRun: bool}
@returns(200) {DomainConfig: ElasticsearchDomainConfig{ElasticsearchVersion: ElasticsearchVersionStatus?{Options: str, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, ElasticsearchClusterConfig: ElasticsearchClusterConfigStatus?{Options: ElasticsearchClusterConfig{InstanceType: str?, InstanceCount: int?, DedicatedMasterEnabled: bool?, ZoneAwarenessEnabled: bool?, ZoneAwarenessConfig: ZoneAwarenessConfig?, DedicatedMasterType: str?, DedicatedMasterCount: int?, WarmEnabled: bool?, WarmType: str?, WarmCount: int?, ColdStorageOptions: ColdStorageOptions?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, EBSOptions: EBSOptionsStatus?{Options: EBSOptions{EBSEnabled: bool?, VolumeType: str?, VolumeSize: int?, Iops: int?, Throughput: int?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AccessPolicies: AccessPoliciesStatus?{Options: str, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, SnapshotOptions: SnapshotOptionsStatus?{Options: SnapshotOptions{AutomatedSnapshotStartHour: int?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, VPCOptions: VPCDerivedInfoStatus?{Options: VPCDerivedInfo{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, CognitoOptions: CognitoOptionsStatus?{Options: CognitoOptions{Enabled: bool?, UserPoolId: str?, IdentityPoolId: str?, RoleArn: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, EncryptionAtRestOptions: EncryptionAtRestOptionsStatus?{Options: EncryptionAtRestOptions{Enabled: bool?, KmsKeyId: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, NodeToNodeEncryptionOptions: NodeToNodeEncryptionOptionsStatus?{Options: NodeToNodeEncryptionOptions{Enabled: bool?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AdvancedOptions: AdvancedOptionsStatus?{Options: map<str,str>, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, LogPublishingOptions: LogPublishingOptionsStatus?{Options: map<str,LogPublishingOption>?, Status: OptionStatus?{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, DomainEndpointOptions: DomainEndpointOptionsStatus?{Options: DomainEndpointOptions{EnforceHTTPS: bool?, TLSSecurityPolicy: str?, CustomEndpointEnabled: bool?, CustomEndpoint: str?, CustomEndpointCertificateArn: str?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AdvancedSecurityOptions: AdvancedSecurityOptionsStatus?{Options: AdvancedSecurityOptions{Enabled: bool?, InternalUserDatabaseEnabled: bool?, SAMLOptions: SAMLOptionsOutput?, AnonymousAuthDisableDate: str(timestamp)?, AnonymousAuthEnabled: bool?}, Status: OptionStatus{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, PendingDeletion: bool?}}, AutoTuneOptions: AutoTuneOptionsStatus?{Options: AutoTuneOptions?{DesiredState: str?, RollbackOnDisable: str?, MaintenanceSchedules: [AutoTuneMaintenanceSchedule]?}, Status: AutoTuneStatus?{CreationDate: str(timestamp), UpdateDate: str(timestamp), UpdateVersion: int?, State: str, ErrorMessage: str?, PendingDeletion: bool?}}, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}, ModifyingProperties: [ModifyingProperties]?}, DryRunResults: DryRunResults?{DeploymentType: str?, Message: str?}}

@endpoint POST /2015-01-01/packages/update
@desc Updates a package for use with Amazon ES domains.
@required {PackageID: str, PackageSource: PackageSource}
@optional {PackageDescription: str, CommitMessage: str}
@returns(200) {PackageDetails: PackageDetails?{PackageID: str?, PackageName: str?, PackageType: str?, PackageDescription: str?, PackageStatus: str?, CreatedAt: str(timestamp)?, LastUpdatedAt: str(timestamp)?, AvailablePackageVersion: str?, ErrorDetails: ErrorDetails?{ErrorType: str?, ErrorMessage: str?}}}

@endpoint POST /2015-01-01/es/vpcEndpoints/update
@desc Modifies an Amazon OpenSearch Service-managed interface VPC endpoint.
@required {VpcEndpointId: str, VpcOptions: VPCOptions}
@returns(200) {VpcEndpoint: VpcEndpoint{VpcEndpointId: str?, VpcEndpointOwner: str?, DomainArn: str?, VpcOptions: VPCDerivedInfo?{VPCId: str?, SubnetIds: [str]?, AvailabilityZones: [str]?, SecurityGroupIds: [str]?}, Status: str?, Endpoint: str?}}

@endpoint POST /2015-01-01/es/upgradeDomain
@desc Allows you to either upgrade your domain or perform an Upgrade eligibility check to a compatible Elasticsearch version.
@required {DomainName: str, TargetVersion: str}
@optional {PerformCheckOnly: bool}
@returns(200) {DomainName: str?, TargetVersion: str?, PerformCheckOnly: bool?, ChangeProgressDetails: ChangeProgressDetails?{ChangeId: str?, Message: str?, ConfigChangeStatus: str?, StartTime: str(timestamp)?, LastUpdatedTime: str(timestamp)?, InitiatedBy: str?}}

@end
