@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon API Gateway
@version 2015-07-09
@auth AWS SigV4
@endpoints 120
@hint download_for_search
@toc apikeys(5), restapis(75), domainnames(10), usageplans(11), vpclinks(5), clientcertificates(5), account(2), sdktypes(2), tags(3), apikeys?mode=import(1), restapis?mode=import(1)

@group apikeys
@endpoint POST /apikeys
@desc Create an ApiKey resource.
@optional {name: str, description: str, enabled: bool, generateDistinctId: bool, value: str, stageKeys: [StageKey], customerId: str, tags: map<str,str>}
@returns(200) {id: str?, value: str?, name: str?, customerId: str?, description: str?, enabled: bool?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?, stageKeys: [str]?, tags: map<str,str>?}

@endgroup

@group restapis
@endpoint POST /restapis/{restapi_id}/authorizers
@desc Adds a new Authorizer resource to an existing RestApi resource.
@required {restApiId: str, name: str, type: str}
@optional {providerARNs: [str], authType: str, authorizerUri: str, authorizerCredentials: str, identitySource: str, identityValidationExpression: str, authorizerResultTtlInSeconds: int}
@returns(200) {id: str?, name: str?, type: str?, providerARNs: [str]?, authType: str?, authorizerUri: str?, authorizerCredentials: str?, identitySource: str?, identityValidationExpression: str?, authorizerResultTtlInSeconds: int?}

@endgroup

@group domainnames
@endpoint POST /domainnames/{domain_name}/basepathmappings
@desc Creates a new BasePathMapping resource.
@required {domainName: str, restApiId: str}
@optional {basePath: str, stage: str}
@returns(200) {basePath: str?, restApiId: str?, stage: str?}

@endgroup

@group restapis
@endpoint POST /restapis/{restapi_id}/deployments
@desc Creates a Deployment resource, which makes a specified RestApi callable over the internet.
@required {restApiId: str}
@optional {stageName: str, stageDescription: str, description: str, cacheClusterEnabled: bool, cacheClusterSize: str, variables: map<str,str>, canarySettings: DeploymentCanarySettings, tracingEnabled: bool}
@returns(200) {id: str?, description: str?, createdDate: str(timestamp)?, apiSummary: map<str,map<str,MethodSnapshot>>?}

@endpoint POST /restapis/{restapi_id}/documentation/parts
@desc Creates a documentation part.
@required {restApiId: str, location: DocumentationPartLocation, properties: str}
@returns(200) {id: str?, location: DocumentationPartLocation?{type: str, path: str?, method: str?, statusCode: str?, name: str?}, properties: str?}

@endpoint POST /restapis/{restapi_id}/documentation/versions
@desc Creates a documentation version
@required {restApiId: str, documentationVersion: str}
@optional {stageName: str, description: str}
@returns(200) {version: str?, createdDate: str(timestamp)?, description: str?}

@endgroup

@group domainnames
@endpoint POST /domainnames
@desc Creates a new domain name.
@required {domainName: str}
@optional {certificateName: str, certificateBody: str, certificatePrivateKey: str, certificateChain: str, certificateArn: str, regionalCertificateName: str, regionalCertificateArn: str, endpointConfiguration: EndpointConfiguration, tags: map<str,str>, securityPolicy: str, mutualTlsAuthentication: MutualTlsAuthenticationInput, ownershipVerificationCertificateArn: str}
@returns(200) {domainName: str?, certificateName: str?, certificateArn: str?, certificateUploadDate: str(timestamp)?, regionalDomainName: str?, regionalHostedZoneId: str?, regionalCertificateName: str?, regionalCertificateArn: str?, distributionDomainName: str?, distributionHostedZoneId: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, domainNameStatus: str?, domainNameStatusMessage: str?, securityPolicy: str?, tags: map<str,str>?, mutualTlsAuthentication: MutualTlsAuthentication?{truststoreUri: str?, truststoreVersion: str?, truststoreWarnings: [str]?}, ownershipVerificationCertificateArn: str?}

@endgroup

@group restapis
@endpoint POST /restapis/{restapi_id}/models
@desc Adds a new Model resource to an existing RestApi resource.
@required {restApiId: str, name: str, contentType: str}
@optional {description: str, schema: str}
@returns(200) {id: str?, name: str?, description: str?, schema: str?, contentType: str?}

@endpoint POST /restapis/{restapi_id}/requestvalidators
@desc Creates a RequestValidator of a given RestApi.
@required {restApiId: str}
@optional {name: str, validateRequestBody: bool, validateRequestParameters: bool}
@returns(200) {id: str?, name: str?, validateRequestBody: bool?, validateRequestParameters: bool?}

