@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
@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
@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
@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
@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
@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
@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
@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
@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
@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}
@required {restApiId: str, parentId: str, pathPart: str}
@returns(200) {id: str?, parentId: str?, pathPart: str?, path: str?, resourceMethods: map<str,Method>?}

@endpoint POST /restapis
@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
@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
@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
@required {usagePlanId: str, keyId: str, keyType: str}
@returns(200) {id: str?, type: str?, value: str?, name: str?}

@endgroup

@group vpclinks
@endpoint POST /vpclinks
@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}
@required {apiKey: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/authorizers/{authorizer_id}
@required {restApiId: str, authorizerId: str}

@endgroup

@group domainnames
@endpoint DELETE /domainnames/{domain_name}/basepathmappings/{base_path}
@required {domainName: str, basePath: str}

@endgroup

@group clientcertificates
@endpoint DELETE /clientcertificates/{clientcertificate_id}
@required {clientCertificateId: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/deployments/{deployment_id}
@required {restApiId: str, deploymentId: str}

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

@endpoint DELETE /restapis/{restapi_id}/documentation/versions/{doc_version}
@required {restApiId: str, documentationVersion: str}

@endgroup

@group domainnames
@endpoint DELETE /domainnames/{domain_name}
@required {domainName: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/gatewayresponses/{response_type}
@required {restApiId: str, responseType: str}

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

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/integration/responses/{status_code}
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}
@required {restApiId: str, resourceId: str, httpMethod: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}/methods/{http_method}/responses/{status_code}
@required {restApiId: str, resourceId: str, httpMethod: str, statusCode: str}

@endpoint DELETE /restapis/{restapi_id}/models/{model_name}
@required {restApiId: str, modelName: str}

@endpoint DELETE /restapis/{restapi_id}/requestvalidators/{requestvalidator_id}
@required {restApiId: str, requestValidatorId: str}

@endpoint DELETE /restapis/{restapi_id}/resources/{resource_id}
@required {restApiId: str, resourceId: str}

@endpoint DELETE /restapis/{restapi_id}
@required {restApiId: str}

@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}
@required {restApiId: str, stageName: str}

@endgroup

@group usageplans
@endpoint DELETE /usageplans/{usageplanId}
@required {usagePlanId: str}

@endpoint DELETE /usageplans/{usageplanId}/keys/{keyId}
@required {usagePlanId: str, keyId: str}

@endgroup

@group vpclinks
@endpoint DELETE /vpclinks/{vpclink_id}
@required {vpcLinkId: str}

@endgroup

@group restapis
@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}/cache/authorizers
@required {restApiId: str, stageName: str}

@endpoint DELETE /restapis/{restapi_id}/stages/{stage_name}/cache/data
@required {restApiId: str, stageName: str}

@endgroup

@group clientcertificates
@endpoint POST /clientcertificates
@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
@returns(200) {cloudwatchRoleArn: str?, throttleSettings: ThrottleSettings?{burstLimit: int?, rateLimit: num(f64)?}, features: [str]?, apiKeyVersion: str?}

@endgroup

@group apikeys
@endpoint GET /apikeys/{api_Key}
@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
@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}
@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
@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}
@required {domainName: str, basePath: str}
@returns(200) {basePath: str?, restApiId: str?, stage: str?}

@endpoint GET /domainnames/{domain_name}/basepathmappings
@required {domainName: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [BasePathMapping]?}

@endgroup

@group clientcertificates
@endpoint GET /clientcertificates/{clientcertificate_id}
@required {clientCertificateId: str}
@returns(200) {clientCertificateId: str?, description: str?, pemEncodedCertificate: str?, createdDate: str(timestamp)?, expirationDate: str(timestamp)?, tags: map<str,str>?}

@endpoint GET /clientcertificates
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [ClientCertificate]?}

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/deployments/{deployment_id}
@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
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [Deployment]?}

