Copyright | (c) 2013-2016 Brendan Hay |
---|---|
License | Mozilla Public License, v. 2.0. |
Maintainer | Brendan Hay <brendan.g.hay@gmail.com> |
Stability | auto-generated |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
Represents a put integration.
- putIntegration :: Text -> Text -> Text -> IntegrationType -> PutIntegration
- data PutIntegration
- pRequestTemplates :: Lens' PutIntegration (HashMap Text Text)
- pCredentials :: Lens' PutIntegration (Maybe Text)
- pRequestParameters :: Lens' PutIntegration (HashMap Text Text)
- pContentHandling :: Lens' PutIntegration (Maybe ContentHandlingStrategy)
- pPassthroughBehavior :: Lens' PutIntegration (Maybe Text)
- pUri :: Lens' PutIntegration (Maybe Text)
- pCacheNamespace :: Lens' PutIntegration (Maybe Text)
- pIntegrationHTTPMethod :: Lens' PutIntegration (Maybe Text)
- pCacheKeyParameters :: Lens' PutIntegration [Text]
- pRestAPIId :: Lens' PutIntegration Text
- pResourceId :: Lens' PutIntegration Text
- pHttpMethod :: Lens' PutIntegration Text
- pType :: Lens' PutIntegration IntegrationType
- integration :: Integration
- data Integration
- iHttpMethod :: Lens' Integration (Maybe Text)
- iRequestTemplates :: Lens' Integration (HashMap Text Text)
- iCredentials :: Lens' Integration (Maybe Text)
- iRequestParameters :: Lens' Integration (HashMap Text Text)
- iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)
- iPassthroughBehavior :: Lens' Integration (Maybe Text)
- iUri :: Lens' Integration (Maybe Text)
- iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)
- iCacheNamespace :: Lens' Integration (Maybe Text)
- iType :: Lens' Integration (Maybe IntegrationType)
- iCacheKeyParameters :: Lens' Integration [Text]
Creating a Request
Creates a value of PutIntegration
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
pRequestTemplates
- Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.pCredentials
- Specifies whether credentials are required for a put integration.pRequestParameters
- A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern ofmethod.request.{location}.{name}
, wherelocation
isquerystring
,path
, orheader
andname
must be a valid and unique method request parameter name.pContentHandling
- Specifies how to handle request payload content type conversions. Supported values areCONVERT_TO_BINARY
andCONVERT_TO_TEXT
, with the following behaviors: *CONVERT_TO_BINARY
: Converts a request payload from a Base64-encoded string to the corresponding binary blob. *CONVERT_TO_TEXT
: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that thepassthroughBehaviors
is configured to support payload pass-through.pPassthroughBehavior
- Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as therequestTemplates
property on the Integration resource. There are three valid values:WHEN_NO_MATCH
,WHEN_NO_TEMPLATES
, andNEVER
. *WHEN_NO_MATCH
passes the request body for unmapped content types through to the integration back end without transformation. *NEVER
rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. *WHEN_NO_TEMPLATES
allows pass-through when the integration has NO content types mapped to templates. However if there is at least one content type defined, unmapped content types will be rejected with the same 415 response.pUri
- Specifies a put integration input's Uniform Resource Identifier (URI). When the integration type is HTTP or AWS, this field is required. For integration with Lambda as an AWS service proxy, this value is of the 'arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<functionArn>/invocations' format.pCacheNamespace
- Specifies a put integration input's cache namespace.pIntegrationHTTPMethod
- Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required.pCacheKeyParameters
- Specifies a put integration input's cache key parameters.pRestAPIId
- Specifies a put integration request's API identifier.pResourceId
- Specifies a put integration request's resource ID.pHttpMethod
- Specifies a put integration request's HTTP method.pType
- Specifies a put integration input's type.
data PutIntegration Source #
Represents a put integration request.
See: putIntegration
smart constructor.
Request Lenses
pRequestTemplates :: Lens' PutIntegration (HashMap Text Text) Source #
Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.
pCredentials :: Lens' PutIntegration (Maybe Text) Source #
Specifies whether credentials are required for a put integration.
pRequestParameters :: Lens' PutIntegration (HashMap Text Text) Source #
A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}
, where location
is querystring
, path
, or header
and name
must be a valid and unique method request parameter name.
pContentHandling :: Lens' PutIntegration (Maybe ContentHandlingStrategy) Source #
Specifies how to handle request payload content type conversions. Supported values are CONVERT_TO_BINARY
and CONVERT_TO_TEXT
, with the following behaviors: * CONVERT_TO_BINARY
: Converts a request payload from a Base64-encoded string to the corresponding binary blob. * CONVERT_TO_TEXT
: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors
is configured to support payload pass-through.
pPassthroughBehavior :: Lens' PutIntegration (Maybe Text) Source #
Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates
property on the Integration resource. There are three valid values: WHEN_NO_MATCH
, WHEN_NO_TEMPLATES
, and NEVER
. * WHEN_NO_MATCH
passes the request body for unmapped content types through to the integration back end without transformation. * NEVER
rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. * WHEN_NO_TEMPLATES
allows pass-through when the integration has NO content types mapped to templates. However if there is at least one content type defined, unmapped content types will be rejected with the same 415 response.
pUri :: Lens' PutIntegration (Maybe Text) Source #
Specifies a put integration input's Uniform Resource Identifier (URI). When the integration type is HTTP or AWS, this field is required. For integration with Lambda as an AWS service proxy, this value is of the 'arn:aws:apigateway:<region>:lambda:path/2015-03-31/functions/<functionArn>/invocations' format.
pCacheNamespace :: Lens' PutIntegration (Maybe Text) Source #
Specifies a put integration input's cache namespace.
pIntegrationHTTPMethod :: Lens' PutIntegration (Maybe Text) Source #
Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required.
pCacheKeyParameters :: Lens' PutIntegration [Text] Source #
Specifies a put integration input's cache key parameters.
pRestAPIId :: Lens' PutIntegration Text Source #
Specifies a put integration request's API identifier.
pResourceId :: Lens' PutIntegration Text Source #
Specifies a put integration request's resource ID.
pHttpMethod :: Lens' PutIntegration Text Source #
Specifies a put integration request's HTTP method.
pType :: Lens' PutIntegration IntegrationType Source #
Specifies a put integration input's type.
Destructuring the Response
integration :: Integration Source #
Creates a value of Integration
with the minimum fields required to make a request.
Use one of the following lenses to modify other fields as desired:
iHttpMethod
- Specifies the integration's HTTP method type.iRequestTemplates
- Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.iCredentials
- Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the stringarn:aws:iam::*:user/*
. To use resource-based permissions on supported AWS services, specify null.iRequestParameters
- A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern ofmethod.request.{location}.{name}
, wherelocation
isquerystring
,path
, orheader
andname
must be a valid and unique method request parameter name.iContentHandling
- Specifies how to handle request payload content type conversions. Supported values areCONVERT_TO_BINARY
andCONVERT_TO_TEXT
, with the following behaviors: *CONVERT_TO_BINARY
: Converts a request payload from a Base64-encoded string to the corresponding binary blob. *CONVERT_TO_TEXT
: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that thepassthroughBehaviors
is configured to support payload pass-through.iPassthroughBehavior
- Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified inrequestTemplates
. There are three valid values:WHEN_NO_MATCH
,WHEN_NO_TEMPLATES
, andNEVER
. *WHEN_NO_MATCH
passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. *WHEN_NO_TEMPLATES
passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP415 Unsupported Media Type
response. *NEVER
rejects the method request with an HTTP415 Unsupported Media Type
response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request.iUri
- Specifies the integration's Uniform Resource Identifier (URI). For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the formarn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}
.Region
,subdomain
andservice
are used to determine the right endpoint. For AWS services that use theAction=
query string parameter,service_api
should be a valid action for the desired service. For RESTful AWS service APIs,path
is used to indicate that the remaining substring in the URI should be treated as the path to the resource, including the initial/
.iIntegrationResponses
- Specifies the integration's responses. Example: Get integration responses of a method Request @GET restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200 HTTP1.1 Content-Type: applicationjson Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}20160607us-east-1apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
Response The successful response returns
200 OKstatus and a payload as follows:
{ "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200", "title": "200" }, "integrationresponse:delete": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200" }, "integrationresponse:update": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200" } }, "responseParameters": { "method.response.header.Content-Type": "'applicationxml'" }, "responseTemplates": { "applicationjson": "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3Cname%3E%3Cstream%3E#end%3CkinesisStreams%3E")n" }, "statusCode": "200" }
@ Creating an APIiCacheNamespace
- Specifies the integration's cache namespace.iType
- Specifies the integration's type. The valid value isHTTP
for integrating with an HTTP back end,AWS
for any AWS service endpoints,MOCK
for testing without actually invoking the back end,HTTP_PROXY
for integrating with the HTTP proxy integration, orAWS_PROXY
for integrating with the Lambda proxy integration type.iCacheKeyParameters
- Specifies the integration's cache key parameters.
data Integration Source #
Represents an HTTP, HTTP_PROXY, AWS, AWS_PROXY, or Mock integration.
In the API Gateway console, the built-in Lambda integration is an AWS integration.Creating an API , http://docs.aws.amazon.com/apigateway/latest/developerguide/.html
See: integration
smart constructor.
Response Lenses
iHttpMethod :: Lens' Integration (Maybe Text) Source #
Specifies the integration's HTTP method type.
iRequestTemplates :: Lens' Integration (HashMap Text Text) Source #
Represents a map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. The content type value is the key in this map, and the template (as a String) is the value.
iCredentials :: Lens' Integration (Maybe Text) Source #
Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for Amazon API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string arn:aws:iam::*:user/*
. To use resource-based permissions on supported AWS services, specify null.
iRequestParameters :: Lens' Integration (HashMap Text Text) Source #
A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of method.request.{location}.{name}
, where location
is querystring
, path
, or header
and name
must be a valid and unique method request parameter name.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy) Source #
Specifies how to handle request payload content type conversions. Supported values are CONVERT_TO_BINARY
and CONVERT_TO_TEXT
, with the following behaviors: * CONVERT_TO_BINARY
: Converts a request payload from a Base64-encoded string to the corresponding binary blob. * CONVERT_TO_TEXT
: Converts a request payload from a binary blob to a Base64-encoded string. If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the passthroughBehaviors
is configured to support payload pass-through.
iPassthroughBehavior :: Lens' Integration (Maybe Text) Source #
Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in requestTemplates
. There are three valid values: WHEN_NO_MATCH
, WHEN_NO_TEMPLATES
, and NEVER
. * WHEN_NO_MATCH
passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. * WHEN_NO_TEMPLATES
passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type
response. * NEVER
rejects the method request with an HTTP 415 Unsupported Media Type
response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request.
iUri :: Lens' Integration (Maybe Text) Source #
Specifies the integration's Uniform Resource Identifier (URI). For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}
. Region
, subdomain
and service
are used to determine the right endpoint. For AWS services that use the Action=
query string parameter, service_api
should be a valid action for the desired service. For RESTful AWS service APIs, path
is used to indicate that the remaining substring in the URI should be treated as the path to the resource, including the initial /
.
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse) Source #
Specifies the integration's responses. Example: Get integration responses of a method Request @GET restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200 HTTP1.1 Content-Type: applicationjson Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}20160607us-east-1apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
Response The successful response returns
200 OK status and a payload as follows:
{ "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html", "name": "integrationresponse", "templated": true }, "self": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200", "title": "200" }, "integrationresponse:delete": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200" }, "integrationresponse:update": { "href": "restapisfugvjdxtriresources3kzxbg5sa2methodsGETintegrationresponses200" } }, "responseParameters": { "method.response.header.Content-Type": "'applicationxml'" }, "responseTemplates": { "applicationjson": "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3Cname%3E%3Cstream%3E#end%3CkinesisStreams%3E")n" }, "statusCode": "200" }
@ Creating an API
iCacheNamespace :: Lens' Integration (Maybe Text) Source #
Specifies the integration's cache namespace.
iType :: Lens' Integration (Maybe IntegrationType) Source #
Specifies the integration's type. The valid value is HTTP
for integrating with an HTTP back end, AWS
for any AWS service endpoints, MOCK
for testing without actually invoking the back end, HTTP_PROXY
for integrating with the HTTP proxy integration, or AWS_PROXY
for integrating with the Lambda proxy integration type.
iCacheKeyParameters :: Lens' Integration [Text] Source #
Specifies the integration's cache key parameters.