@endpoint POST /restapis/{restapi_id}/resources/{parent_id}
@desc Creates a Resource resource.
@required {restApiId: str, parentId: str, pathPart: str}
@returns(200) {id: str?, parentId: str?, pathPart: str?, path: str?, resourceMethods: map<str,Method>?}

@endpoint POST /restapis
@desc Creates a new RestApi resource.
@required {name: str}
@optional {description: str, version: str, cloneFrom: str, binaryMediaTypes: [str], minimumCompressionSize: int, apiKeySource: str, endpointConfiguration: EndpointConfiguration, policy: str, tags: map<str,str>, disableExecuteApiEndpoint: bool}
@returns(200) {id: str?, name: str?, description: str?, createdDate: str(timestamp)?, version: str?, warnings: [str]?, binaryMediaTypes: [str]?, minimumCompressionSize: int?, apiKeySource: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, policy: str?, tags: map<str,str>?, disableExecuteApiEndpoint: bool?, rootResourceId: str?}

@endpoint POST /restapis/{restapi_id}/stages
@desc Creates a new Stage resource that references a pre-existing Deployment for the API.
@required {restApiId: str, stageName: str, deploymentId: str}
@optional {description: str, cacheClusterEnabled: bool, cacheClusterSize: str, variables: map<str,str>, documentationVersion: str, canarySettings: CanarySettings, tracingEnabled: bool, tags: map<str,str>}
@returns(200) {deploymentId: str?, clientCertificateId: str?, stageName: str?, description: str?, cacheClusterEnabled: bool?, cacheClusterSize: str?, cacheClusterStatus: str?, methodSettings: map<str,MethodSetting>?, variables: map<str,str>?, documentationVersion: str?, accessLogSettings: AccessLogSettings?{format: str?, destinationArn: str?}, canarySettings: CanarySettings?{percentTraffic: num(f64)?, deploymentId: str?, stageVariableOverrides: map<str,str>?, useStageCache: bool?}, tracingEnabled: bool?, webAclArn: str?, tags: map<str,str>?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?}

@endgroup

@group usageplans
@endpoint POST /usageplans
@desc Creates a usage plan with the throttle and quota limits, as well as the associated API stages, specified in the payload.
@required {name: str}
@optional {description: str, apiStages: [ApiStage], throttle: ThrottleSettings, quota: QuotaSettings, tags: map<str,str>}
@returns(200) {id: str?, name: str?, description: str?, apiStages: [ApiStage]?, throttle: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, quota: QuotaSettings?{limit: int?, offset: int?, period: str?}, productCode: str?, tags: map<str,str>?}

@endpoint POST /usageplans/{usageplanId}/keys
@desc Creates a usage plan key for adding an existing API key to a usage plan.
@required {usagePlanId: str, keyId: str, keyType: str}
@returns(200) {id: str?, type: str?, value: str?, name: str?}

@endgroup

@group vpclinks
@endpoint POST /vpclinks
@desc Creates a VPC link, under the caller's account in a selected region, in an asynchronous operation that typically takes 2-4 minutes to complete and become operational. The caller must have permissions to create and update VPC Endpoint services.
@required {name: str, targetArns: [str]}
@optional {description: str, tags: map<str,str>}
@returns(200) {id: str?, name: str?, description: str?, targetArns: [str]?, status: str?, statusMessage: str?, tags: map<str,str>?}

@endgroup

