{ "smithy": "1.0", "shapes": { "aws.apigateway#apiKeySource": { "type": "string", "traits": { "smithy.api#trait": { "selector": "service" }, "smithy.api#documentation": "Specifies the source of the caller identifier that will be used to throttle API methods that require a key.", "smithy.api#externalDocumentation": { "Developer Guide": "https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-api-key-source.html" }, "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#authorizers": { "type": "map", "key": { "target": "smithy.api#String" }, "value": { "target": "aws.apigateway#AuthorizerDefinition" }, "traits": { "smithy.api#trait": { "selector": "service" }, "smithy.api#documentation": "A list of API Gateway authorizers to augment the service's declared authentication mechanisms.", "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#AuthorizerDefinition": { "type": "structure", "members": { "scheme": { "target": "smithy.api#String", "traits": { "smithy.api#required": {}, "smithy.api#documentation": "The Smithy authentication scheme used by the client (e.g, aws.v4).", "smithy.api#idRef": { "selector": "[trait|authDefinition]", "failWhenMissing": true, "errorMessage": "The scheme of an authorizer definition must reference an auth trait" } } }, "type": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "The type of the authorizer. If specifying information beyond the scheme, this value is required. The value must be \"token\", for an authorizer with the caller identity embedded in an authorization token, or \"request\", for an authorizer with the caller identity contained in request parameters." } }, "customAuthType": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "This value is not used directly by API Gateway but will be used for OpenAPI exports. This will default to \"awsSigV4\" if your scheme is \"aws.v4\", or \"custom\" otherwise." } }, "uri": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "The Uniform Resource Identifier (URI) of the authorizer Lambda function" } }, "credentials": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "Credentials required for invoking the authorizer" } }, "identitySource": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "Comma-separated list of mapping expressions of the request parameters as the identity source. Applicable for the authorizer of the \"request\" type only." } }, "identityValidationExpression": { "target": "smithy.api#String", "traits": { "smithy.api#documentation": "A regular expression for validating the token as the incoming identity" } }, "resultTtlInSeconds": { "target": "smithy.api#Integer", "traits": { "smithy.api#documentation": "The number of seconds for which the resulting IAM policy is cached." } } }, "traits": { "smithy.api#documentation": "An object that associates an authorizer and associated metadata with an authentication mechanism.", "smithy.api#private": {} } }, "aws.apigateway#authorizer": { "type": "string", "traits": { "smithy.api#trait": { "selector": ":test(service, resource, operation)" }, "smithy.api#documentation": "Attaches an authorizer to a service, resource, or operation.", "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#requestValidator": { "type": "string", "traits": { "smithy.api#trait": { "selector": ":test(service, operation)" }, "smithy.api#documentation": "Selects which request validation strategy to use. One of: 'full', 'params-only', 'body-only'", "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#integration": { "type": "structure", "members": { "type": { "target": "aws.apigateway#IntegrationType", "traits": { "smithy.api#required": {} } }, "uri": { "target": "aws.apigateway#Arn", "traits": { "smithy.api#required": {} } }, "credentials": { "target": "aws.apigateway#IamRoleArn" }, "httpMethod": { "target": "smithy.api#String", "traits": { "smithy.api#required": {} } }, "passThroughBehavior": { "target": "aws.apigateway#PassThroughBehavior" }, "contentHandling": { "target": "aws.apigateway#ContentHandling" }, "timeoutInMillis": { "target": "smithy.api#Integer" }, "connectionId": { "target": "smithy.api#String" }, "connectionType": { "target": "aws.apigateway#ConnectionType" }, "cacheNamespace": { "target": "smithy.api#String" }, "cacheKeyParameters": { "target": "aws.apigateway#StringList" }, "requestParameters": { "target": "aws.apigateway#RequestParameters" }, "requestTemplates": { "target": "aws.apigateway#Templates" }, "responses": { "target": "aws.apigateway#IntegrationResponses" } }, "traits": { "smithy.api#trait": { "selector": ":test(service, resource, operation)", "conflicts": [ "aws.apigateway#mockIntegration" ] }, "smithy.api#documentation": "Defines an API Gateway integration.", "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#mockIntegration": { "type": "structure", "members": { "passThroughBehavior": { "target": "aws.apigateway#PassThroughBehavior" }, "requestParameters": { "target": "aws.apigateway#RequestParameters" }, "requestTemplates": { "target": "aws.apigateway#Templates" }, "responses": { "target": "aws.apigateway#IntegrationResponses" } }, "traits": { "smithy.api#trait": { "selector": ":test(service, resource, operation)", "conflicts": [ "aws.apigateway#integration" ] }, "smithy.api#documentation": "Defines an API Gateway mock integration.", "smithy.api#tags": [ "internal" ] } }, "aws.apigateway#IntegrationType": { "type": "string", "traits": { "smithy.api#enum": [ { "value": "aws", "name": "AWS" }, { "value": "aws_proxy", "name": "AWS_PROXY" }, { "value": "http", "name": "HTTP" }, { "value": "http_proxy", "name": "HTTP_PROXY" } ] } }, "aws.apigateway#IamRoleArn": { "type": "string", "traits": { "smithy.api#documentation": "

The ARN of the IAM role to assume with invoking the integration.

This string MAY contain the literal string {serviceName} and/or the literal string {operationName}, which will be replaced with the name of the Smithy service shape and the name of the Smithy operation shape, respectively.

", "aws.api#arnReference": { "type": "AWS::IAM::Role" }, "smithy.api#private": {} } }, "aws.apigateway#Arn": { "type": "string", "traits": { "smithy.api#documentation": "

The ARN of an AWS integration target.

This string MAY contain the literal string {serviceName} and/or the literal string {operationName}, which will be replaced with the name of the Smithy service shape and the name of the Smithy operation shape, respectively.

", "aws.api#arnReference": {}, "smithy.api#private": {} } }, "aws.apigateway#RequestParameters": { "type": "map", "key": { "target": "smithy.api#String" }, "value": { "target": "smithy.api#String" }, "traits": { "smithy.api#documentation": "

A mapping of integration request parameters to the API Gateway data mapping expression that should be used to populate the parameter.

Note: This feature is provided primarily to allow injecting static values and context variables for request parameters. Request data MAY be mapped to headers using the syntax described in the API Gateway Developer Guide; however, the data must be identified according to its location in the serialized request, which may differ from protocol to protocol. Here be dragons!

", "smithy.api#private": {} } }, "aws.apigateway#Templates": { "type": "map", "key": { "target": "smithy.api#String" }, "value": { "target": "smithy.api#String" }, "traits": { "smithy.api#documentation": "

A map of MIME types to velocity templates allowing you to craft a new integration message from received data.

Note: This feature is provided primarily to allow injecting static values and context variables for request parameters. Request data MAY be mapped to headers using the syntax described in the API Gateway Developer Guide; however, the data must be identified according to its location in the serialized request, which may differ from protocol to protocol. Here be dragons!

", "smithy.api#private": {} } }, "aws.apigateway#ConnectionType": { "type": "string", "traits": { "smithy.api#private": {}, "smithy.api#enum": [ {"value": "INTERNET"}, {"value": "VPC_LINK"} ] } }, "aws.apigateway#PassThroughBehavior": { "type": "string", "traits": { "smithy.api#documentation": "Defines the passThroughBehavior for the integration", "smithy.api#enum": [ { "value": "when_no_templates", "name": "WHEN_NO_TEMPLATES" }, { "value": "when_no_match", "name": "WHEN_NO_MATCH" }, { "value": "never", "name": "NEVER" } ], "smithy.api#private": {} } }, "aws.apigateway#ContentHandling": { "type": "string", "traits": { "smithy.api#documentation": "Defines the contentHandling for the integration", "smithy.api#enum": [ {"value": "CONVERT_TO_TEXT", "name": "CONVERT_TO_TEXT"}, {"value": "CONVERT_TO_BINARY", "name": "CONVERT_TO_BINARY"} ], "smithy.api#private": {} } }, "aws.apigateway#StringList": { "type": "list", "member": { "target": "smithy.api#String" } }, "aws.apigateway#IntegrationResponses": { "type": "map", "key": { "target": "smithy.api#String" }, "value": { "target": "aws.apigateway#IntegrationResponse" }, "traits": { "smithy.api#documentation": "A map of response identifiers to responses.", "smithy.api#private": {} } }, "aws.apigateway#IntegrationResponse": { "type": "structure", "members": { "statusCode": { "target": "smithy.api#String" }, "contentHandling": { "target": "aws.apigateway#ContentHandling" }, "responseTemplates": { "target": "aws.apigateway#Templates" }, "responseParameters": { "target": "aws.apigateway#ResponseParameters" } }, "traits": { "smithy.api#documentation": "Defines a response and specifies parameter mappings.", "smithy.api#private": {} } }, "aws.apigateway#ResponseParameters": { "type": "map", "key": { "target": "smithy.api#String" }, "value": { "target": "smithy.api#String" }, "traits": { "smithy.api#documentation": "Specifies parameter mappings for the response. Only the header and body parameters of the integration response can be mapped to the header parameters of the method.", "smithy.api#private": {} } } } }