@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
@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
@required {ARN: str, TagList: [Tag]}

@endpoint POST /2015-01-01/packages/associate/{PackageID}/{DomainName}
@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
@required {DomainName: str, Account: str}
@returns(200) {AuthorizedPrincipal: AuthorizedPrincipal{PrincipalType: str?, Principal: str?}}

@endpoint POST /2015-01-01/es/domain/{DomainName}/config/cancel
@required {DomainName: str}
@optional {DryRun: bool}
@returns(200) {DryRun: bool?, CancelledChangeIds: [str]?, CancelledChangeProperties: [CancelledChangeProperty]?}

@endpoint POST /2015-01-01/es/serviceSoftwareUpdate/cancel
@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
@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
@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
@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
@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}
@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

@endpoint DELETE /2015-01-01/es/ccs/inboundConnection/{ConnectionId}
@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}
@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}
@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}
@required {VpcEndpointId: str}
@returns(200) {VpcEndpointSummary: VpcEndpointSummary{VpcEndpointId: str?, VpcEndpointOwner: str?, DomainArn: str?, Status: str?}}

@endpoint GET /2015-01-01/es/domain/{DomainName}/autoTunes
@required {DomainName: str}
@optional {MaxResults: int, NextToken: str}
@returns(200) {AutoTunes: [AutoTune]?, NextToken: str?}

@endpoint GET /2015-01-01/es/domain/{DomainName}/progress
@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}
@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
@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
@required {DomainNames: [str]}
@returns(200) {DomainStatusList: [ElasticsearchDomainStatus]}

@endpoint GET /2015-01-01/es/instanceTypeLimits/{ElasticsearchVersion}/{InstanceType}
@required {InstanceType: str, ElasticsearchVersion: str}
@optional {domainName: str}
@returns(200) {LimitsByRole: map<str,Limits>?}

@endpoint POST /2015-01-01/es/ccs/inboundConnection/search
@optional {Filters: [Filter], MaxResults: int, NextToken: str}
@returns(200) {CrossClusterSearchConnections: [InboundCrossClusterSearchConnection]?, NextToken: str?}

@endpoint POST /2015-01-01/es/ccs/outboundConnection/search
@optional {Filters: [Filter], MaxResults: int, NextToken: str}
@returns(200) {CrossClusterSearchConnections: [OutboundCrossClusterSearchConnection]?, NextToken: str?}

@endpoint POST /2015-01-01/packages/describe
@optional {Filters: [DescribePackagesFilter], MaxResults: int, NextToken: str}
@returns(200) {PackageDetailsList: [PackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/es/reservedInstanceOfferings
@optional {offeringId: str, maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, ReservedElasticsearchInstanceOfferings: [ReservedElasticsearchInstanceOffering]?}

@endpoint GET /2015-01-01/es/reservedInstances
@optional {reservationId: str, maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, ReservedElasticsearchInstances: [ReservedElasticsearchInstance]?}

@endpoint POST /2015-01-01/es/vpcEndpoints/describe
@required {VpcEndpointIds: [str]}
@returns(200) {VpcEndpoints: [VpcEndpoint], VpcEndpointErrors: [VpcEndpointError]}

@endpoint POST /2015-01-01/packages/dissociate/{PackageID}/{DomainName}
@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
@optional {domainName: str}
@returns(200) {CompatibleElasticsearchVersions: [CompatibleVersionsMap]?}

@endpoint GET /2015-01-01/packages/{PackageID}/history
@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
@required {DomainName: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {UpgradeHistories: [UpgradeHistory]?, NextToken: str?}

@endpoint GET /2015-01-01/es/upgradeDomain/{DomainName}/status
@required {DomainName: str}
@returns(200) {UpgradeStep: str?, StepStatus: str?, UpgradeName: str?}

@endpoint GET /2015-01-01/domain
@optional {engineType: str}
@returns(200) {DomainNames: [DomainInfo]?}

@endpoint GET /2015-01-01/packages/{PackageID}/domains
@required {PackageID: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {DomainPackageDetailsList: [DomainPackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/es/instanceTypes/{ElasticsearchVersion}
@required {ElasticsearchVersion: str}
@optional {domainName: str, maxResults: int, nextToken: str}
@returns(200) {ElasticsearchInstanceTypes: [str]?, NextToken: str?}

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

@endpoint GET /2015-01-01/domain/{DomainName}/packages
@required {DomainName: str}
@optional {maxResults: int, nextToken: str}
@returns(200) {DomainPackageDetailsList: [DomainPackageDetails]?, NextToken: str?}

@endpoint GET /2015-01-01/tags/
@required {arn: str}
@returns(200) {TagList: [Tag]?}

@endpoint GET /2015-01-01/es/domain/{DomainName}/listVpcEndpointAccess
@required {DomainName: str}
@optional {nextToken: str}
@returns(200) {AuthorizedPrincipalList: [AuthorizedPrincipal], NextToken: str}

@endpoint GET /2015-01-01/es/vpcEndpoints
@optional {nextToken: str}
@returns(200) {VpcEndpointSummaryList: [VpcEndpointSummary], NextToken: str}

@endpoint GET /2015-01-01/es/domain/{DomainName}/vpcEndpoints
@required {DomainName: str}
@optional {nextToken: str}
@returns(200) {VpcEndpointSummaryList: [VpcEndpointSummary], NextToken: str}

@endpoint POST /2015-01-01/es/purchaseReservedInstanceOffering
@required {ReservedElasticsearchInstanceOfferingId: str, ReservationName: str}
@optional {InstanceCount: int}
@returns(200) {ReservedElasticsearchInstanceId: str?, ReservationName: str?}

@endpoint PUT /2015-01-01/es/ccs/inboundConnection/{ConnectionId}/reject
@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
@required {ARN: str, TagKeys: [str]}

@endpoint POST /2015-01-01/es/domain/{DomainName}/revokeVpcEndpointAccess
@required {DomainName: str, Account: str}

@endpoint POST /2015-01-01/es/serviceSoftwareUpdate/start
@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
@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
@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
@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
@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