@group apikeys
@endpoint DELETE /apikeys/{api_Key}
@desc Deletes the ApiKey resource.
@required {apiKey: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/authorizers/{authorizer_id}
@desc Deletes an existing Authorizer resource.
@required {restApiId: str, authorizerId: str}

@endgroup

@group domainnames
@endpoint DELETE /domainnames/{domain_name}/basepathmappings/{base_path}
@desc Deletes the BasePathMapping resource.
@required {domainName: str, basePath: str}

@endgroup

@group clientcertificates
@endpoint DELETE /clientcertificates/{clientcertificate_id}
@desc Deletes the ClientCertificate resource.
@required {clientCertificateId: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/deployments/{deployment_id}
@desc Deletes a Deployment resource. Deleting a deployment will only succeed if there are no Stage resources associated with it.
@required {restApiId: str, deploymentId: str}

@endpoint DELETE /restapis/{restapi_id}/documentation/parts/{part_id}
@desc Deletes a documentation part
@required {restApiId: str, documentationPartId: str}

@endpoint DELETE /restapis/{restapi_id}/documentation/versions/{doc_version}
@desc Deletes a documentation version.
@required {restApiId: str, documentationVersion: str}

@endgroup

@group domainnames
@endpoint DELETE /domainnames/{domain_name}
@desc Deletes the DomainName resource.
@required {domainName: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/gatewayresponses/{response_type}
@desc Clears any customization of a GatewayResponse of a specified response type on the given RestApi and resets it with the default settings.
@required {restApiId: str, responseType: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration
@desc Represents a delete integration.
@required {restApiId: str, resourceId: str, httpMethod: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}
@desc Represents a delete integration response.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@desc Deletes an existing Method resource.
@required {restApiId: str, resourceId: str, httpMethod: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}
@desc Deletes an existing MethodResponse resource.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}

@endpoint DELETE /restapis/{restapi_id}/models/{model_name}
@desc Deletes a model.
@required {restApiId: str, modelName: str}

@endpoint DELETE /restapis/{restapi_id}/requestvalidators/{requestvalidator_id}
@desc Deletes a RequestValidator of a given RestApi.
@required {restApiId: str, requestValidatorId: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}
@desc Deletes a Resource resource.
@required {restApiId: str, resourceId: str}

@endpoint DELETE /restapis/{restapi_id}
@desc Deletes the specified API.
@required {restApiId: str}

@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}
@desc Deletes a Stage resource.
@required {restApiId: str, stageName: str}

@endgroup

@group usageplans
@endpoint DELETE /usageplans/{usageplanId}
@desc Deletes a usage plan of a given plan Id.
@required {usagePlanId: str}

@endpoint DELETE /usageplans/{usageplanId}/keys/{keyId}
@desc Deletes a usage plan key and remove the underlying API key from the associated usage plan.
@required {usagePlanId: str, keyId: str}

@endgroup

@group vpclinks
@endpoint DELETE /vpclinks/{vpclink_id}
@desc Deletes an existing VpcLink of a specified identifier.
@required {vpcLinkId: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}/cache/authorizers
@desc Flushes all authorizer cache entries on a stage.
@required {restApiId: str, stageName: str}

@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}/cache/data
@desc Flushes a stage's cache.
@required {restApiId: str, stageName: str}

@endgroup

@group clientcertificates
@endpoint POST /clientcertificates
@desc Generates a ClientCertificate resource.
@optional {description: str, tags: map<str,str>}
@returns(200) {clientCertificateId: str?, description: str?, pemEncodedCertificate: str?, createdDate: str(timestamp)?, expirationDate: str(timestamp)?, tags: map<str,str>?}

@endgroup

@group account
@endpoint GET /account
@desc Gets information about the current Account resource.
@returns(200) {cloudwatchRoleArn: str?, throttleSettings: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, features: [str]?, apiKeyVersion: str?}

@endgroup

@group apikeys
@endpoint GET /apikeys/{api_Key}
@desc Gets information about the current ApiKey resource.
@required {apiKey: str}
@optional {includeValue: bool}
@returns(200) {id: str?, value: str?, name: str?, customerId: str?, description: str?, enabled: bool?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?, stageKeys: [str]?, tags: map<str,str>?}

@endpoint GET /apikeys
@desc Gets information about the current ApiKeys resource.
@optional {position: str, limit: int, name: str, customerId: str, includeValues: bool}
@returns(200) {warnings: [str]?, position: str?, items: [ApiKey]?}

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/authorizers/{authorizer_id}
@desc Describe an existing Authorizer resource.
@required {restApiId: str, authorizerId: str}
@returns(200) {id: str?, name: str?, type: str?, providerARNs: [str]?, authType: str?, authorizerUri: str?, authorizerCredentials: str?, identitySource: str?, identityValidationExpression: str?, authorizerResultTtlInSeconds: int?}

@endpoint GET /restapis/{restapi_id}/authorizers
@desc Describe an existing Authorizers resource.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [Authorizer]?}

@endgroup

@group domainnames
@endpoint GET /domainnames/{domain_name}/basepathmappings/{base_path}
@desc Describe a BasePathMapping resource.
@required {domainName: str, basePath: str}
@returns(200) {basePath: str?, restApiId: str?, stage: str?}

@endpoint GET /domainnames/{domain_name}/basepathmappings
@desc Represents a collection of BasePathMapping resources.
@required {domainName: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [BasePathMapping]?}

@endgroup

@group clientcertificates
@endpoint GET /clientcertificates/{clientcertificate_id}
@desc Gets information about the current ClientCertificate resource.
@required {clientCertificateId: str}
@returns(200) {clientCertificateId: str?, description: str?, pemEncodedCertificate: str?, createdDate: str(timestamp)?, expirationDate: str(timestamp)?, tags: map<str,str>?}

@endpoint GET /clientcertificates
@desc Gets a collection of ClientCertificate resources.
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [ClientCertificate]?}

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/deployments/{deployment_id}
@desc Gets information about a Deployment resource.
@required {restApiId: str, deploymentId: str}
@optional {embed: [str]}
@returns(200) {id: str?, description: str?, createdDate: str(timestamp)?, apiSummary: map<str,map<str,MethodSnapshot>>?}