@endpoint GET /restapis/{restapi_id}/documentation/parts/{part_id}
@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
@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}
@required {restApiId: str, documentationVersion: str}
@returns(200) {version: str?, createdDate: str(timestamp)?, description: str?}

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

@endgroup

@group domainnames
@endpoint GET /domainnames/{domain_name}
@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
@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}
@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}
@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
@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
@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}
@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}
@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}
@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}
@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
@required {restApiId: str, modelName: str}
@returns(200) {value: str?}

@endpoint GET /restapis/{restapi_id}/models
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [Model]?}

@endpoint GET /restapis/{restapi_id}/requestvalidators/{requestvalidator_id}
@required {restApiId: str, requestValidatorId: str}
@returns(200) {id: str?, name: str?, validateRequestBody: bool?, validateRequestParameters: bool?}

@endpoint GET /restapis/{restapi_id}/requestvalidators
@required {restApiId: str}
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [RequestValidator]?}

@endpoint GET /restapis/{restapi_id}/resources/{resource_id}
@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
@required {restApiId: str}
@optional {position: str, limit: int, embed: [str]}
@returns(200) {position: str?, items: [Resource]?}

@endpoint GET /restapis/{restapi_id}
@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
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [RestApi]?}

@endpoint GET /restapis/{restapi_id}/stages/{stage_name}/sdks/{sdk_type}
@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}
@required {id: str}
@returns(200) {id: str?, friendlyName: str?, description: str?, configurationProperties: [SdkConfigurationProperty]?}

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

@endgroup

@group restapis
@endpoint GET /restapis/{restapi_id}/stages/{stage_name}
@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
@required {restApiId: str}
@optional {deploymentId: str}
@returns(200) {item: [Stage]?}

@endgroup

@group tags
@endpoint GET /tags/{resource_arn}
@required {resourceArn: str}
@optional {position: str, limit: int}
@returns(200) {tags: map<str,str>?}

@endgroup

@group usageplans
@endpoint GET /usageplans/{usageplanId}/usage
@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}
@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}
@required {usagePlanId: str, keyId: str}
@returns(200) {id: str?, type: str?, value: str?, name: str?}

@endpoint GET /usageplans/{usageplanId}/keys
@required {usagePlanId: str}
@optional {position: str, limit: int, name: str}
@returns(200) {position: str?, items: [UsagePlanKey]?}

@endpoint GET /usageplans
@optional {position: str, keyId: str, limit: int}
@returns(200) {position: str?, items: [UsagePlan]?}

@endgroup

@group vpclinks
@endpoint GET /vpclinks/{vpclink_id}
@required {vpcLinkId: str}
@returns(200) {id: str?, name: str?, description: str?, targetArns: [str]?, status: str?, statusMessage: str?, tags: map<str,str>?}

@endpoint GET /vpclinks
@optional {position: str, limit: int}
@returns(200) {position: str?, items: [VpcLink]?}

@endgroup

@group apikeys?mode=import
@endpoint POST /apikeys?mode=import
@required {format: str, body: bytes}
@optional {failonwarnings: bool}
@returns(200) {ids: [str]?, warnings: [str]?}

@endgroup

@group restapis
@endpoint PUT /restapis/{restapi_id}/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
@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}
@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
@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}
@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}
@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}
@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}
@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}
@required {resourceArn: str, tags: map<str,str>}

@endgroup

@group restapis
@endpoint POST /restapis/{restapi_id}/authorizers/{authorizer_id}
@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}
@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}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group account
@endpoint PATCH /account
@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}
@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}
@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}
@required {domainName: str, basePath: str}
@optional {patchOperations: [PatchOperation]}
@returns(200) {basePath: str?, restApiId: str?, stage: str?}

@endgroup

@group clientcertificates
@endpoint PATCH /clientcertificates/{clientcertificate_id}
@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}
@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}
@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}
@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}
@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}
@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
@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}
@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}
@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}
@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}
@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}
@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}
@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}
@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}
@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
@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}
@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}
@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