@endpoint GET /restapis/{restapi_id}/deployments
@desc Gets information about a Deployments collection.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [Deployment]?}

@endpoint GET /restapis/{restapi_id}/documentation/parts/{part_id}
@desc Gets a documentation part.
@required {restApiId: str, documentationPartId: str}
@returns(200) {id: str?, location: DocumentationPartLocation?{type: str, path: str?, method: str?, statusCode: str?, name: str?}, properties: str?}

@endpoint GET /restapis/{restapi_id}/documentation/parts
@desc Gets documentation parts.
@required {restApiId: str}
@optional {type: str, name: str, path: str, position: str, limit: int, locationStatus: str}
@returns(200) {position: str?, items: [DocumentationPart]?}

@endpoint GET /restapis/{restapi_id}/documentation/versions/{doc_version}
@desc Gets a documentation version.
@required {restApiId: str, documentationVersion: str}
@returns(200) {version: str?, createdDate: str(timestamp)?, description: str?}

@endpoint GET /restapis/{restapi_id}/documentation/versions
@desc Gets documentation versions.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [DocumentationVersion]?}

@endgroup

@group domainnames
@endpoint GET /domainnames/{domain_name}
@desc Represents a domain name that is contained in a simpler, more intuitive URL that can be called.
@required {domainName: str}
@returns(200) {domainName: str?, certificateName: str?, certificateArn: str?, certificateUploadDate: str(timestamp)?, regionalDomainName: str?, regionalHostedZoneId: str?, regionalCertificateName: str?, regionalCertificateArn: str?, distributionDomainName: str?, distributionHostedZoneId: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, domainNameStatus: str?, domainNameStatusMessage: str?, securityPolicy: str?, tags: map<str,str>?, mutualTlsAuthentication: MutualTlsAuthentication?{truststoreUri: str?, truststoreVersion: str?, truststoreWarnings: [str]?}, ownershipVerificationCertificateArn: str?}

@endpoint GET /domainnames
@desc Represents a collection of DomainName resources.
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [DomainName]?}

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/stages/{stage_name}/exports/{export_type}
@desc Exports a deployed version of a RestApi in a specified format.
@required {restApiId: str, stageName: str, exportType: str}
@optional {parameters: map<str,str>, Accept: str}
@returns(200) {contentType: str?, contentDisposition: str?, body: bytes?}

@endpoint GET /restapis/{restapi_id}/gatewayresponses/{response_type}
@desc Gets a GatewayResponse of a specified response type on the given RestApi.
@required {restApiId: str, responseType: str}
@returns(200) {responseType: str?, statusCode: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, defaultResponse: bool?}

@endpoint GET /restapis/{restapi_id}/gatewayresponses
@desc Gets the GatewayResponses collection on the given RestApi. If an API developer has not added any definitions for gateway responses, the result will be the API Gateway-generated default GatewayResponses collection for the supported response types.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [GatewayResponse]?}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration
@desc Get the integration settings.
@required {restApiId: str, resourceId: str, httpMethod: str}
@returns(200) {type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}
@desc Represents a get integration response.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@returns(200) {statusCode: str?, selectionPattern: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, contentHandling: str?}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@desc Describe an existing Method resource.
@required {restApiId: str, resourceId: str, httpMethod: str}
@returns(200) {httpMethod: str?, authorizationType: str?, authorizerId: str?, apiKeyRequired: bool?, requestValidatorId: str?, operationName: str?, requestParameters: map<str,bool>?, requestModels: map<str,str>?, methodResponses: map<str,MethodResponse>?, methodIntegration: Integration?{type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}, authorizationScopes: [str]?}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}
@desc Describes a MethodResponse resource.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@returns(200) {statusCode: str?, responseParameters: map<str,bool>?, responseModels: map<str,str>?}

@endpoint GET /restapis/{restapi_id}/models/{model_name}
@desc Describes an existing model defined for a RestApi resource.
@required {restApiId: str, modelName: str}
@optional {flatten: bool}
@returns(200) {id: str?, name: str?, description: str?, schema: str?, contentType: str?}

@endpoint GET /restapis/{restapi_id}/models/{model_name}/default_template
@desc Generates a sample mapping template that can be used to transform a payload into the structure of a model.
@required {restApiId: str, modelName: str}
@returns(200) {value: str?}

@endpoint GET /restapis/{restapi_id}/models
@desc Describes existing Models defined for a RestApi resource.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [Model]?}

@endpoint GET /restapis/{restapi_id}/requestvalidators/{requestvalidator_id}
@desc Gets a RequestValidator of a given RestApi.
@required {restApiId: str, requestValidatorId: str}
@returns(200) {id: str?, name: str?, validateRequestBody: bool?, validateRequestParameters: bool?}

@endpoint GET /restapis/{restapi_id}/requestvalidators
@desc Gets the RequestValidators collection of a given RestApi.
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [RequestValidator]?}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}
@desc Lists information about a resource.
@required {restApiId: str, resourceId: str}
@optional {embed: [str]}
@returns(200) {id: str?, parentId: str?, pathPart: str?, path: str?, resourceMethods: map<str,Method>?}

@endpoint GET /restapis/{restapi_id}/resources
@desc Lists information about a collection of Resource resources.
@required {restApiId: str}
@optional {position: str, limit: int, embed: [str]}
@returns(200) {position: str?, items: [Resource]?}

@endpoint GET /restapis/{restapi_id}
@desc Lists the RestApi resource in the collection.
@required {restApiId: str}
@returns(200) {id: str?, name: str?, description: str?, createdDate: str(timestamp)?, version: str?, warnings: [str]?, binaryMediaTypes: [str]?, minimumCompressionSize: int?, apiKeySource: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, policy: str?, tags: map<str,str>?, disableExecuteApiEndpoint: bool?, rootResourceId: str?}

@endpoint GET /restapis
@desc Lists the RestApis resources for your collection.
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [RestApi]?}

@endpoint GET /restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}
@desc Generates a client SDK for a RestApi and Stage.
@required {restApiId: str, stageName: str, sdkType: str}
@optional {parameters: map<str,str>}
@returns(200) {contentType: str?, contentDisposition: str?, body: bytes?}

@endgroup

@group sdktypes
@endpoint GET /sdktypes/{sdktype_id}
@desc Gets an SDK type.
@required {id: str}
@returns(200) {id: str?, friendlyName: str?, description: str?, configurationProperties: [SdkConfigurationProperty]?}

@endpoint GET /sdktypes
@desc Gets SDK types
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [SdkType]?}

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/stages/{stage_name}
@desc Gets information about a Stage resource.
@required {restApiId: str, stageName: str}
@returns(200) {deploymentId: str?, clientCertificateId: str?, stageName: str?, description: str?, cacheClusterEnabled: bool?, cacheClusterSize: str?, cacheClusterStatus: str?, methodSettings: map<str,MethodSetting>?, variables: map<str,str>?, documentationVersion: str?, accessLogSettings: AccessLogSettings?{format: str?, destinationArn: str?}, canarySettings: CanarySettings?{percentTraffic: num(f64)?, deploymentId: str?, stageVariableOverrides: map<str,str>?, useStageCache: bool?}, tracingEnabled: bool?, webAclArn: str?, tags: map<str,str>?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?}

@endpoint GET /restapis/{restapi_id}/stages
@desc Gets information about one or more Stage resources.
@required {restApiId: str}
@optional {deploymentId: str}
@returns(200) {item: [Stage]?}

@endgroup

@group tags
@endpoint GET /tags/{resource_arn}
@desc Gets the Tags collection for a given resource.
@required {resourceArn: str}
@optional {position: str, limit: int}
@returns(200) {tags: map<str,str>?}

@endgroup

@group usageplans
@endpoint GET /usageplans/{usageplanId}/usage
@desc Gets the usage data of a usage plan in a specified time interval.
@required {usagePlanId: str, startDate: str, endDate: str}
@optional {keyId: str, position: str, limit: int}
@returns(200) {usagePlanId: str?, startDate: str?, endDate: str?, position: str?, items: map<str,[[int(i64)]]>?}

@endpoint GET /usageplans/{usageplanId}
@desc Gets a usage plan of a given plan identifier.
@required {usagePlanId: str}
@returns(200) {id: str?, name: str?, description: str?, apiStages: [ApiStage]?, throttle: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, quota: QuotaSettings?{limit: int?, offset: int?, period: str?}, productCode: str?, tags: map<str,str>?}

@endpoint GET /usageplans/{usageplanId}/keys/{keyId}
@desc Gets a usage plan key of a given key identifier.
@required {usagePlanId: str, keyId: str}
@returns(200) {id: str?, type: str?, value: str?, name: str?}

@endpoint GET /usageplans/{usageplanId}/keys
@desc Gets all the usage plan keys representing the API keys added to a specified usage plan.
@required {usagePlanId: str}
@optional {position: str, limit: int, name: str}
@returns(200) {position: str?, items: [UsagePlanKey]?}

@endpoint GET /usageplans
@desc Gets all the usage plans of the caller's account.
@optional {position: str, keyId: str, limit: int}
@returns(200) {position: str?, items: [UsagePlan]?}

@endgroup

@group vpclinks
@endpoint GET /vpclinks/{vpclink_id}
@desc Gets a specified VPC link under the caller's account in a region.
@required {vpcLinkId: str}
@returns(200) {id: str?, name: str?, description: str?, targetArns: [str]?, status: str?, statusMessage: str?, tags: map<str,str>?}

@endpoint GET /vpclinks
@desc Gets the VpcLinks collection under the caller's account in a selected region.
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [VpcLink]?}

@endgroup

@group apikeys?mode=import
@endpoint POST /apikeys?mode=import
@desc Import API keys from an external source, such as a CSV-formatted file.
@required {format: str, body: bytes}
@optional {failonwarnings: bool}
@returns(200) {ids: [str]?, warnings: [str]?}

@endgroup

@group restapis
@endpoint PUT /restapis/{restapi_id}/documentation/parts
@desc Imports documentation parts
@required {restApiId: str, body: bytes}
@optional {mode: str, failonwarnings: bool}
@returns(200) {ids: [str]?, warnings: [str]?}

@endgroup

@group restapis?mode=import
@endpoint POST /restapis?mode=import
@desc A feature of the API Gateway control service for creating a new API from an external API definition file.
@required {body: bytes}
@optional {failonwarnings: bool, parameters: map<str,str>}
@returns(200) {id: str?, name: str?, description: str?, createdDate: str(timestamp)?, version: str?, warnings: [str]?, binaryMediaTypes: [str]?, minimumCompressionSize: int?, apiKeySource: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, policy: str?, tags: map<str,str>?, disableExecuteApiEndpoint: bool?, rootResourceId: str?}

@endgroup

@group restapis
@endpoint PUT /restapis/{restapi_id}/gatewayresponses/{response_type}
@desc Creates a customization of a GatewayResponse of a specified response type and status code on the given RestApi.
@required {restApiId: str, responseType: str}
@optional {statusCode: str, responseParameters: map<str,str>, responseTemplates: map<str,str>}
@returns(200) {responseType: str?, statusCode: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, defaultResponse: bool?}

@endpoint PUT /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration
@desc Sets up a method's integration.
@required {restApiId: str, resourceId: str, httpMethod: str, type: str}
@optional {integrationHttpMethod: str, uri: str, connectionType: str, connectionId: str, credentials: str, requestParameters: map<str,str>, requestTemplates: map<str,str>, passthroughBehavior: str, cacheNamespace: str, cacheKeyParameters: [str], contentHandling: str, timeoutInMillis: int, tlsConfig: TlsConfig}
@returns(200) {type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}

@endpoint PUT /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}
@desc Represents a put integration.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@optional {selectionPattern: str, responseParameters: map<str,str>, responseTemplates: map<str,str>, contentHandling: str}
@returns(200) {statusCode: str?, selectionPattern: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, contentHandling: str?}

@endpoint PUT /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@desc Add a method to an existing Resource resource.
@required {restApiId: str, resourceId: str, httpMethod: str, authorizationType: str}
@optional {authorizerId: str, apiKeyRequired: bool, operationName: str, requestParameters: map<str,bool>, requestModels: map<str,str>, requestValidatorId: str, authorizationScopes: [str]}
@returns(200) {httpMethod: str?, authorizationType: str?, authorizerId: str?, apiKeyRequired: bool?, requestValidatorId: str?, operationName: str?, requestParameters: map<str,bool>?, requestModels: map<str,str>?, methodResponses: map<str,MethodResponse>?, methodIntegration: Integration?{type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}, authorizationScopes: [str]?}

@endpoint PUT /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}
@desc Adds a MethodResponse to an existing Method resource.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@optional {responseParameters: map<str,bool>, responseModels: map<str,str>}
@returns(200) {statusCode: str?, responseParameters: map<str,bool>?, responseModels: map<str,str>?}

@endpoint PUT /restapis/{restapi_id}
@desc A feature of the API Gateway control service for updating an existing API with an input of external API definitions. The update can take the form of merging the supplied definition into the existing API or overwriting the existing API.
@required {restApiId: str, body: bytes}
@optional {mode: str, failonwarnings: bool, parameters: map<str,str>}
@returns(200) {id: str?, name: str?, description: str?, createdDate: str(timestamp)?, version: str?, warnings: [str]?, binaryMediaTypes: [str]?, minimumCompressionSize: int?, apiKeySource: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, policy: str?, tags: map<str,str>?, disableExecuteApiEndpoint: bool?, rootResourceId: str?}

@endgroup

@group tags
@endpoint PUT /tags/{resource_arn}
@desc Adds or updates a tag on a given resource.
@required {resourceArn: str, tags: map<str,str>}

@endgroup

@group restapis
@endpoint POST /restapis/{restapi_id}/authorizers/{authorizer_id}
@desc Simulate the execution of an Authorizer in your RestApi with headers, parameters, and an incoming request body.
@required {restApiId: str, authorizerId: str}
@optional {headers: map<str,str>, multiValueHeaders: map<str,[str]>, pathWithQueryString: str, body: str, stageVariables: map<str,str>, additionalContext: map<str,str>}
@returns(200) {clientStatus: int?, log: str?, latency: int(i64)?, principalId: str?, policy: str?, authorization: map<str,[str]>?, claims: map<str,str>?}

@endpoint POST /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@desc Simulate the invocation of a Method in your RestApi with headers, parameters, and an incoming request body.
@required {restApiId: str, resourceId: str, httpMethod: str}
@optional {pathWithQueryString: str, body: str, headers: map<str,str>, multiValueHeaders: map<str,[str]>, clientCertificateId: str, stageVariables: map<str,str>}
@returns(200) {status: int?, body: str?, headers: map<str,str>?, multiValueHeaders: map<str,[str]>?, log: str?, latency: int(i64)?}

@endgroup

@group tags
@endpoint DELETE /tags/{resource_arn}
@desc Removes a tag from a given resource.
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group account
@endpoint PATCH /account
@desc Changes information about the current Account resource.
@optional {patchOperations: [PatchOperation]}
@returns(200) {cloudwatchRoleArn: str?, throttleSettings: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, features: [str]?, apiKeyVersion: str?}

@endgroup

@group apikeys
@endpoint PATCH /apikeys/{api_Key}
@desc Changes information about an ApiKey resource.
@required {apiKey: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, value: str?, name: str?, customerId: str?, description: str?, enabled: bool?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?, stageKeys: [str]?, tags: map<str,str>?}

@endgroup

@group restapis
@endpoint PATCH /restapis/{restapi_id}/authorizers/{authorizer_id}
@desc Updates an existing Authorizer resource.
@required {restApiId: str, authorizerId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, type: str?, providerARNs: [str]?, authType: str?, authorizerUri: str?, authorizerCredentials: str?, identitySource: str?, identityValidationExpression: str?, authorizerResultTtlInSeconds: int?}

@endgroup

@group domainnames
@endpoint PATCH /domainnames/{domain_name}/basepathmappings/{base_path}
@desc Changes information about the BasePathMapping resource.
@required {domainName: str, basePath: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {basePath: str?, restApiId: str?, stage: str?}

@endgroup

@group clientcertificates
@endpoint PATCH /clientcertificates/{clientcertificate_id}
@desc Changes information about an ClientCertificate resource.
@required {clientCertificateId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {clientCertificateId: str?, description: str?, pemEncodedCertificate: str?, createdDate: str(timestamp)?, expirationDate: str(timestamp)?, tags: map<str,str>?}

@endgroup

@group restapis
@endpoint PATCH /restapis/{restapi_id}/deployments/{deployment_id}
@desc Changes information about a Deployment resource.
@required {restApiId: str, deploymentId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, description: str?, createdDate: str(timestamp)?, apiSummary: map<str,map<str,MethodSnapshot>>?}

@endpoint PATCH /restapis/{restapi_id}/documentation/parts/{part_id}
@desc Updates a documentation part.
@required {restApiId: str, documentationPartId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, location: DocumentationPartLocation?{type: str, path: str?, method: str?, statusCode: str?, name: str?}, properties: str?}

@endpoint PATCH /restapis/{restapi_id}/documentation/versions/{doc_version}
@desc Updates a documentation version.
@required {restApiId: str, documentationVersion: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {version: str?, createdDate: str(timestamp)?, description: str?}

@endgroup

@group domainnames
@endpoint PATCH /domainnames/{domain_name}
@desc Changes information about the DomainName resource.
@required {domainName: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {domainName: str?, certificateName: str?, certificateArn: str?, certificateUploadDate: str(timestamp)?, regionalDomainName: str?, regionalHostedZoneId: str?, regionalCertificateName: str?, regionalCertificateArn: str?, distributionDomainName: str?, distributionHostedZoneId: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, domainNameStatus: str?, domainNameStatusMessage: str?, securityPolicy: str?, tags: map<str,str>?, mutualTlsAuthentication: MutualTlsAuthentication?{truststoreUri: str?, truststoreVersion: str?, truststoreWarnings: [str]?}, ownershipVerificationCertificateArn: str?}

@endgroup

@group restapis
@endpoint PATCH /restapis/{restapi_id}/gatewayresponses/{response_type}
@desc Updates a GatewayResponse of a specified response type on the given RestApi.
@required {restApiId: str, responseType: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {responseType: str?, statusCode: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, defaultResponse: bool?}

@endpoint PATCH /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration
@desc Represents an update integration.
@required {restApiId: str, resourceId: str, httpMethod: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}

@endpoint PATCH /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}
@desc Represents an update integration response.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {statusCode: str?, selectionPattern: str?, responseParameters: map<str,str>?, responseTemplates: map<str,str>?, contentHandling: str?}

@endpoint PATCH /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@desc Updates an existing Method resource.
@required {restApiId: str, resourceId: str, httpMethod: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {httpMethod: str?, authorizationType: str?, authorizerId: str?, apiKeyRequired: bool?, requestValidatorId: str?, operationName: str?, requestParameters: map<str,bool>?, requestModels: map<str,str>?, methodResponses: map<str,MethodResponse>?, methodIntegration: Integration?{type: str?, httpMethod: str?, uri: str?, connectionType: str?, connectionId: str?, credentials: str?, requestParameters: map<str,str>?, requestTemplates: map<str,str>?, passthroughBehavior: str?, contentHandling: str?, timeoutInMillis: int?, cacheNamespace: str?, cacheKeyParameters: [str]?, integrationResponses: map<str,IntegrationResponse>?, tlsConfig: TlsConfig?{insecureSkipVerification: bool?}}, authorizationScopes: [str]?}

@endpoint PATCH /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}
@desc Updates an existing MethodResponse resource.
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {statusCode: str?, responseParameters: map<str,bool>?, responseModels: map<str,str>?}

@endpoint PATCH /restapis/{restapi_id}/models/{model_name}
@desc Changes information about a model. The maximum size of the model is 400 KB.
@required {restApiId: str, modelName: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, description: str?, schema: str?, contentType: str?}

@endpoint PATCH /restapis/{restapi_id}/requestvalidators/{requestvalidator_id}
@desc Updates a RequestValidator of a given RestApi.
@required {restApiId: str, requestValidatorId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, validateRequestBody: bool?, validateRequestParameters: bool?}

@endpoint PATCH /restapis/{restapi_id}/resources/{resource_id}
@desc Changes information about a Resource resource.
@required {restApiId: str, resourceId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, parentId: str?, pathPart: str?, path: str?, resourceMethods: map<str,Method>?}

@endpoint PATCH /restapis/{restapi_id}
@desc Changes information about the specified API.
@required {restApiId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, description: str?, createdDate: str(timestamp)?, version: str?, warnings: [str]?, binaryMediaTypes: [str]?, minimumCompressionSize: int?, apiKeySource: str?, endpointConfiguration: EndpointConfiguration?{types: [str]?, vpcEndpointIds: [str]?}, policy: str?, tags: map<str,str>?, disableExecuteApiEndpoint: bool?, rootResourceId: str?}

@endpoint PATCH /restapis/{restapi_id}/stages/{stage_name}
@desc Changes information about a Stage resource.
@required {restApiId: str, stageName: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {deploymentId: str?, clientCertificateId: str?, stageName: str?, description: str?, cacheClusterEnabled: bool?, cacheClusterSize: str?, cacheClusterStatus: str?, methodSettings: map<str,MethodSetting>?, variables: map<str,str>?, documentationVersion: str?, accessLogSettings: AccessLogSettings?{format: str?, destinationArn: str?}, canarySettings: CanarySettings?{percentTraffic: num(f64)?, deploymentId: str?, stageVariableOverrides: map<str,str>?, useStageCache: bool?}, tracingEnabled: bool?, webAclArn: str?, tags: map<str,str>?, createdDate: str(timestamp)?, lastUpdatedDate: str(timestamp)?}

@endgroup

@group usageplans
@endpoint PATCH /usageplans/{usageplanId}/keys/{keyId}/usage
@desc Grants a temporary extension to the remaining quota of a usage plan associated with a specified API key.
@required {usagePlanId: str, keyId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {usagePlanId: str?, startDate: str?, endDate: str?, position: str?, items: map<str,[[int(i64)]]>?}

@endpoint PATCH /usageplans/{usageplanId}
@desc Updates a usage plan of a given plan Id.
@required {usagePlanId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, description: str?, apiStages: [ApiStage]?, throttle: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, quota: QuotaSettings?{limit: int?, offset: int?, period: str?}, productCode: str?, tags: map<str,str>?}

@endgroup

@group vpclinks
@endpoint PATCH /vpclinks/{vpclink_id}
@desc Updates an existing VpcLink of a specified identifier.
@required {vpcLinkId: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {id: str?, name: str?, description: str?, targetArns: [str]?, status: str?, statusMessage: str?, tags: map<str,str>?}

@endgroup

@end
