-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon API Gateway SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.APIGateway</a> or <a>the AWS documentation</a> to
--   get started.
@package amazonka-apigateway
@version 1.4.5


module Network.AWS.APIGateway.Types

-- | API version <tt>2015-07-09</tt> of the Amazon API Gateway SDK
--   configuration.
apiGateway :: Service

-- | Prism for ConflictException' errors.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for NotFoundException' errors.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for TooManyRequestsException' errors.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for ServiceUnavailableException' errors.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for UnauthorizedException' errors.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for BadRequestException' errors.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for LimitExceededException' errors.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data APIKeysFormat
CSV :: APIKeysFormat

-- | The authorizer type. the current value is <tt>TOKEN</tt> for a Lambda
--   function or <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito Your
--   User Pool.
data AuthorizerType
CognitoUserPools :: AuthorizerType
Token :: AuthorizerType

-- | Returns the size of the <b>CacheCluster</b> .
data CacheClusterSize
D0_5 :: CacheClusterSize
D118 :: CacheClusterSize
D13_5 :: CacheClusterSize
D1_6 :: CacheClusterSize
D237 :: CacheClusterSize
D28_4 :: CacheClusterSize
D58_2 :: CacheClusterSize
D6_1 :: CacheClusterSize

-- | Returns the status of the <b>CacheCluster</b> .
data CacheClusterStatus
Available :: CacheClusterStatus
CreateInProgress :: CacheClusterStatus
DeleteInProgress :: CacheClusterStatus
FlushInProgress :: CacheClusterStatus
NotAvailable :: CacheClusterStatus
data ContentHandlingStrategy
ConvertToBinary :: ContentHandlingStrategy
ConvertToText :: ContentHandlingStrategy
data DocumentationPartType
API :: DocumentationPartType
Authorizer :: DocumentationPartType
Method :: DocumentationPartType
Model :: DocumentationPartType
PathParameter :: DocumentationPartType
QueryParameter :: DocumentationPartType
RequestBody :: DocumentationPartType
RequestHeader :: DocumentationPartType
Resource :: DocumentationPartType
Response :: DocumentationPartType
ResponseBody :: DocumentationPartType
ResponseHeader :: DocumentationPartType

-- | The integration type. The valid value is <tt>HTTP</tt> for integrating
--   with an HTTP back end, <tt>AWS</tt> for any AWS service endpoints,
--   <tt>MOCK</tt> for testing without actually invoking the back end,
--   <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy integration,
--   or <tt>AWS_PROXY</tt> for integrating with the Lambda proxy
--   integration type.
data IntegrationType
AWS :: IntegrationType
AWSProxy :: IntegrationType
HTTP :: IntegrationType
HTTPProxy :: IntegrationType
Mock :: IntegrationType
data Op
Add :: Op
Copy :: Op
Move :: Op
Remove :: Op
Replace :: Op
Test :: Op
data PutMode
Merge :: PutMode
Overwrite :: PutMode
data QuotaPeriodType
Day :: QuotaPeriodType
Month :: QuotaPeriodType
Week :: QuotaPeriodType
data UnauthorizedCacheControlHeaderStrategy
FailWith403 :: UnauthorizedCacheControlHeaderStrategy
SucceedWithResponseHeader :: UnauthorizedCacheControlHeaderStrategy
SucceedWithoutResponseHeader :: UnauthorizedCacheControlHeaderStrategy

-- | A resource that can be distributed to callers for executing
--   <a>Method</a> resources that require an API key. API keys can be
--   mapped to any <a>Stage</a> on any <tt>RestApi</tt> , which indicates
--   that the callers with the API key can make requests to that stage.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>apiKey</a> smart constructor.
data APIKey

-- | Creates a value of <a>APIKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akEnabled</a> - Specifies whether the API Key can be used by
--   callers.</li>
--   <li><a>akValue</a> - The value of the API Key.</li>
--   <li><a>akCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>akCreatedDate</a> - The date when the API Key was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>akName</a> - The name of the API Key.</li>
--   <li><a>akId</a> - The identifier of the API Key.</li>
--   <li><a>akStageKeys</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>akLastUpdatedDate</a> - When the API Key was last updated, in
--   ISO 8601 format.</li>
--   <li><a>akDescription</a> - The description of the API Key.</li>
--   </ul>
apiKey :: APIKey

-- | Specifies whether the API Key can be used by callers.
akEnabled :: Lens' APIKey (Maybe Bool)

-- | The value of the API Key.
akValue :: Lens' APIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
akCustomerId :: Lens' APIKey (Maybe Text)

-- | The date when the API Key was created, in <a>ISO 8601 format</a> .
akCreatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The name of the API Key.
akName :: Lens' APIKey (Maybe Text)

-- | The identifier of the API Key.
akId :: Lens' APIKey (Maybe Text)

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
akStageKeys :: Lens' APIKey [Text]

-- | When the API Key was last updated, in ISO 8601 format.
akLastUpdatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The description of the API Key.
akDescription :: Lens' APIKey (Maybe Text)

-- | API stage name of the associated API stage in a usage plan.
--   
--   <i>See:</i> <a>apiStage</a> smart constructor.
data APIStage

-- | Creates a value of <a>APIStage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asStage</a> - API stage name of the associated API stage in a
--   usage plan.</li>
--   <li><a>asApiId</a> - API Id of the associated API stage in a usage
--   plan.</li>
--   </ul>
apiStage :: APIStage

-- | API stage name of the associated API stage in a usage plan.
asStage :: Lens' APIStage (Maybe Text)

-- | API Id of the associated API stage in a usage plan.
asApiId :: Lens' APIStage (Maybe Text)

-- | Represents an AWS account that is associated with Amazon API Gateway.
--   
--   To view the account info, call <tt>GET</tt> on this resource.
--   
--   <b>Error Codes</b> The following exception may be thrown when the
--   request fails.
--   
--   <ul>
--   <li>UnauthorizedException * NotFoundException *
--   TooManyRequestsException</li>
--   </ul>
--   
--   For detailed error code information, including the corresponding HTTP
--   Status Codes, see <a>API Gateway Error Codes</a>
--   
--   <b>Example: Get the information about an account.</b> <b>Request</b>
--   @<tt>GET <i>account HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns a </tt>200
--   OK@ status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html"</a>,
--   "name": "account", "templated": true }, "self": { "href": "<i>account"
--   }, "account:update": { "href": "</i>account" } }, "cloudwatchRoleArn":
--   "arn:aws:iam::123456789012:role/apigAwsProxyRole", "throttleSettings":
--   { "rateLimit": 500, "burstLimit": 1000 } } </tt> @ In addition to
--   making the REST API call directly, you can use the AWS CLI and an AWS
--   SDK to access this resource.
--   
--   <a>API Gateway Limits</a> <a>Developer Guide</a> , <a>AWS CLI</a>
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aApiKeyVersion</a> - The version of the API keys used for the
--   account.</li>
--   <li><a>aCloudwatchRoleARN</a> - The ARN of an Amazon CloudWatch role
--   for the current <a>Account</a> .</li>
--   <li><a>aFeatures</a> - A list of features supported for the account.
--   When usage plans are enabled, the features list will include an entry
--   of <tt><a>UsagePlans</a></tt> .</li>
--   <li><a>aThrottleSettings</a> - Specifies the API request limits
--   configured for the current <a>Account</a> .</li>
--   </ul>
account :: Account

-- | The version of the API keys used for the account.
aApiKeyVersion :: Lens' Account (Maybe Text)

-- | The ARN of an Amazon CloudWatch role for the current <a>Account</a> .
aCloudwatchRoleARN :: Lens' Account (Maybe Text)

-- | A list of features supported for the account. When usage plans are
--   enabled, the features list will include an entry of
--   <tt><a>UsagePlans</a></tt> .
aFeatures :: Lens' Account [Text]

-- | Specifies the API request limits configured for the current
--   <a>Account</a> .
aThrottleSettings :: Lens' Account (Maybe ThrottleSettings)

-- | Represents an authorization layer for methods. If enabled on a method,
--   API Gateway will activate the authorizer when a client calls the
--   method.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>authorizer</a> smart constructor.
data Authorizer

-- | Creates a value of <a>Authorizer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI). For <tt>TOKEN</tt> authorizers,
--   this must be a well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity. For <tt>TOKEN</tt> authorizers, this value
--   should be a regular expression. The incoming token from the client is
--   matched against this expression, and will proceed if the token
--   matches. If the token doesn't match, the client receives a 401
--   Unauthorized response.</li>
--   <li><a>aProviderARNs</a> - A list of the provider ARNs of the
--   authorizer. For an <tt>TOKEN</tt> authorizer, this is not defined. For
--   authorizers of the <tt>COGNITO_USER_POOLS</tt> type, each element
--   corresponds to a user pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .</li>
--   <li><a>aName</a> - [Required] The name of the authorizer.</li>
--   <li><a>aId</a> - The identifier for the authorizer resource.</li>
--   <li><a>aAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If greater than 0, API Gateway will cache
--   authorizer responses. If this field is not set, the default value is
--   300. The maximum value is 3600, or 1 hour.</li>
--   <li><a>aAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>aType</a> - [Required] The type of the authorizer. Currently,
--   the valid type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   <li><a>aIdentitySource</a> - [Required] The source of the identity in
--   an incoming request. For a <tt>TOKEN</tt> authorizer, this value is a
--   mapping expression with the same syntax as integration parameter
--   mappings. The only valid source for tokens is <tt>header</tt>, so the
--   expression should match 'method.request.header.[headerName]'. The
--   value of the header '[headerName]' will be interpreted as the incoming
--   token. For <tt>COGNITO_USER_POOLS</tt> authorizers, this property is
--   used.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the credentials required
--   for the authorizer, if any. Two options are available. To specify an
--   IAM role for Amazon API Gateway to assume, use the role's Amazon
--   Resource Name (ARN). To use resource-based permissions on the Lambda
--   function, specify null.</li>
--   </ul>
authorizer :: Authorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI). For <tt>TOKEN</tt> authorizers, this must be a
--   well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   </ul>
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity. For <tt>TOKEN</tt>
--   authorizers, this value should be a regular expression. The incoming
--   token from the client is matched against this expression, and will
--   proceed if the token matches. If the token doesn't match, the client
--   receives a 401 Unauthorized response.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the provider ARNs of the authorizer. For an <tt>TOKEN</tt>
--   authorizer, this is not defined. For authorizers of the
--   <tt>COGNITO_USER_POOLS</tt> type, each element corresponds to a user
--   pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .
aProviderARNs :: Lens' Authorizer [Text]

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
aName :: Lens' Authorizer (Maybe Text)

-- | The identifier for the authorizer resource.
aId :: Lens' Authorizer (Maybe Text)

-- | The TTL in seconds of cached authorizer results. If greater than 0,
--   API Gateway will cache authorizer responses. If this field is not set,
--   the default value is 300. The maximum value is 3600, or 1 hour.
aAuthorizerResultTtlInSeconds :: Lens' Authorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of the authorizer. Currently, the valid
--   type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   </ul>
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming request.
--   For a <tt>TOKEN</tt> authorizer, this value is a mapping expression
--   with the same syntax as integration parameter mappings. The only valid
--   source for tokens is <tt>header</tt>, so the expression should match
--   'method.request.header.[headerName]'. The value of the header
--   '[headerName]' will be interpreted as the incoming token. For
--   <tt>COGNITO_USER_POOLS</tt> authorizers, this property is used.</li>
--   </ul>
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any. Two
--   options are available. To specify an IAM role for Amazon API Gateway
--   to assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
aAuthorizerCredentials :: Lens' Authorizer (Maybe Text)

-- | Represents the base path that callers of the API must provide as part
--   of the URL after the domain name.
--   
--   A custom domain name plus a <tt>BasePathMapping</tt> specification
--   identifies a deployed <tt>RestApi</tt> in a given stage of the owner
--   <a>Account</a> .<a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>basePathMapping</a> smart constructor.
data BasePathMapping

-- | Creates a value of <a>BasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpmStage</a> - The name of the API's stage.</li>
--   <li><a>bpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name.</li>
--   <li><a>bpmRestAPIId</a> - The name of the API.</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | The name of the API's stage.
bpmStage :: Lens' BasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name.
bpmBasePath :: Lens' BasePathMapping (Maybe Text)

-- | The name of the API.
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used authenticate an API by the back-end
--   server. To authenticate an API client (or user), use a custom
--   <a>Authorizer</a> .<a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>clientCertificate</a> smart constructor.
data ClientCertificate

-- | Creates a value of <a>ClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccPemEncodedCertificate</a> - The PEM-encoded public key of the
--   client certificate, which can be used to configure certificate
--   authentication in the integration endpoint .</li>
--   <li><a>ccClientCertificateId</a> - The identifier of the client
--   certificate.</li>
--   <li><a>ccCreatedDate</a> - The date when the client certificate was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccExpirationDate</a> - The date when the client certificate
--   will expire, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccDescription</a> - The description of the client
--   certificate.</li>
--   </ul>
clientCertificate :: ClientCertificate

-- | The PEM-encoded public key of the client certificate, which can be
--   used to configure certificate authentication in the integration
--   endpoint .
ccPemEncodedCertificate :: Lens' ClientCertificate (Maybe Text)

-- | The identifier of the client certificate.
ccClientCertificateId :: Lens' ClientCertificate (Maybe Text)

-- | The date when the client certificate was created, in <a>ISO 8601
--   format</a> .
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The date when the client certificate will expire, in <a>ISO 8601
--   format</a> .
ccExpirationDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The description of the client certificate.
ccDescription :: Lens' ClientCertificate (Maybe Text)

-- | An immutable representation of a <tt>RestApi</tt> resource that can be
--   called by users using <tt>Stages</tt> . A deployment must be
--   associated with a <a>Stage</a> for it to be callable over the
--   Internet.
--   
--   To create a deployment, call <tt>POST</tt> on the <tt>Deployments</tt>
--   resource of a <tt>RestApi</tt> . To view, update, or delete a
--   deployment, call <tt>GET</tt> , <tt>PATCH</tt> , or <tt>DELETE</tt> on
--   the specified deployment resource
--   (<tt><i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}</tt>
--   ).<tt>RestApi</tt> , <tt>Deployments</tt> , <a>Stage</a> , <a>AWS
--   CLI</a> , <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dApiSummary</a> - A summary of the <tt>RestApi</tt> at the date
--   and time that the deployment resource was created.</li>
--   <li><a>dCreatedDate</a> - The date and time that the deployment
--   resource was created.</li>
--   <li><a>dId</a> - The identifier for the deployment resource.</li>
--   <li><a>dDescription</a> - The description for the deployment
--   resource.</li>
--   </ul>
deployment :: Deployment

-- | A summary of the <tt>RestApi</tt> at the date and time that the
--   deployment resource was created.
dApiSummary :: Lens' Deployment (HashMap Text (HashMap Text MethodSnapshot))

-- | The date and time that the deployment resource was created.
dCreatedDate :: Lens' Deployment (Maybe UTCTime)

-- | The identifier for the deployment resource.
dId :: Lens' Deployment (Maybe Text)

-- | The description for the deployment resource.
dDescription :: Lens' Deployment (Maybe Text)

-- | A documentation part for a targeted API entity.
--   
--   A documentation part consists of a content map (<tt>properties</tt> )
--   and a target (<tt>location</tt> ). The target specifies an API entity
--   to which the documentation content applies. The supported API entity
--   types are <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Valid <tt>location</tt> fields depend on
--   the API entity type. All valid fields are not required.
--   
--   The content map is a JSON string of API-specific key-value pairs.
--   Although an API can use any shape for the content map, only the
--   Swagger-compliant documentation fields will be injected into the
--   associated API entity definition in the exported Swagger definition
--   file.
--   
--   <a>Documenting an API</a> , <tt>DocumentationParts</tt>
--   
--   <i>See:</i> <a>documentationPart</a> smart constructor.
data DocumentationPart

-- | Creates a value of <a>DocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpLocation</a> - The location of the API entity to which the
--   documentation applies. Valid fields depend on the targeted API entity
--   type. All the valid location fields are not required. If not
--   explicitly specified, a valid location field is treated as a wildcard
--   and associated documentation content may be inherited by matching
--   entities, unless overridden.</li>
--   <li><a>dpId</a> - The <a>DocumentationPart</a> identifier, generated
--   by Amazon API Gateway when the <tt>DocumentationPart</tt> is
--   created.</li>
--   <li><a>dpProperties</a> - A content map of API-specific key-value
--   pairs describing the targeted API entity. The map must be encoded as a
--   JSON string, e.g., <tt>"{ "description": "The API does ..." }"</tt> .
--   Only Swagger-compliant documentation-related fields from the
--   <tt>properties</tt> map are exported and, hence, published as part of
--   the API entity definitions, while the original documentation parts are
--   exported in a Swagger extension of
--   <tt>x-amazon-apigateway-documentation</tt> .</li>
--   </ul>
documentationPart :: DocumentationPart

-- | The location of the API entity to which the documentation applies.
--   Valid fields depend on the targeted API entity type. All the valid
--   location fields are not required. If not explicitly specified, a valid
--   location field is treated as a wildcard and associated documentation
--   content may be inherited by matching entities, unless overridden.
dpLocation :: Lens' DocumentationPart (Maybe DocumentationPartLocation)

-- | The <a>DocumentationPart</a> identifier, generated by Amazon API
--   Gateway when the <tt>DocumentationPart</tt> is created.
dpId :: Lens' DocumentationPart (Maybe Text)

-- | A content map of API-specific key-value pairs describing the targeted
--   API entity. The map must be encoded as a JSON string, e.g., <tt>"{
--   "description": "The API does ..." }"</tt> . Only Swagger-compliant
--   documentation-related fields from the <tt>properties</tt> map are
--   exported and, hence, published as part of the API entity definitions,
--   while the original documentation parts are exported in a Swagger
--   extension of <tt>x-amazon-apigateway-documentation</tt> .
dpProperties :: Lens' DocumentationPart (Maybe Text)

-- | Specifies the target API entity to which the documentation applies.
--   
--   <i>See:</i> <a>documentationPartLocation</a> smart constructor.
data DocumentationPartLocation

-- | Creates a value of <a>DocumentationPartLocation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dplPath</a> - The URL path of the target. It is a valid field
--   for the API entity types of <tt>RESOURCE</tt> , <tt>METHOD</tt> ,
--   <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . The default
--   value is <tt>/</tt> for the root resource. When an applicable child
--   entity inherits the content of another entity of the same type with
--   more general specifications of the other <tt>location</tt> attributes,
--   the child entity's <tt>path</tt> attribute must match that of the
--   parent entity as a prefix.</li>
--   <li><a>dplName</a> - The name of the targeted API entity. It is a
--   valid and required field for the API entity types of
--   <tt>AUTHORIZER</tt> , <tt>MODEL</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> and <tt>RESPONSE_HEADER</tt> . It is an invalid
--   field for any other entity type.</li>
--   <li><a>dplMethod</a> - The HTTP verb of a method. It is a valid field
--   for the API entity types of <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt>
--   , <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   method. When an applicable child entity inherits the content of an
--   entity of the same type with more general specifications of the other
--   <tt>location</tt> attributes, the child entity's <tt>method</tt>
--   attribute must match that of the parent entity exactly.</li>
--   <li><a>dplStatusCode</a> - The HTTP status code of a response. It is a
--   valid field for the API entity types of <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . The default
--   value is <tt>*</tt> for any status code. When an applicable child
--   entity inherits the content of an entity of the same type with more
--   general specifications of the other <tt>location</tt> attributes, the
--   child entity's <tt>statusCode</tt> attribute must match that of the
--   parent entity exactly.</li>
--   <li><a>dplType</a> - The type of API entity to which the documentation
--   content applies. It is a valid and required field for API entity types
--   of <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Content inheritance does not apply to any
--   entity of the <tt>API</tt> , <tt>AUTHROZER</tt> , <tt>MODEL</tt> , or
--   <tt>RESOURCE</tt> type.</li>
--   </ul>
documentationPartLocation :: DocumentationPartType -> DocumentationPartLocation

-- | The URL path of the target. It is a valid field for the API entity
--   types of <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt>
--   , <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>/</tt> for the
--   root resource. When an applicable child entity inherits the content of
--   another entity of the same type with more general specifications of
--   the other <tt>location</tt> attributes, the child entity's
--   <tt>path</tt> attribute must match that of the parent entity as a
--   prefix.
dplPath :: Lens' DocumentationPartLocation (Maybe Text)

-- | The name of the targeted API entity. It is a valid and required field
--   for the API entity types of <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> and
--   <tt>RESPONSE_HEADER</tt> . It is an invalid field for any other entity
--   type.
dplName :: Lens' DocumentationPartLocation (Maybe Text)

-- | The HTTP verb of a method. It is a valid field for the API entity
--   types of <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   method. When an applicable child entity inherits the content of an
--   entity of the same type with more general specifications of the other
--   <tt>location</tt> attributes, the child entity's <tt>method</tt>
--   attribute must match that of the parent entity exactly.
dplMethod :: Lens' DocumentationPartLocation (Maybe Text)

-- | The HTTP status code of a response. It is a valid field for the API
--   entity types of <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> , and
--   <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   status code. When an applicable child entity inherits the content of
--   an entity of the same type with more general specifications of the
--   other <tt>location</tt> attributes, the child entity's
--   <tt>statusCode</tt> attribute must match that of the parent entity
--   exactly.
dplStatusCode :: Lens' DocumentationPartLocation (Maybe Text)

-- | The type of API entity to which the documentation content applies. It
--   is a valid and required field for API entity types of <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>MODEL</tt> , <tt>RESOURCE</tt> ,
--   <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHROZER</tt> , <tt>MODEL</tt> , or <tt>RESOURCE</tt> type.
dplType :: Lens' DocumentationPartLocation DocumentationPartType

-- | A snapshot of the documentation of an API.
--   
--   Publishing API documentation involves creating a documentation version
--   associated with an API stage and exporting the versioned documentation
--   to an external (e.g., Swagger) file.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <tt>DocumentationVersions</tt>
--   
--   <i>See:</i> <a>documentationVersion</a> smart constructor.
data DocumentationVersion

-- | Creates a value of <a>DocumentationVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvCreatedDate</a> - The date when the API documentation
--   snapshot is created.</li>
--   <li><a>dvVersion</a> - The version identifier of the API documentation
--   snapshot.</li>
--   <li><a>dvDescription</a> - The description of the API documentation
--   snapshot.</li>
--   </ul>
documentationVersion :: DocumentationVersion

-- | The date when the API documentation snapshot is created.
dvCreatedDate :: Lens' DocumentationVersion (Maybe UTCTime)

-- | The version identifier of the API documentation snapshot.
dvVersion :: Lens' DocumentationVersion (Maybe Text)

-- | The description of the API documentation snapshot.
dvDescription :: Lens' DocumentationVersion (Maybe Text)

-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | Creates a value of <a>DomainName</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnCertificateName</a> - The name of the certificate.</li>
--   <li><a>dnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>dnCertificateUploadDate</a> - The date when the certificate was
--   uploaded, in <a>ISO 8601 format</a> .</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution. For more information, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   </ul>
domainName :: DomainName

-- | The name of the certificate.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The name of the <a>DomainName</a> resource.
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The date when the certificate was uploaded, in <a>ISO 8601 format</a>
--   .
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution. For more
--   information, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | 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.<a>Creating an API</a> ,
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/.html</a>
--   
--   <i>See:</i> <a>integration</a> smart constructor.
data Integration

-- | Creates a value of <a>Integration</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iHttpMethod</a> - Specifies the integration's HTTP method
--   type.</li>
--   <li><a>iRequestTemplates</a> - 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.</li>
--   <li><a>iCredentials</a> - 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 <tt>arn:aws:iam::*:user/*</tt> . To use resource-based
--   permissions on supported AWS services, specify null.</li>
--   <li><a>iRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>iContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>iPassthroughBehavior</a> - 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 <tt>requestTemplates</tt> . There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> 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. * <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415 Unsupported Media Type</tt> response. * <tt>NEVER</tt>
--   rejects the method request with an HTTP <tt>415 Unsupported Media
--   Type</tt> 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.</li>
--   <li><a>iUri</a> - 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 <a>RFC-3986
--   specification</a> . For AWS integrations, the URI should be of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .</li>
--   <li><a>iIntegrationResponses</a> - Specifies the integration's
--   responses. <b>Example: Get integration responses of a method</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a></li>
--   <li><a>iCacheNamespace</a> - Specifies the integration's cache
--   namespace.</li>
--   <li><a>iType</a> - Specifies the integration's type. The valid value
--   is <tt>HTTP</tt> for integrating with an HTTP back end, <tt>AWS</tt>
--   for any AWS service endpoints, <tt>MOCK</tt> for testing without
--   actually invoking the back end, <tt>HTTP_PROXY</tt> for integrating
--   with the HTTP proxy integration, or <tt>AWS_PROXY</tt> for integrating
--   with the Lambda proxy integration type.</li>
--   <li><a>iCacheKeyParameters</a> - Specifies the integration's cache key
--   parameters.</li>
--   </ul>
integration :: Integration

-- | Specifies the integration's HTTP method type.
iHttpMethod :: Lens' Integration (Maybe Text)

-- | 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.
iRequestTemplates :: Lens' Integration (HashMap Text Text)

-- | 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 <tt>arn:aws:iam::*:user/*</tt> . To
--   use resource-based permissions on supported AWS services, specify
--   null.
iCredentials :: Lens' Integration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
iRequestParameters :: Lens' Integration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> .
--   There are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> 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. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415
--   Unsupported Media Type</tt> response. * <tt>NEVER</tt> rejects the
--   method request with an HTTP <tt>415 Unsupported Media Type</tt>
--   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.
iPassthroughBehavior :: Lens' Integration (Maybe Text)

-- | 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 <a>RFC-3986 specification</a> . For AWS integrations,
--   the URI should be of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .
iUri :: Lens' Integration (Maybe Text)

-- | Specifies the integration's responses. <b>Example: Get integration
--   responses of a method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a>
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)

-- | Specifies the integration's cache namespace.
iCacheNamespace :: Lens' Integration (Maybe Text)

-- | Specifies the integration's type. The valid value is <tt>HTTP</tt> for
--   integrating with an HTTP back end, <tt>AWS</tt> for any AWS service
--   endpoints, <tt>MOCK</tt> for testing without actually invoking the
--   back end, <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration, or <tt>AWS_PROXY</tt> for integrating with the Lambda
--   proxy integration type.
iType :: Lens' Integration (Maybe IntegrationType)

-- | Specifies the integration's cache key parameters.
iCacheKeyParameters :: Lens' Integration [Text]

-- | Represents an integration response. The status code must map to an
--   existing <a>MethodResponse</a> , and parameters and templates can be
--   used to transform the back-end response.
--   
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>integrationResponse</a> smart constructor.
data IntegrationResponse

-- | Creates a value of <a>IntegrationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>intContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>intResponseTemplates</a> - Specifies the templates used to
--   transform the integration response body. Response templates are
--   represented as a key/value map, with a content-type as the key and a
--   template as the value.</li>
--   <li><a>intSelectionPattern</a> - Specifies the regular expression
--   (regex) pattern used to choose an integration response based on the
--   response from the back end. For example, if the success response
--   returns nothing and the error response returns some string, you could
--   use the <tt>.+</tt> regex to match error response. However, make sure
--   that the error response does not contain any newline (<tt>n</tt> )
--   character in such cases. If the back end is an AWS Lambda function,
--   the AWS Lambda function error header is matched. For all other HTTP
--   and AWS back ends, the HTTP status code is matched.</li>
--   <li><a>intStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   <li><a>intResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.</li>
--   </ul>
integrationResponse :: IntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
intContentHandling :: Lens' IntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies the templates used to transform the integration response
--   body. Response templates are represented as a key/value map, with a
--   content-type as the key and a template as the value.
intResponseTemplates :: Lens' IntegrationResponse (HashMap Text Text)

-- | Specifies the regular expression (regex) pattern used to choose an
--   integration response based on the response from the back end. For
--   example, if the success response returns nothing and the error
--   response returns some string, you could use the <tt>.+</tt> regex to
--   match error response. However, make sure that the error response does
--   not contain any newline (<tt>n</tt> ) character in such cases. If the
--   back end is an AWS Lambda function, the AWS Lambda function error
--   header is matched. For all other HTTP and AWS back ends, the HTTP
--   status code is matched.
intSelectionPattern :: Lens' IntegrationResponse (Maybe Text)

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
intStatusCode :: Lens' IntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.
intResponseParameters :: Lens' IntegrationResponse (HashMap Text Text)

-- | Represents a client-facing interface by which the client calls the API
--   to access back-end resources. A <b>Method</b> resource is integrated
--   with an <a>Integration</a> resource. Both consist of a request and one
--   or more responses. The method request takes the client input that is
--   passed to the back end through the integration request. A method
--   response returns the output from the back end to the client through an
--   integration response. A method request is embodied in a <b>Method</b>
--   resource, whereas an integration request is embodied in an
--   <a>Integration</a> resource. On the other hand, a method response is
--   represented by a <a>MethodResponse</a> resource, whereas an
--   integration response is represented by an <a>IntegrationResponse</a>
--   resource.
--   
--   <b>Example: Retrive the GET method on a specified resource</b>
--   <b>Request</b> The following example request retrieves the information
--   about the GET method on an API resource (<tt>3kzxbg5sa2</tt> ) of an
--   API (<tt>fugvjdxtri</tt> ).
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK@
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": true, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E")"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   }, "methodresponse:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   } }, "responseModels": { "application</i>json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> In the example above, the
--   response template for the </tt>200 OK<tt> response maps the JSON
--   output from the </tt>ListStreams<tt> action in the back end to an XML
--   output. The mapping template is URL-encoded as
--   </tt>%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E@
--   and the output is decoded using the
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference</a>
--   util.urlDecode()&gt; helper function.
--   
--   <a>MethodResponse</a> , <a>Integration</a> ,
--   <a>IntegrationResponse</a> , <a>Resource</a> , <a>Set up an API's
--   method</a>
--   
--   <i>See:</i> <a>method</a> smart constructor.
data Method

-- | Creates a value of <a>Method</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mMethodResponses</a> - Gets a method response associated with a
--   given HTTP status code. The collection of method responses are
--   encapsulated in a key-value map, where the key is a response's HTTP
--   status code and the value is a <a>MethodResponse</a> resource that
--   specifies the response returned to the caller from the back end
--   through the integration response. <b>Example: Get a 200 OK response of
--   a GET method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a></li>
--   <li><a>mHttpMethod</a> - The method's HTTP verb.</li>
--   <li><a>mRequestModels</a> - A key-value map specifying data schemas,
--   represented by <a>Model</a> resources, (as the mapped value) of the
--   request payloads of given content types (as the mapping key).</li>
--   <li><a>mRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key is a method request parameter name matching the pattern
--   of <tt>method.request.{location}.{name}</tt> , where <tt>location</tt>
--   is <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.</li>
--   <li><a>mAuthorizerId</a> - The identifier of an <a>Authorizer</a> to
--   use on this method. The <tt>authorizationType</tt> must be
--   <tt>CUSTOM</tt> .</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type.</li>
--   <li><a>mApiKeyRequired</a> - A boolean flag specifying whether a valid
--   <tt>ApiKey</tt> is required to invoke this method.</li>
--   <li><a>mMethodIntegration</a> - Gets the method's integration
--   responsible for passing the client-submitted request to the back end
--   and performing necessary transformations to make the request compliant
--   with the back end. <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a></li>
--   </ul>
method :: Method

-- | Gets a method response associated with a given HTTP status code. The
--   collection of method responses are encapsulated in a key-value map,
--   where the key is a response's HTTP status code and the value is a
--   <a>MethodResponse</a> resource that specifies the response returned to
--   the caller from the back end through the integration response.
--   <b>Example: Get a 200 OK response of a GET method</b> <b>Request</b>
--   @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a>
mMethodResponses :: Lens' Method (HashMap Text MethodResponse)

-- | The method's HTTP verb.
mHttpMethod :: Lens' Method (Maybe Text)

-- | A key-value map specifying data schemas, represented by <a>Model</a>
--   resources, (as the mapped value) of the request payloads of given
--   content types (as the mapping key).
mRequestModels :: Lens' Method (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key is a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.
mRequestParameters :: Lens' Method (HashMap Text Bool)

-- | The identifier of an <a>Authorizer</a> to use on this method. The
--   <tt>authorizationType</tt> must be <tt>CUSTOM</tt> .
mAuthorizerId :: Lens' Method (Maybe Text)

-- | The method's authorization type.
mAuthorizationType :: Lens' Method (Maybe Text)

-- | A boolean flag specifying whether a valid <tt>ApiKey</tt> is required
--   to invoke this method.
mApiKeyRequired :: Lens' Method (Maybe Bool)

-- | Gets the method's integration responsible for passing the
--   client-submitted request to the back end and performing necessary
--   transformations to make the request compliant with the back end.
--   <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a>
mMethodIntegration :: Lens' Method (Maybe Integration)

-- | Represents a method response of a given HTTP status code returned to
--   the client. The method response is passed from the back end through
--   the associated integration response that can be transformed using a
--   mapping template.
--   
--   <b>Example: A </b>MethodResponse<b> instance of an API</b>
--   <b>Request</b> The example request retrieves a <b>MethodResponse</b>
--   of the 200 status code.
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns </tt>200 OK@
--   status and a payload as follows:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" }</tt> @
--   
--   <a>Method</a> , <a>IntegrationResponse</a> , <a>Integration</a>
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>methodResponse</a> smart constructor.
data MethodResponse

-- | Creates a value of <a>MethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResponseModels</a> - Specifies the <a>Model</a> resources used
--   for the response's content-type. Response models are represented as a
--   key/value map, with a content-type as the key and a <a>Model</a> name
--   as the value.</li>
--   <li><a>mStatusCode</a> - The method response's status code.</li>
--   <li><a>mResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header and the value
--   specifies whether the associated method response header is required or
--   not. The expression of the key must match the pattern
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. Amazon API Gateway passes certain
--   integration response data to the method response headers specified
--   here according to the mapping you prescribe in the API's
--   <a>IntegrationResponse</a> . The integration response data that can be
--   mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   </ul>
methodResponse :: MethodResponse

-- | Specifies the <a>Model</a> resources used for the response's
--   content-type. Response models are represented as a key/value map, with
--   a content-type as the key and a <a>Model</a> name as the value.
mResponseModels :: Lens' MethodResponse (HashMap Text Text)

-- | The method response's status code.
mStatusCode :: Lens' MethodResponse (Maybe Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header and the value specifies whether the associated
--   method response header is required or not. The expression of the key
--   must match the pattern <tt>method.response.header.{name}</tt> , where
--   <tt>name</tt> is a valid and unique header name. Amazon API Gateway
--   passes certain integration response data to the method response
--   headers specified here according to the mapping you prescribe in the
--   API's <a>IntegrationResponse</a> . The integration response data that
--   can be mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
mResponseParameters :: Lens' MethodResponse (HashMap Text Bool)

-- | Specifies the method setting properties.
--   
--   <i>See:</i> <a>methodSetting</a> smart constructor.
data MethodSetting

-- | Creates a value of <a>MethodSetting</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msCacheTtlInSeconds</a> - Specifies the time to live (TTL), in
--   seconds, for cached responses. The higher the TTL, the longer the
--   response will be cached. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/ttlInSeconds</tt> , and the
--   value is an integer.</li>
--   <li><a>msDataTraceEnabled</a> - Specifies whether data trace logging
--   is enabled for this method, which effects the log entries pushed to
--   Amazon CloudWatch Logs. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>logging/dataTrace</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msThrottlingBurstLimit</a> - Specifies the throttling burst
--   limit. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>throttling/burstLimit</tt> , and the
--   value is an integer.</li>
--   <li><a>msCacheDataEncrypted</a> - Specifies whether the cached
--   responses are encrypted. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/dataEncrypted</tt> , and the
--   value is a Boolean.</li>
--   <li><a>msLoggingLevel</a> - Specifies the logging level for this
--   method, which effects the log entries pushed to Amazon CloudWatch
--   Logs. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>logging/loglevel</tt> , and the
--   available levels are <tt>OFF</tt> , <tt>ERROR</tt> , and <tt>INFO</tt>
--   .</li>
--   <li><a>msRequireAuthorizationForCacheControl</a> - Specifies whether
--   authorization is required for a cache invalidation request. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>caching/requireAuthorizationForCacheControl</tt>
--   , and the value is a Boolean.</li>
--   <li><a>msCachingEnabled</a> - Specifies whether responses should be
--   cached and returned for requests. A cache cluster must be enabled on
--   the stage for responses to be cached. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>caching/enabled</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msMetricsEnabled</a> - Specifies whether Amazon CloudWatch
--   metrics are enabled for this method. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>metrics/enabled</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msThrottlingRateLimit</a> - Specifies the throttling rate
--   limit. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>throttling/rateLimit</tt> , and the
--   value is a double.</li>
--   <li><a>msUnauthorizedCacheControlHeaderStrategy</a> - Specifies how to
--   handle unauthorized requests for cache invalidation. The PATCH path
--   for this setting is
--   <tt><i>{method_setting_key}</i>caching/unauthorizedCacheControlHeaderStrategy</tt>
--   , and the available values are <tt>FAIL_WITH_403</tt> ,
--   <tt>SUCCEED_WITH_RESPONSE_HEADER</tt> ,
--   <tt>SUCCEED_WITHOUT_RESPONSE_HEADER</tt> .</li>
--   </ul>
methodSetting :: MethodSetting

-- | Specifies the time to live (TTL), in seconds, for cached responses.
--   The higher the TTL, the longer the response will be cached. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>caching/ttlInSeconds</tt> , and the
--   value is an integer.
msCacheTtlInSeconds :: Lens' MethodSetting (Maybe Int)

-- | Specifies whether data trace logging is enabled for this method, which
--   effects the log entries pushed to Amazon CloudWatch Logs. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>logging/dataTrace</tt> , and the value
--   is a Boolean.
msDataTraceEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the throttling burst limit. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>throttling/burstLimit</tt> , and the
--   value is an integer.
msThrottlingBurstLimit :: Lens' MethodSetting (Maybe Int)

-- | Specifies whether the cached responses are encrypted. The PATCH path
--   for this setting is
--   <tt><i>{method_setting_key}</i>caching/dataEncrypted</tt> , and the
--   value is a Boolean.
msCacheDataEncrypted :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the logging level for this method, which effects the log
--   entries pushed to Amazon CloudWatch Logs. The PATCH path for this
--   setting is <tt><i>{method_setting_key}</i>logging/loglevel</tt> , and
--   the available levels are <tt>OFF</tt> , <tt>ERROR</tt> , and
--   <tt>INFO</tt> .
msLoggingLevel :: Lens' MethodSetting (Maybe Text)

-- | Specifies whether authorization is required for a cache invalidation
--   request. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/requireAuthorizationForCacheControl</tt>
--   , and the value is a Boolean.
msRequireAuthorizationForCacheControl :: Lens' MethodSetting (Maybe Bool)

-- | Specifies whether responses should be cached and returned for
--   requests. A cache cluster must be enabled on the stage for responses
--   to be cached. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/enabled</tt> , and the value is
--   a Boolean.
msCachingEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies whether Amazon CloudWatch metrics are enabled for this
--   method. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>metrics/enabled</tt> , and the value is
--   a Boolean.
msMetricsEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the throttling rate limit. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>throttling/rateLimit</tt> , and the
--   value is a double.
msThrottlingRateLimit :: Lens' MethodSetting (Maybe Double)

-- | Specifies how to handle unauthorized requests for cache invalidation.
--   The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/unauthorizedCacheControlHeaderStrategy</tt>
--   , and the available values are <tt>FAIL_WITH_403</tt> ,
--   <tt>SUCCEED_WITH_RESPONSE_HEADER</tt> ,
--   <tt>SUCCEED_WITHOUT_RESPONSE_HEADER</tt> .
msUnauthorizedCacheControlHeaderStrategy :: Lens' MethodSetting (Maybe UnauthorizedCacheControlHeaderStrategy)

-- | Represents a summary of a <a>Method</a> resource, given a particular
--   date and time.
--   
--   <i>See:</i> <a>methodSnapshot</a> smart constructor.
data MethodSnapshot

-- | Creates a value of <a>MethodSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msAuthorizationType</a> - Specifies the type of authorization
--   used for the method.</li>
--   <li><a>msApiKeyRequired</a> - Specifies whether the method requires a
--   valid <tt>ApiKey</tt> .</li>
--   </ul>
methodSnapshot :: MethodSnapshot

-- | Specifies the type of authorization used for the method.
msAuthorizationType :: Lens' MethodSnapshot (Maybe Text)

-- | Specifies whether the method requires a valid <tt>ApiKey</tt> .
msApiKeyRequired :: Lens' MethodSnapshot (Maybe Bool)

-- | Represents the data structure of a method's request or response
--   payload.
--   
--   A request model defines the data structure of the client-supplied
--   request payload. A response model defines the data structure of the
--   response payload returned by the back end. Although not required,
--   models are useful for mapping payloads between the front end and back
--   end.
--   
--   A model is used for generating an API's SDK, validating the input
--   request body, and creating a skeletal mapping template.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>model</a> smart constructor.
data Model

-- | Creates a value of <a>Model</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model. Do not include "*<i>" characters in the description of
--   any properties because such "*</i>" characters may be interpreted as
--   the closing marker for comments in some languages, such as Java or
--   JavaScript, causing the installation of your API's SDK generated by
--   API Gateway to fail.</li>
--   <li><a>mName</a> - The name of the model.</li>
--   <li><a>mId</a> - The identifier for the model resource.</li>
--   <li><a>mDescription</a> - The description of the model.</li>
--   <li><a>mContentType</a> - The content-type for the model.</li>
--   </ul>
model :: Model

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model. Do not include "*<i>"
--   characters in the description of any properties because such "*</i>"
--   characters may be interpreted as the closing marker for comments in
--   some languages, such as Java or JavaScript, causing the installation
--   of your API's SDK generated by API Gateway to fail.
mSchema :: Lens' Model (Maybe Text)

-- | The name of the model.
mName :: Lens' Model (Maybe Text)

-- | The identifier for the model resource.
mId :: Lens' Model (Maybe Text)

-- | The description of the model.
mDescription :: Lens' Model (Maybe Text)

-- | The content-type for the model.
mContentType :: Lens' Model (Maybe Text)

-- | A single patch operation to apply to the specified resource. Please
--   refer to <a>http://tools.ietf.org/html/rfc6902#section-4</a> for an
--   explanation of how each operation is used.
--   
--   <i>See:</i> <a>patchOperation</a> smart constructor.
data PatchOperation

-- | Creates a value of <a>PatchOperation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poOp</a> - An update operation to be performed with this PATCH
--   request. The valid value can be "add", "remove", or "replace". Not all
--   valid operations are supported for a given resource. Support of the
--   operations depends on specific operational contexts. Attempts to apply
--   an unsupported operation on a resource will return an error
--   message.</li>
--   <li><a>poPath</a> - The <tt>op</tt> operation's target, as identified
--   by a <a>JSON Pointer</a> value that references a location within the
--   targeted resource. For example, if the target resource has an
--   updateable property of <tt>{"name":"value"}</tt> , the path for this
--   property is <tt>/name</tt> . If the <tt>name</tt> property value is a
--   JSON object (e.g., <tt>{"name": {"child/name": "child-value"}}</tt> ),
--   the path for the <tt>child/name</tt> property will be
--   <tt><i>name</i>child~1name</tt> . Any slash ("/") character appearing
--   in path names must be escaped with "~1", as shown in the example
--   above. Each <tt>op</tt> operation can have only one <tt>path</tt>
--   associated with it.</li>
--   <li><a>poValue</a> - The new target value of the update
--   operation.</li>
--   <li><a>poFrom</a> - Not supported.</li>
--   </ul>
patchOperation :: PatchOperation

-- | An update operation to be performed with this PATCH request. The valid
--   value can be "add", "remove", or "replace". Not all valid operations
--   are supported for a given resource. Support of the operations depends
--   on specific operational contexts. Attempts to apply an unsupported
--   operation on a resource will return an error message.
poOp :: Lens' PatchOperation (Maybe Op)

-- | The <tt>op</tt> operation's target, as identified by a <a>JSON
--   Pointer</a> value that references a location within the targeted
--   resource. For example, if the target resource has an updateable
--   property of <tt>{"name":"value"}</tt> , the path for this property is
--   <tt>/name</tt> . If the <tt>name</tt> property value is a JSON object
--   (e.g., <tt>{"name": {"child/name": "child-value"}}</tt> ), the path
--   for the <tt>child/name</tt> property will be
--   <tt><i>name</i>child~1name</tt> . Any slash ("/") character appearing
--   in path names must be escaped with "~1", as shown in the example
--   above. Each <tt>op</tt> operation can have only one <tt>path</tt>
--   associated with it.
poPath :: Lens' PatchOperation (Maybe Text)

-- | The new target value of the update operation.
poValue :: Lens' PatchOperation (Maybe Text)

-- | Not supported.
poFrom :: Lens' PatchOperation (Maybe Text)

-- | Quotas configured for a usage plan.
--   
--   <i>See:</i> <a>quotaSettings</a> smart constructor.
data QuotaSettings

-- | Creates a value of <a>QuotaSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qsOffset</a> - The number of requests subtracted from the given
--   limit in the initial time period.</li>
--   <li><a>qsPeriod</a> - The time period in which the limit applies.
--   Valid values are <a>DAY</a>, <a>WEEK</a> or <a>MONTH</a>.</li>
--   <li><a>qsLimit</a> - The maximum number of requests that can be made
--   in a given time period.</li>
--   </ul>
quotaSettings :: QuotaSettings

-- | The number of requests subtracted from the given limit in the initial
--   time period.
qsOffset :: Lens' QuotaSettings (Maybe Int)

-- | The time period in which the limit applies. Valid values are
--   <a>DAY</a>, <a>WEEK</a> or <a>MONTH</a>.
qsPeriod :: Lens' QuotaSettings (Maybe QuotaPeriodType)

-- | The maximum number of requests that can be made in a given time
--   period.
qsLimit :: Lens' QuotaSettings (Maybe Int)

-- | Represents an API resource.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPathPart</a> - The last path segment for this resource.</li>
--   <li><a>rPath</a> - The full path for this resource.</li>
--   <li><a>rId</a> - The resource's identifier.</li>
--   <li><a>rResourceMethods</a> - Gets an API resource's method of a given
--   HTTP verb. The resource methods are a map of methods indexed by
--   methods' HTTP verbs enabled on the resource. This method map is
--   included in the <tt>200 OK</tt> response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .</li>
--   <li><a>rParentId</a> - The parent resource's identifier.</li>
--   </ul>
resource :: Resource

-- | The last path segment for this resource.
rPathPart :: Lens' Resource (Maybe Text)

-- | The full path for this resource.
rPath :: Lens' Resource (Maybe Text)

-- | The resource's identifier.
rId :: Lens' Resource (Maybe Text)

-- | Gets an API resource's method of a given HTTP verb. The resource
--   methods are a map of methods indexed by methods' HTTP verbs enabled on
--   the resource. This method map is included in the <tt>200 OK</tt>
--   response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .
rResourceMethods :: Lens' Resource (HashMap Text Method)

-- | The parent resource's identifier.
rParentId :: Lens' Resource (Maybe Text)

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)

-- | Represents a unique identifier for a version of a deployed
--   <tt>RestApi</tt> that is callable by users.
--   
--   <a>Deploy an API</a>
--   
--   <i>See:</i> <a>stage</a> smart constructor.
data Stage

-- | Creates a value of <a>Stage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDeploymentId</a> - The identifier of the <a>Deployment</a>
--   that the stage points to.</li>
--   <li><a>sVariables</a> - A map that defines the stage variables for a
--   <a>Stage</a> resource. Variable names can have alphanumeric and
--   underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>sDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>sClientCertificateId</a> - The identifier of a client
--   certificate for an API stage.</li>
--   <li><a>sCreatedDate</a> - The date and time that the stage was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterStatus</a> - The status of the cache cluster for
--   the stage, if enabled.</li>
--   <li><a>sMethodSettings</a> - A map that defines the method settings
--   for a <a>Stage</a> resource. Keys (designated as
--   <tt>/{method_setting_key</tt> below) are method paths defined as
--   <tt>{resource_path}/{http_method}</tt> for an individual method
--   override, or <tt><i>*</i>*</tt> for overriding all methods in the
--   stage.</li>
--   <li><a>sLastUpdatedDate</a> - The date and time that information about
--   the stage was last updated, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCacheClusterEnabled</a> - Specifies whether a cache cluster is
--   enabled for the stage.</li>
--   <li><a>sStageName</a> - The name of the stage is the first path
--   segment in the Uniform Resource Identifier (URI) of a call to Amazon
--   API Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   </ul>
stage :: Stage

-- | The identifier of the <a>Deployment</a> that the stage points to.
sDeploymentId :: Lens' Stage (Maybe Text)

-- | A map that defines the stage variables for a <a>Stage</a> resource.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
sVariables :: Lens' Stage (HashMap Text Text)

-- | The version of the associated API documentation.
sDocumentationVersion :: Lens' Stage (Maybe Text)

-- | The identifier of a client certificate for an API stage.
sClientCertificateId :: Lens' Stage (Maybe Text)

-- | The date and time that the stage was created, in <a>ISO 8601
--   format</a> .
sCreatedDate :: Lens' Stage (Maybe UTCTime)

-- | The status of the cache cluster for the stage, if enabled.
sCacheClusterStatus :: Lens' Stage (Maybe CacheClusterStatus)

-- | A map that defines the method settings for a <a>Stage</a> resource.
--   Keys (designated as <tt>/{method_setting_key</tt> below) are method
--   paths defined as <tt>{resource_path}/{http_method}</tt> for an
--   individual method override, or <tt><i>*</i>*</tt> for overriding all
--   methods in the stage.
sMethodSettings :: Lens' Stage (HashMap Text MethodSetting)

-- | The date and time that information about the stage was last updated,
--   in <a>ISO 8601 format</a> .
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

-- | The size of the cache cluster for the stage, if enabled.
sCacheClusterSize :: Lens' Stage (Maybe CacheClusterSize)

-- | Specifies whether a cache cluster is enabled for the stage.
sCacheClusterEnabled :: Lens' Stage (Maybe Bool)

-- | The name of the stage is the first path segment in the Uniform
--   Resource Identifier (URI) of a call to Amazon API Gateway.
sStageName :: Lens' Stage (Maybe Text)

-- | The stage's description.
sDescription :: Lens' Stage (Maybe Text)

-- | A reference to a unique stage identified in the format
--   <tt>{restApiId}/{stage}</tt> .
--   
--   <i>See:</i> <a>stageKey</a> smart constructor.
data StageKey

-- | Creates a value of <a>StageKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>skRestAPIId</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>skStageName</a> - The stage name in the <tt>RestApi</tt> that
--   the stage key references.</li>
--   </ul>
stageKey :: StageKey

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
skRestAPIId :: Lens' StageKey (Maybe Text)

-- | The stage name in the <tt>RestApi</tt> that the stage key references.
skStageName :: Lens' StageKey (Maybe Text)

-- | The API request rate limits.
--   
--   <i>See:</i> <a>throttleSettings</a> smart constructor.
data ThrottleSettings

-- | Creates a value of <a>ThrottleSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsBurstLimit</a> - The API request burst limit, the maximum
--   rate limit over a time ranging from one to a few seconds, depending
--   upon whether the underlying token bucket is at its full capacity.</li>
--   <li><a>tsRateLimit</a> - The API request steady-state rate limit.</li>
--   </ul>
throttleSettings :: ThrottleSettings

-- | The API request burst limit, the maximum rate limit over a time
--   ranging from one to a few seconds, depending upon whether the
--   underlying token bucket is at its full capacity.
tsBurstLimit :: Lens' ThrottleSettings (Maybe Int)

-- | The API request steady-state rate limit.
tsRateLimit :: Lens' ThrottleSettings (Maybe Double)

-- | Represents the usage data of a usage plan.
--   
--   <a>Create and Use Usage Plans</a> , <a>Manage Usage in a Usage
--   Plan</a>
--   
--   <i>See:</i> <a>usage</a> smart constructor.
data Usage

-- | Creates a value of <a>Usage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uUsagePlanId</a> - The plan Id associated with this usage
--   data.</li>
--   <li><a>uEndDate</a> - The ending date of the usage data.</li>
--   <li><a>uItems</a> - The usage data, as daily logs of used and
--   remaining quotas, over the specified time interval indexed over the
--   API keys in a usage plan. For example, <tt>{..., "values" : {
--   "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</tt> , where
--   <tt>{api_key}</tt> stands for an API key value and the daily log entry
--   is of the format <tt>[used quota, remaining quota]</tt> .</li>
--   <li><a>uStartDate</a> - The starting date of the usage data.</li>
--   <li><a>uPosition</a> - Undocumented member.</li>
--   </ul>
usage :: Usage

-- | The plan Id associated with this usage data.
uUsagePlanId :: Lens' Usage (Maybe Text)

-- | The ending date of the usage data.
uEndDate :: Lens' Usage (Maybe Text)

-- | The usage data, as daily logs of used and remaining quotas, over the
--   specified time interval indexed over the API keys in a usage plan. For
--   example, <tt>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90],
--   [100, 10]]}</tt> , where <tt>{api_key}</tt> stands for an API key
--   value and the daily log entry is of the format <tt>[used quota,
--   remaining quota]</tt> .
uItems :: Lens' Usage (HashMap Text [[Integer]])

-- | The starting date of the usage data.
uStartDate :: Lens' Usage (Maybe Text)

-- | Undocumented member.
uPosition :: Lens' Usage (Maybe Text)

-- | Represents a usage plan than can specify who can assess associated API
--   stages with specified request limits and quotas.
--   
--   In a usage plan, you associate an API by specifying the API's Id and a
--   stage name of the specified API. You add plan customers by adding API
--   keys to the plan.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlan</a> smart constructor.
data UsagePlan

-- | Creates a value of <a>UsagePlan</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upApiStages</a> - The associated API stages of a usage
--   plan.</li>
--   <li><a>upName</a> - The name of a usage plan.</li>
--   <li><a>upId</a> - The identifier of a <a>UsagePlan</a> resource.</li>
--   <li><a>upThrottle</a> - The request throttle limits of a usage
--   plan.</li>
--   <li><a>upQuota</a> - The maximum number of permitted requests per a
--   given unit time interval.</li>
--   <li><a>upDescription</a> - The description of a usage plan.</li>
--   <li><a>upProductCode</a> - The AWS Markeplace product identifier to
--   associate with the usage plan as a SaaS product on AWS
--   Marketplace.</li>
--   </ul>
usagePlan :: UsagePlan

-- | The associated API stages of a usage plan.
upApiStages :: Lens' UsagePlan [APIStage]

-- | The name of a usage plan.
upName :: Lens' UsagePlan (Maybe Text)

-- | The identifier of a <a>UsagePlan</a> resource.
upId :: Lens' UsagePlan (Maybe Text)

-- | The request throttle limits of a usage plan.
upThrottle :: Lens' UsagePlan (Maybe ThrottleSettings)

-- | The maximum number of permitted requests per a given unit time
--   interval.
upQuota :: Lens' UsagePlan (Maybe QuotaSettings)

-- | The description of a usage plan.
upDescription :: Lens' UsagePlan (Maybe Text)

-- | The AWS Markeplace product identifier to associate with the usage plan
--   as a SaaS product on AWS Marketplace.
upProductCode :: Lens' UsagePlan (Maybe Text)

-- | Represents a usage plan key to identify a plan customer.
--   
--   To associate an API stage with a selected API key in a usage plan, you
--   must create a UsagePlanKey resource to represent the selected
--   <tt>ApiKey</tt> .
--   
--   " <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlanKey</a> smart constructor.
data UsagePlanKey

-- | Creates a value of <a>UsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upkValue</a> - The value of a usage plan key.</li>
--   <li><a>upkName</a> - The name of a usage plan key.</li>
--   <li><a>upkId</a> - The Id of a usage plan key.</li>
--   <li><a>upkType</a> - The type of a usage plan key. Currently, the
--   valid key type is <tt>API_KEY</tt> .</li>
--   </ul>
usagePlanKey :: UsagePlanKey

-- | The value of a usage plan key.
upkValue :: Lens' UsagePlanKey (Maybe Text)

-- | The name of a usage plan key.
upkName :: Lens' UsagePlanKey (Maybe Text)

-- | The Id of a usage plan key.
upkId :: Lens' UsagePlanKey (Maybe Text)

-- | The type of a usage plan key. Currently, the valid key type is
--   <tt>API_KEY</tt> .
upkType :: Lens' UsagePlanKey (Maybe Text)


-- | Changes information about an <tt>ApiKey</tt> resource.
module Network.AWS.APIGateway.UpdateAPIKey

-- | Creates a value of <a>UpdateAPIKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uakPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uakApiKey</a> - The identifier of the <tt>ApiKey</tt> resource
--   to be updated.</li>
--   </ul>
updateAPIKey :: Text -> UpdateAPIKey

-- | A request to change information about an <tt>ApiKey</tt> resource.
--   
--   <i>See:</i> <a>updateAPIKey</a> smart constructor.
data UpdateAPIKey

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uakPatchOperations :: Lens' UpdateAPIKey [PatchOperation]

-- | The identifier of the <tt>ApiKey</tt> resource to be updated.
uakApiKey :: Lens' UpdateAPIKey Text

-- | Creates a value of <a>APIKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akEnabled</a> - Specifies whether the API Key can be used by
--   callers.</li>
--   <li><a>akValue</a> - The value of the API Key.</li>
--   <li><a>akCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>akCreatedDate</a> - The date when the API Key was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>akName</a> - The name of the API Key.</li>
--   <li><a>akId</a> - The identifier of the API Key.</li>
--   <li><a>akStageKeys</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>akLastUpdatedDate</a> - When the API Key was last updated, in
--   ISO 8601 format.</li>
--   <li><a>akDescription</a> - The description of the API Key.</li>
--   </ul>
apiKey :: APIKey

-- | A resource that can be distributed to callers for executing
--   <a>Method</a> resources that require an API key. API keys can be
--   mapped to any <a>Stage</a> on any <tt>RestApi</tt> , which indicates
--   that the callers with the API key can make requests to that stage.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>apiKey</a> smart constructor.
data APIKey

-- | Specifies whether the API Key can be used by callers.
akEnabled :: Lens' APIKey (Maybe Bool)

-- | The value of the API Key.
akValue :: Lens' APIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
akCustomerId :: Lens' APIKey (Maybe Text)

-- | The date when the API Key was created, in <a>ISO 8601 format</a> .
akCreatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The name of the API Key.
akName :: Lens' APIKey (Maybe Text)

-- | The identifier of the API Key.
akId :: Lens' APIKey (Maybe Text)

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
akStageKeys :: Lens' APIKey [Text]

-- | When the API Key was last updated, in ISO 8601 format.
akLastUpdatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The description of the API Key.
akDescription :: Lens' APIKey (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Data.Data.Data Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance GHC.Show.Show Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance GHC.Read.Read Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateAPIKey.UpdateAPIKey


-- | Changes information about the current <a>Account</a> resource.
module Network.AWS.APIGateway.UpdateAccount

-- | Creates a value of <a>UpdateAccount</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   </ul>
updateAccount :: UpdateAccount

-- | Requests Amazon API Gateway to change information about the current
--   <a>Account</a> resource.
--   
--   <i>See:</i> <a>updateAccount</a> smart constructor.
data UpdateAccount

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uaPatchOperations :: Lens' UpdateAccount [PatchOperation]

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aApiKeyVersion</a> - The version of the API keys used for the
--   account.</li>
--   <li><a>aCloudwatchRoleARN</a> - The ARN of an Amazon CloudWatch role
--   for the current <a>Account</a> .</li>
--   <li><a>aFeatures</a> - A list of features supported for the account.
--   When usage plans are enabled, the features list will include an entry
--   of <tt><a>UsagePlans</a></tt> .</li>
--   <li><a>aThrottleSettings</a> - Specifies the API request limits
--   configured for the current <a>Account</a> .</li>
--   </ul>
account :: Account

-- | Represents an AWS account that is associated with Amazon API Gateway.
--   
--   To view the account info, call <tt>GET</tt> on this resource.
--   
--   <b>Error Codes</b> The following exception may be thrown when the
--   request fails.
--   
--   <ul>
--   <li>UnauthorizedException * NotFoundException *
--   TooManyRequestsException</li>
--   </ul>
--   
--   For detailed error code information, including the corresponding HTTP
--   Status Codes, see <a>API Gateway Error Codes</a>
--   
--   <b>Example: Get the information about an account.</b> <b>Request</b>
--   @<tt>GET <i>account HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns a </tt>200
--   OK@ status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html"</a>,
--   "name": "account", "templated": true }, "self": { "href": "<i>account"
--   }, "account:update": { "href": "</i>account" } }, "cloudwatchRoleArn":
--   "arn:aws:iam::123456789012:role/apigAwsProxyRole", "throttleSettings":
--   { "rateLimit": 500, "burstLimit": 1000 } } </tt> @ In addition to
--   making the REST API call directly, you can use the AWS CLI and an AWS
--   SDK to access this resource.
--   
--   <a>API Gateway Limits</a> <a>Developer Guide</a> , <a>AWS CLI</a>
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | The version of the API keys used for the account.
aApiKeyVersion :: Lens' Account (Maybe Text)

-- | The ARN of an Amazon CloudWatch role for the current <a>Account</a> .
aCloudwatchRoleARN :: Lens' Account (Maybe Text)

-- | A list of features supported for the account. When usage plans are
--   enabled, the features list will include an entry of
--   <tt><a>UsagePlans</a></tt> .
aFeatures :: Lens' Account [Text]

-- | Specifies the API request limits configured for the current
--   <a>Account</a> .
aThrottleSettings :: Lens' Account (Maybe ThrottleSettings)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Data.Data.Data Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance GHC.Show.Show Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance GHC.Read.Read Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateAccount.UpdateAccount
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateAccount.UpdateAccount


-- | Updates an existing <a>Authorizer</a> resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.UpdateAuthorizer

-- | Creates a value of <a>UpdateAuthorizer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uaaPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uaaRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Authorizer</a> resource.</li>
--   <li><a>uaaAuthorizerId</a> - The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
updateAuthorizer :: Text -> Text -> UpdateAuthorizer

-- | Request to update an existing <a>Authorizer</a> resource.
--   
--   <i>See:</i> <a>updateAuthorizer</a> smart constructor.
data UpdateAuthorizer

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uaaPatchOperations :: Lens' UpdateAuthorizer [PatchOperation]

-- | The <tt>RestApi</tt> identifier for the <a>Authorizer</a> resource.
uaaRestAPIId :: Lens' UpdateAuthorizer Text

-- | The identifier of the <a>Authorizer</a> resource.
uaaAuthorizerId :: Lens' UpdateAuthorizer Text

-- | Creates a value of <a>Authorizer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI). For <tt>TOKEN</tt> authorizers,
--   this must be a well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity. For <tt>TOKEN</tt> authorizers, this value
--   should be a regular expression. The incoming token from the client is
--   matched against this expression, and will proceed if the token
--   matches. If the token doesn't match, the client receives a 401
--   Unauthorized response.</li>
--   <li><a>aProviderARNs</a> - A list of the provider ARNs of the
--   authorizer. For an <tt>TOKEN</tt> authorizer, this is not defined. For
--   authorizers of the <tt>COGNITO_USER_POOLS</tt> type, each element
--   corresponds to a user pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .</li>
--   <li><a>aName</a> - [Required] The name of the authorizer.</li>
--   <li><a>aId</a> - The identifier for the authorizer resource.</li>
--   <li><a>aAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If greater than 0, API Gateway will cache
--   authorizer responses. If this field is not set, the default value is
--   300. The maximum value is 3600, or 1 hour.</li>
--   <li><a>aAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>aType</a> - [Required] The type of the authorizer. Currently,
--   the valid type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   <li><a>aIdentitySource</a> - [Required] The source of the identity in
--   an incoming request. For a <tt>TOKEN</tt> authorizer, this value is a
--   mapping expression with the same syntax as integration parameter
--   mappings. The only valid source for tokens is <tt>header</tt>, so the
--   expression should match 'method.request.header.[headerName]'. The
--   value of the header '[headerName]' will be interpreted as the incoming
--   token. For <tt>COGNITO_USER_POOLS</tt> authorizers, this property is
--   used.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the credentials required
--   for the authorizer, if any. Two options are available. To specify an
--   IAM role for Amazon API Gateway to assume, use the role's Amazon
--   Resource Name (ARN). To use resource-based permissions on the Lambda
--   function, specify null.</li>
--   </ul>
authorizer :: Authorizer

-- | Represents an authorization layer for methods. If enabled on a method,
--   API Gateway will activate the authorizer when a client calls the
--   method.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>authorizer</a> smart constructor.
data Authorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI). For <tt>TOKEN</tt> authorizers, this must be a
--   well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   </ul>
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity. For <tt>TOKEN</tt>
--   authorizers, this value should be a regular expression. The incoming
--   token from the client is matched against this expression, and will
--   proceed if the token matches. If the token doesn't match, the client
--   receives a 401 Unauthorized response.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the provider ARNs of the authorizer. For an <tt>TOKEN</tt>
--   authorizer, this is not defined. For authorizers of the
--   <tt>COGNITO_USER_POOLS</tt> type, each element corresponds to a user
--   pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .
aProviderARNs :: Lens' Authorizer [Text]

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
aName :: Lens' Authorizer (Maybe Text)

-- | The identifier for the authorizer resource.
aId :: Lens' Authorizer (Maybe Text)

-- | The TTL in seconds of cached authorizer results. If greater than 0,
--   API Gateway will cache authorizer responses. If this field is not set,
--   the default value is 300. The maximum value is 3600, or 1 hour.
aAuthorizerResultTtlInSeconds :: Lens' Authorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of the authorizer. Currently, the valid
--   type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   </ul>
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming request.
--   For a <tt>TOKEN</tt> authorizer, this value is a mapping expression
--   with the same syntax as integration parameter mappings. The only valid
--   source for tokens is <tt>header</tt>, so the expression should match
--   'method.request.header.[headerName]'. The value of the header
--   '[headerName]' will be interpreted as the incoming token. For
--   <tt>COGNITO_USER_POOLS</tt> authorizers, this property is used.</li>
--   </ul>
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any. Two
--   options are available. To specify an IAM role for Amazon API Gateway
--   to assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
aAuthorizerCredentials :: Lens' Authorizer (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Data.Data.Data Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance GHC.Show.Show Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance GHC.Read.Read Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateAuthorizer.UpdateAuthorizer


-- | Changes information about the <a>BasePathMapping</a> resource.
module Network.AWS.APIGateway.UpdateBasePathMapping

-- | Creates a value of <a>UpdateBasePathMapping</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ubpmPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>ubpmDomainName</a> - The domain name of the
--   <a>BasePathMapping</a> resource to change.</li>
--   <li><a>ubpmBasePath</a> - The base path of the <a>BasePathMapping</a>
--   resource to change.</li>
--   </ul>
updateBasePathMapping :: Text -> Text -> UpdateBasePathMapping

-- | A request to change information about the <a>BasePathMapping</a>
--   resource.
--   
--   <i>See:</i> <a>updateBasePathMapping</a> smart constructor.
data UpdateBasePathMapping

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
ubpmPatchOperations :: Lens' UpdateBasePathMapping [PatchOperation]

-- | The domain name of the <a>BasePathMapping</a> resource to change.
ubpmDomainName :: Lens' UpdateBasePathMapping Text

-- | The base path of the <a>BasePathMapping</a> resource to change.
ubpmBasePath :: Lens' UpdateBasePathMapping Text

-- | Creates a value of <a>BasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpmStage</a> - The name of the API's stage.</li>
--   <li><a>bpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name.</li>
--   <li><a>bpmRestAPIId</a> - The name of the API.</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | Represents the base path that callers of the API must provide as part
--   of the URL after the domain name.
--   
--   A custom domain name plus a <tt>BasePathMapping</tt> specification
--   identifies a deployed <tt>RestApi</tt> in a given stage of the owner
--   <a>Account</a> .<a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>basePathMapping</a> smart constructor.
data BasePathMapping

-- | The name of the API's stage.
bpmStage :: Lens' BasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name.
bpmBasePath :: Lens' BasePathMapping (Maybe Text)

-- | The name of the API.
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Data.Data.Data Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance GHC.Show.Show Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance GHC.Read.Read Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateBasePathMapping.UpdateBasePathMapping


-- | Changes information about an <a>ClientCertificate</a> resource.
module Network.AWS.APIGateway.UpdateClientCertificate

-- | Creates a value of <a>UpdateClientCertificate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uccPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uccClientCertificateId</a> - The identifier of the
--   <a>ClientCertificate</a> resource to be updated.</li>
--   </ul>
updateClientCertificate :: Text -> UpdateClientCertificate

-- | A request to change information about an <a>ClientCertificate</a>
--   resource.
--   
--   <i>See:</i> <a>updateClientCertificate</a> smart constructor.
data UpdateClientCertificate

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uccPatchOperations :: Lens' UpdateClientCertificate [PatchOperation]

-- | The identifier of the <a>ClientCertificate</a> resource to be updated.
uccClientCertificateId :: Lens' UpdateClientCertificate Text

-- | Creates a value of <a>ClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccPemEncodedCertificate</a> - The PEM-encoded public key of the
--   client certificate, which can be used to configure certificate
--   authentication in the integration endpoint .</li>
--   <li><a>ccClientCertificateId</a> - The identifier of the client
--   certificate.</li>
--   <li><a>ccCreatedDate</a> - The date when the client certificate was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccExpirationDate</a> - The date when the client certificate
--   will expire, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccDescription</a> - The description of the client
--   certificate.</li>
--   </ul>
clientCertificate :: ClientCertificate

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used authenticate an API by the back-end
--   server. To authenticate an API client (or user), use a custom
--   <a>Authorizer</a> .<a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>clientCertificate</a> smart constructor.
data ClientCertificate

-- | The PEM-encoded public key of the client certificate, which can be
--   used to configure certificate authentication in the integration
--   endpoint .
ccPemEncodedCertificate :: Lens' ClientCertificate (Maybe Text)

-- | The identifier of the client certificate.
ccClientCertificateId :: Lens' ClientCertificate (Maybe Text)

-- | The date when the client certificate was created, in <a>ISO 8601
--   format</a> .
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The date when the client certificate will expire, in <a>ISO 8601
--   format</a> .
ccExpirationDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The description of the client certificate.
ccDescription :: Lens' ClientCertificate (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Data.Data.Data Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance GHC.Show.Show Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance GHC.Read.Read Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateClientCertificate.UpdateClientCertificate


-- | Changes information about a <a>Deployment</a> resource.
module Network.AWS.APIGateway.UpdateDeployment

-- | Creates a value of <a>UpdateDeployment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>udRestAPIId</a> - The replacement identifier of the
--   <tt>RestApi</tt> resource for the <a>Deployment</a> resource to change
--   information about.</li>
--   <li><a>udDeploymentId</a> - The replacement identifier for the
--   <a>Deployment</a> resource to change information about.</li>
--   </ul>
updateDeployment :: Text -> Text -> UpdateDeployment

-- | Requests Amazon API Gateway to change information about a
--   <a>Deployment</a> resource.
--   
--   <i>See:</i> <a>updateDeployment</a> smart constructor.
data UpdateDeployment

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
udPatchOperations :: Lens' UpdateDeployment [PatchOperation]

-- | The replacement identifier of the <tt>RestApi</tt> resource for the
--   <a>Deployment</a> resource to change information about.
udRestAPIId :: Lens' UpdateDeployment Text

-- | The replacement identifier for the <a>Deployment</a> resource to
--   change information about.
udDeploymentId :: Lens' UpdateDeployment Text

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dApiSummary</a> - A summary of the <tt>RestApi</tt> at the date
--   and time that the deployment resource was created.</li>
--   <li><a>dCreatedDate</a> - The date and time that the deployment
--   resource was created.</li>
--   <li><a>dId</a> - The identifier for the deployment resource.</li>
--   <li><a>dDescription</a> - The description for the deployment
--   resource.</li>
--   </ul>
deployment :: Deployment

-- | An immutable representation of a <tt>RestApi</tt> resource that can be
--   called by users using <tt>Stages</tt> . A deployment must be
--   associated with a <a>Stage</a> for it to be callable over the
--   Internet.
--   
--   To create a deployment, call <tt>POST</tt> on the <tt>Deployments</tt>
--   resource of a <tt>RestApi</tt> . To view, update, or delete a
--   deployment, call <tt>GET</tt> , <tt>PATCH</tt> , or <tt>DELETE</tt> on
--   the specified deployment resource
--   (<tt><i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}</tt>
--   ).<tt>RestApi</tt> , <tt>Deployments</tt> , <a>Stage</a> , <a>AWS
--   CLI</a> , <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | A summary of the <tt>RestApi</tt> at the date and time that the
--   deployment resource was created.
dApiSummary :: Lens' Deployment (HashMap Text (HashMap Text MethodSnapshot))

-- | The date and time that the deployment resource was created.
dCreatedDate :: Lens' Deployment (Maybe UTCTime)

-- | The identifier for the deployment resource.
dId :: Lens' Deployment (Maybe Text)

-- | The description for the deployment resource.
dDescription :: Lens' Deployment (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Data.Data.Data Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance GHC.Show.Show Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance GHC.Read.Read Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateDeployment.UpdateDeployment


-- | Undocumented operation.
module Network.AWS.APIGateway.UpdateDocumentationPart

-- | Creates a value of <a>UpdateDocumentationPart</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udpPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>udpRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-updated documentation part.</li>
--   <li><a>udpDocumentationPartId</a> - [Required] The identifier of the
--   to-be-updated documentation part.</li>
--   </ul>
updateDocumentationPart :: Text -> Text -> UpdateDocumentationPart

-- | Updates an existing documentation part of a given API.
--   
--   <i>See:</i> <a>updateDocumentationPart</a> smart constructor.
data UpdateDocumentationPart

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
udpPatchOperations :: Lens' UpdateDocumentationPart [PatchOperation]

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-updated
--   documentation part.</li>
--   </ul>
udpRestAPIId :: Lens' UpdateDocumentationPart Text

-- | <ul>
--   <li><i>Required</i> The identifier of the to-be-updated documentation
--   part.</li>
--   </ul>
udpDocumentationPartId :: Lens' UpdateDocumentationPart Text

-- | Creates a value of <a>DocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpLocation</a> - The location of the API entity to which the
--   documentation applies. Valid fields depend on the targeted API entity
--   type. All the valid location fields are not required. If not
--   explicitly specified, a valid location field is treated as a wildcard
--   and associated documentation content may be inherited by matching
--   entities, unless overridden.</li>
--   <li><a>dpId</a> - The <a>DocumentationPart</a> identifier, generated
--   by Amazon API Gateway when the <tt>DocumentationPart</tt> is
--   created.</li>
--   <li><a>dpProperties</a> - A content map of API-specific key-value
--   pairs describing the targeted API entity. The map must be encoded as a
--   JSON string, e.g., <tt>"{ "description": "The API does ..." }"</tt> .
--   Only Swagger-compliant documentation-related fields from the
--   <tt>properties</tt> map are exported and, hence, published as part of
--   the API entity definitions, while the original documentation parts are
--   exported in a Swagger extension of
--   <tt>x-amazon-apigateway-documentation</tt> .</li>
--   </ul>
documentationPart :: DocumentationPart

-- | A documentation part for a targeted API entity.
--   
--   A documentation part consists of a content map (<tt>properties</tt> )
--   and a target (<tt>location</tt> ). The target specifies an API entity
--   to which the documentation content applies. The supported API entity
--   types are <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Valid <tt>location</tt> fields depend on
--   the API entity type. All valid fields are not required.
--   
--   The content map is a JSON string of API-specific key-value pairs.
--   Although an API can use any shape for the content map, only the
--   Swagger-compliant documentation fields will be injected into the
--   associated API entity definition in the exported Swagger definition
--   file.
--   
--   <a>Documenting an API</a> , <tt>DocumentationParts</tt>
--   
--   <i>See:</i> <a>documentationPart</a> smart constructor.
data DocumentationPart

-- | The location of the API entity to which the documentation applies.
--   Valid fields depend on the targeted API entity type. All the valid
--   location fields are not required. If not explicitly specified, a valid
--   location field is treated as a wildcard and associated documentation
--   content may be inherited by matching entities, unless overridden.
dpLocation :: Lens' DocumentationPart (Maybe DocumentationPartLocation)

-- | The <a>DocumentationPart</a> identifier, generated by Amazon API
--   Gateway when the <tt>DocumentationPart</tt> is created.
dpId :: Lens' DocumentationPart (Maybe Text)

-- | A content map of API-specific key-value pairs describing the targeted
--   API entity. The map must be encoded as a JSON string, e.g., <tt>"{
--   "description": "The API does ..." }"</tt> . Only Swagger-compliant
--   documentation-related fields from the <tt>properties</tt> map are
--   exported and, hence, published as part of the API entity definitions,
--   while the original documentation parts are exported in a Swagger
--   extension of <tt>x-amazon-apigateway-documentation</tt> .
dpProperties :: Lens' DocumentationPart (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Data.Data.Data Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance GHC.Show.Show Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance GHC.Read.Read Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateDocumentationPart.UpdateDocumentationPart


-- | Undocumented operation.
module Network.AWS.APIGateway.UpdateDocumentationVersion

-- | Creates a value of <a>UpdateDocumentationVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udvPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>udvRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-updated documentation version.</li>
--   <li><a>udvDocumentationVersion</a> - [Required] The version identifier
--   of the to-be-updated documentation version.</li>
--   </ul>
updateDocumentationVersion :: Text -> Text -> UpdateDocumentationVersion

-- | Updates an existing documentation version of an API.
--   
--   <i>See:</i> <a>updateDocumentationVersion</a> smart constructor.
data UpdateDocumentationVersion

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
udvPatchOperations :: Lens' UpdateDocumentationVersion [PatchOperation]

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-updated
--   documentation version.</li>
--   </ul>
udvRestAPIId :: Lens' UpdateDocumentationVersion Text

-- | <ul>
--   <li><i>Required</i> The version identifier of the to-be-updated
--   documentation version.</li>
--   </ul>
udvDocumentationVersion :: Lens' UpdateDocumentationVersion Text

-- | Creates a value of <a>DocumentationVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvCreatedDate</a> - The date when the API documentation
--   snapshot is created.</li>
--   <li><a>dvVersion</a> - The version identifier of the API documentation
--   snapshot.</li>
--   <li><a>dvDescription</a> - The description of the API documentation
--   snapshot.</li>
--   </ul>
documentationVersion :: DocumentationVersion

-- | A snapshot of the documentation of an API.
--   
--   Publishing API documentation involves creating a documentation version
--   associated with an API stage and exporting the versioned documentation
--   to an external (e.g., Swagger) file.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <tt>DocumentationVersions</tt>
--   
--   <i>See:</i> <a>documentationVersion</a> smart constructor.
data DocumentationVersion

-- | The date when the API documentation snapshot is created.
dvCreatedDate :: Lens' DocumentationVersion (Maybe UTCTime)

-- | The version identifier of the API documentation snapshot.
dvVersion :: Lens' DocumentationVersion (Maybe Text)

-- | The description of the API documentation snapshot.
dvDescription :: Lens' DocumentationVersion (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Data.Data.Data Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance GHC.Show.Show Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance GHC.Read.Read Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateDocumentationVersion.UpdateDocumentationVersion


-- | Changes information about the <a>DomainName</a> resource.
module Network.AWS.APIGateway.UpdateDomainName

-- | Creates a value of <a>UpdateDomainName</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udnPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>udnDomainName</a> - The name of the <a>DomainName</a> resource
--   to be changed.</li>
--   </ul>
updateDomainName :: Text -> UpdateDomainName

-- | A request to change information about the <a>DomainName</a> resource.
--   
--   <i>See:</i> <a>updateDomainName</a> smart constructor.
data UpdateDomainName

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
udnPatchOperations :: Lens' UpdateDomainName [PatchOperation]

-- | The name of the <a>DomainName</a> resource to be changed.
udnDomainName :: Lens' UpdateDomainName Text

-- | Creates a value of <a>DomainName</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnCertificateName</a> - The name of the certificate.</li>
--   <li><a>dnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>dnCertificateUploadDate</a> - The date when the certificate was
--   uploaded, in <a>ISO 8601 format</a> .</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution. For more information, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   </ul>
domainName :: DomainName

-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The name of the certificate.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The name of the <a>DomainName</a> resource.
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The date when the certificate was uploaded, in <a>ISO 8601 format</a>
--   .
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution. For more
--   information, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Data.Data.Data Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance GHC.Show.Show Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance GHC.Read.Read Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateDomainName.UpdateDomainName


-- | Represents an update integration.
module Network.AWS.APIGateway.UpdateIntegration

-- | Creates a value of <a>UpdateIntegration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>updPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>updRestAPIId</a> - Represents an update integration request's
--   API identifier.</li>
--   <li><a>updResourceId</a> - Represents an update integration request's
--   resource identifier.</li>
--   <li><a>updHttpMethod</a> - Represents an update integration request's
--   HTTP method.</li>
--   </ul>
updateIntegration :: Text -> Text -> Text -> UpdateIntegration

-- | Represents an update integration request.
--   
--   <i>See:</i> <a>updateIntegration</a> smart constructor.
data UpdateIntegration

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
updPatchOperations :: Lens' UpdateIntegration [PatchOperation]

-- | Represents an update integration request's API identifier.
updRestAPIId :: Lens' UpdateIntegration Text

-- | Represents an update integration request's resource identifier.
updResourceId :: Lens' UpdateIntegration Text

-- | Represents an update integration request's HTTP method.
updHttpMethod :: Lens' UpdateIntegration Text

-- | Creates a value of <a>Integration</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iHttpMethod</a> - Specifies the integration's HTTP method
--   type.</li>
--   <li><a>iRequestTemplates</a> - 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.</li>
--   <li><a>iCredentials</a> - 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 <tt>arn:aws:iam::*:user/*</tt> . To use resource-based
--   permissions on supported AWS services, specify null.</li>
--   <li><a>iRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>iContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>iPassthroughBehavior</a> - 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 <tt>requestTemplates</tt> . There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> 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. * <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415 Unsupported Media Type</tt> response. * <tt>NEVER</tt>
--   rejects the method request with an HTTP <tt>415 Unsupported Media
--   Type</tt> 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.</li>
--   <li><a>iUri</a> - 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 <a>RFC-3986
--   specification</a> . For AWS integrations, the URI should be of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .</li>
--   <li><a>iIntegrationResponses</a> - Specifies the integration's
--   responses. <b>Example: Get integration responses of a method</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a></li>
--   <li><a>iCacheNamespace</a> - Specifies the integration's cache
--   namespace.</li>
--   <li><a>iType</a> - Specifies the integration's type. The valid value
--   is <tt>HTTP</tt> for integrating with an HTTP back end, <tt>AWS</tt>
--   for any AWS service endpoints, <tt>MOCK</tt> for testing without
--   actually invoking the back end, <tt>HTTP_PROXY</tt> for integrating
--   with the HTTP proxy integration, or <tt>AWS_PROXY</tt> for integrating
--   with the Lambda proxy integration type.</li>
--   <li><a>iCacheKeyParameters</a> - Specifies the integration's cache key
--   parameters.</li>
--   </ul>
integration :: Integration

-- | 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.<a>Creating an API</a> ,
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/.html</a>
--   
--   <i>See:</i> <a>integration</a> smart constructor.
data Integration

-- | Specifies the integration's HTTP method type.
iHttpMethod :: Lens' Integration (Maybe Text)

-- | 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.
iRequestTemplates :: Lens' Integration (HashMap Text Text)

-- | 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 <tt>arn:aws:iam::*:user/*</tt> . To
--   use resource-based permissions on supported AWS services, specify
--   null.
iCredentials :: Lens' Integration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
iRequestParameters :: Lens' Integration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> .
--   There are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> 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. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415
--   Unsupported Media Type</tt> response. * <tt>NEVER</tt> rejects the
--   method request with an HTTP <tt>415 Unsupported Media Type</tt>
--   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.
iPassthroughBehavior :: Lens' Integration (Maybe Text)

-- | 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 <a>RFC-3986 specification</a> . For AWS integrations,
--   the URI should be of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .
iUri :: Lens' Integration (Maybe Text)

-- | Specifies the integration's responses. <b>Example: Get integration
--   responses of a method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a>
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)

-- | Specifies the integration's cache namespace.
iCacheNamespace :: Lens' Integration (Maybe Text)

-- | Specifies the integration's type. The valid value is <tt>HTTP</tt> for
--   integrating with an HTTP back end, <tt>AWS</tt> for any AWS service
--   endpoints, <tt>MOCK</tt> for testing without actually invoking the
--   back end, <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration, or <tt>AWS_PROXY</tt> for integrating with the Lambda
--   proxy integration type.
iType :: Lens' Integration (Maybe IntegrationType)

-- | Specifies the integration's cache key parameters.
iCacheKeyParameters :: Lens' Integration [Text]
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Data.Data.Data Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance GHC.Show.Show Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance GHC.Read.Read Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateIntegration.UpdateIntegration


-- | Represents an update integration response.
module Network.AWS.APIGateway.UpdateIntegrationResponse

-- | Creates a value of <a>UpdateIntegrationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uiPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uiRestAPIId</a> - Specifies an update integration response
--   request's API identifier.</li>
--   <li><a>uiResourceId</a> - Specifies an update integration response
--   request's resource identifier.</li>
--   <li><a>uiHttpMethod</a> - Specifies an update integration response
--   request's HTTP method.</li>
--   <li><a>uiStatusCode</a> - Specifies an update integration response
--   request's status code.</li>
--   </ul>
updateIntegrationResponse :: Text -> Text -> Text -> Text -> UpdateIntegrationResponse

-- | Represents an update integration response request.
--   
--   <i>See:</i> <a>updateIntegrationResponse</a> smart constructor.
data UpdateIntegrationResponse

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uiPatchOperations :: Lens' UpdateIntegrationResponse [PatchOperation]

-- | Specifies an update integration response request's API identifier.
uiRestAPIId :: Lens' UpdateIntegrationResponse Text

-- | Specifies an update integration response request's resource
--   identifier.
uiResourceId :: Lens' UpdateIntegrationResponse Text

-- | Specifies an update integration response request's HTTP method.
uiHttpMethod :: Lens' UpdateIntegrationResponse Text

-- | Specifies an update integration response request's status code.
uiStatusCode :: Lens' UpdateIntegrationResponse Text

-- | Creates a value of <a>IntegrationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>intContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>intResponseTemplates</a> - Specifies the templates used to
--   transform the integration response body. Response templates are
--   represented as a key/value map, with a content-type as the key and a
--   template as the value.</li>
--   <li><a>intSelectionPattern</a> - Specifies the regular expression
--   (regex) pattern used to choose an integration response based on the
--   response from the back end. For example, if the success response
--   returns nothing and the error response returns some string, you could
--   use the <tt>.+</tt> regex to match error response. However, make sure
--   that the error response does not contain any newline (<tt>n</tt> )
--   character in such cases. If the back end is an AWS Lambda function,
--   the AWS Lambda function error header is matched. For all other HTTP
--   and AWS back ends, the HTTP status code is matched.</li>
--   <li><a>intStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   <li><a>intResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.</li>
--   </ul>
integrationResponse :: IntegrationResponse

-- | Represents an integration response. The status code must map to an
--   existing <a>MethodResponse</a> , and parameters and templates can be
--   used to transform the back-end response.
--   
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>integrationResponse</a> smart constructor.
data IntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
intContentHandling :: Lens' IntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies the templates used to transform the integration response
--   body. Response templates are represented as a key/value map, with a
--   content-type as the key and a template as the value.
intResponseTemplates :: Lens' IntegrationResponse (HashMap Text Text)

-- | Specifies the regular expression (regex) pattern used to choose an
--   integration response based on the response from the back end. For
--   example, if the success response returns nothing and the error
--   response returns some string, you could use the <tt>.+</tt> regex to
--   match error response. However, make sure that the error response does
--   not contain any newline (<tt>n</tt> ) character in such cases. If the
--   back end is an AWS Lambda function, the AWS Lambda function error
--   header is matched. For all other HTTP and AWS back ends, the HTTP
--   status code is matched.
intSelectionPattern :: Lens' IntegrationResponse (Maybe Text)

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
intStatusCode :: Lens' IntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.
intResponseParameters :: Lens' IntegrationResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Data.Data.Data Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance GHC.Show.Show Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance GHC.Read.Read Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateIntegrationResponse.UpdateIntegrationResponse


-- | Updates an existing <a>Method</a> resource.
module Network.AWS.APIGateway.UpdateMethod

-- | Creates a value of <a>UpdateMethod</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ummPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>ummRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>ummResourceId</a> - The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>ummHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   </ul>
updateMethod :: Text -> Text -> Text -> UpdateMethod

-- | Request to update an existing <a>Method</a> resource.
--   
--   <i>See:</i> <a>updateMethod</a> smart constructor.
data UpdateMethod

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
ummPatchOperations :: Lens' UpdateMethod [PatchOperation]

-- | The <tt>RestApi</tt> identifier for the <a>Method</a> resource.
ummRestAPIId :: Lens' UpdateMethod Text

-- | The <a>Resource</a> identifier for the <a>Method</a> resource.
ummResourceId :: Lens' UpdateMethod Text

-- | The HTTP verb of the <a>Method</a> resource.
ummHttpMethod :: Lens' UpdateMethod Text

-- | Creates a value of <a>Method</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mMethodResponses</a> - Gets a method response associated with a
--   given HTTP status code. The collection of method responses are
--   encapsulated in a key-value map, where the key is a response's HTTP
--   status code and the value is a <a>MethodResponse</a> resource that
--   specifies the response returned to the caller from the back end
--   through the integration response. <b>Example: Get a 200 OK response of
--   a GET method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a></li>
--   <li><a>mHttpMethod</a> - The method's HTTP verb.</li>
--   <li><a>mRequestModels</a> - A key-value map specifying data schemas,
--   represented by <a>Model</a> resources, (as the mapped value) of the
--   request payloads of given content types (as the mapping key).</li>
--   <li><a>mRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key is a method request parameter name matching the pattern
--   of <tt>method.request.{location}.{name}</tt> , where <tt>location</tt>
--   is <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.</li>
--   <li><a>mAuthorizerId</a> - The identifier of an <a>Authorizer</a> to
--   use on this method. The <tt>authorizationType</tt> must be
--   <tt>CUSTOM</tt> .</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type.</li>
--   <li><a>mApiKeyRequired</a> - A boolean flag specifying whether a valid
--   <tt>ApiKey</tt> is required to invoke this method.</li>
--   <li><a>mMethodIntegration</a> - Gets the method's integration
--   responsible for passing the client-submitted request to the back end
--   and performing necessary transformations to make the request compliant
--   with the back end. <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a></li>
--   </ul>
method :: Method

-- | Represents a client-facing interface by which the client calls the API
--   to access back-end resources. A <b>Method</b> resource is integrated
--   with an <a>Integration</a> resource. Both consist of a request and one
--   or more responses. The method request takes the client input that is
--   passed to the back end through the integration request. A method
--   response returns the output from the back end to the client through an
--   integration response. A method request is embodied in a <b>Method</b>
--   resource, whereas an integration request is embodied in an
--   <a>Integration</a> resource. On the other hand, a method response is
--   represented by a <a>MethodResponse</a> resource, whereas an
--   integration response is represented by an <a>IntegrationResponse</a>
--   resource.
--   
--   <b>Example: Retrive the GET method on a specified resource</b>
--   <b>Request</b> The following example request retrieves the information
--   about the GET method on an API resource (<tt>3kzxbg5sa2</tt> ) of an
--   API (<tt>fugvjdxtri</tt> ).
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK@
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": true, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E")"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   }, "methodresponse:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   } }, "responseModels": { "application</i>json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> In the example above, the
--   response template for the </tt>200 OK<tt> response maps the JSON
--   output from the </tt>ListStreams<tt> action in the back end to an XML
--   output. The mapping template is URL-encoded as
--   </tt>%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E@
--   and the output is decoded using the
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference</a>
--   util.urlDecode()&gt; helper function.
--   
--   <a>MethodResponse</a> , <a>Integration</a> ,
--   <a>IntegrationResponse</a> , <a>Resource</a> , <a>Set up an API's
--   method</a>
--   
--   <i>See:</i> <a>method</a> smart constructor.
data Method

-- | Gets a method response associated with a given HTTP status code. The
--   collection of method responses are encapsulated in a key-value map,
--   where the key is a response's HTTP status code and the value is a
--   <a>MethodResponse</a> resource that specifies the response returned to
--   the caller from the back end through the integration response.
--   <b>Example: Get a 200 OK response of a GET method</b> <b>Request</b>
--   @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a>
mMethodResponses :: Lens' Method (HashMap Text MethodResponse)

-- | The method's HTTP verb.
mHttpMethod :: Lens' Method (Maybe Text)

-- | A key-value map specifying data schemas, represented by <a>Model</a>
--   resources, (as the mapped value) of the request payloads of given
--   content types (as the mapping key).
mRequestModels :: Lens' Method (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key is a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.
mRequestParameters :: Lens' Method (HashMap Text Bool)

-- | The identifier of an <a>Authorizer</a> to use on this method. The
--   <tt>authorizationType</tt> must be <tt>CUSTOM</tt> .
mAuthorizerId :: Lens' Method (Maybe Text)

-- | The method's authorization type.
mAuthorizationType :: Lens' Method (Maybe Text)

-- | A boolean flag specifying whether a valid <tt>ApiKey</tt> is required
--   to invoke this method.
mApiKeyRequired :: Lens' Method (Maybe Bool)

-- | Gets the method's integration responsible for passing the
--   client-submitted request to the back end and performing necessary
--   transformations to make the request compliant with the back end.
--   <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a>
mMethodIntegration :: Lens' Method (Maybe Integration)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Data.Data.Data Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance GHC.Show.Show Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance GHC.Read.Read Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateMethod.UpdateMethod
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateMethod.UpdateMethod


-- | Updates an existing <a>MethodResponse</a> resource.
module Network.AWS.APIGateway.UpdateMethodResponse

-- | Creates a value of <a>UpdateMethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>umPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>umRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>umResourceId</a> - The <a>Resource</a> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>umHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   <li><a>umStatusCode</a> - The status code for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
updateMethodResponse :: Text -> Text -> Text -> Text -> UpdateMethodResponse

-- | A request to update an existing <a>MethodResponse</a> resource.
--   
--   <i>See:</i> <a>updateMethodResponse</a> smart constructor.
data UpdateMethodResponse

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
umPatchOperations :: Lens' UpdateMethodResponse [PatchOperation]

-- | The <tt>RestApi</tt> identifier for the <a>MethodResponse</a>
--   resource.
umRestAPIId :: Lens' UpdateMethodResponse Text

-- | The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.
umResourceId :: Lens' UpdateMethodResponse Text

-- | The HTTP verb of the <a>Method</a> resource.
umHttpMethod :: Lens' UpdateMethodResponse Text

-- | The status code for the <a>MethodResponse</a> resource.
umStatusCode :: Lens' UpdateMethodResponse Text

-- | Creates a value of <a>MethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResponseModels</a> - Specifies the <a>Model</a> resources used
--   for the response's content-type. Response models are represented as a
--   key/value map, with a content-type as the key and a <a>Model</a> name
--   as the value.</li>
--   <li><a>mStatusCode</a> - The method response's status code.</li>
--   <li><a>mResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header and the value
--   specifies whether the associated method response header is required or
--   not. The expression of the key must match the pattern
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. Amazon API Gateway passes certain
--   integration response data to the method response headers specified
--   here according to the mapping you prescribe in the API's
--   <a>IntegrationResponse</a> . The integration response data that can be
--   mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   </ul>
methodResponse :: MethodResponse

-- | Represents a method response of a given HTTP status code returned to
--   the client. The method response is passed from the back end through
--   the associated integration response that can be transformed using a
--   mapping template.
--   
--   <b>Example: A </b>MethodResponse<b> instance of an API</b>
--   <b>Request</b> The example request retrieves a <b>MethodResponse</b>
--   of the 200 status code.
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns </tt>200 OK@
--   status and a payload as follows:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" }</tt> @
--   
--   <a>Method</a> , <a>IntegrationResponse</a> , <a>Integration</a>
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>methodResponse</a> smart constructor.
data MethodResponse

-- | Specifies the <a>Model</a> resources used for the response's
--   content-type. Response models are represented as a key/value map, with
--   a content-type as the key and a <a>Model</a> name as the value.
mResponseModels :: Lens' MethodResponse (HashMap Text Text)

-- | The method response's status code.
mStatusCode :: Lens' MethodResponse (Maybe Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header and the value specifies whether the associated
--   method response header is required or not. The expression of the key
--   must match the pattern <tt>method.response.header.{name}</tt> , where
--   <tt>name</tt> is a valid and unique header name. Amazon API Gateway
--   passes certain integration response data to the method response
--   headers specified here according to the mapping you prescribe in the
--   API's <a>IntegrationResponse</a> . The integration response data that
--   can be mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
mResponseParameters :: Lens' MethodResponse (HashMap Text Bool)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Data.Data.Data Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance GHC.Show.Show Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance GHC.Read.Read Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateMethodResponse.UpdateMethodResponse


-- | Changes information about a model.
module Network.AWS.APIGateway.UpdateModel

-- | Creates a value of <a>UpdateModel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uRestAPIId</a> - The <tt>RestApi</tt> identifier under which
--   the model exists.</li>
--   <li><a>uModelName</a> - The name of the model to update.</li>
--   </ul>
updateModel :: Text -> Text -> UpdateModel

-- | Request to update an existing model in an existing <tt>RestApi</tt>
--   resource.
--   
--   <i>See:</i> <a>updateModel</a> smart constructor.
data UpdateModel

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uPatchOperations :: Lens' UpdateModel [PatchOperation]

-- | The <tt>RestApi</tt> identifier under which the model exists.
uRestAPIId :: Lens' UpdateModel Text

-- | The name of the model to update.
uModelName :: Lens' UpdateModel Text

-- | Creates a value of <a>Model</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model. Do not include "*<i>" characters in the description of
--   any properties because such "*</i>" characters may be interpreted as
--   the closing marker for comments in some languages, such as Java or
--   JavaScript, causing the installation of your API's SDK generated by
--   API Gateway to fail.</li>
--   <li><a>mName</a> - The name of the model.</li>
--   <li><a>mId</a> - The identifier for the model resource.</li>
--   <li><a>mDescription</a> - The description of the model.</li>
--   <li><a>mContentType</a> - The content-type for the model.</li>
--   </ul>
model :: Model

-- | Represents the data structure of a method's request or response
--   payload.
--   
--   A request model defines the data structure of the client-supplied
--   request payload. A response model defines the data structure of the
--   response payload returned by the back end. Although not required,
--   models are useful for mapping payloads between the front end and back
--   end.
--   
--   A model is used for generating an API's SDK, validating the input
--   request body, and creating a skeletal mapping template.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>model</a> smart constructor.
data Model

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model. Do not include "*<i>"
--   characters in the description of any properties because such "*</i>"
--   characters may be interpreted as the closing marker for comments in
--   some languages, such as Java or JavaScript, causing the installation
--   of your API's SDK generated by API Gateway to fail.
mSchema :: Lens' Model (Maybe Text)

-- | The name of the model.
mName :: Lens' Model (Maybe Text)

-- | The identifier for the model resource.
mId :: Lens' Model (Maybe Text)

-- | The description of the model.
mDescription :: Lens' Model (Maybe Text)

-- | The content-type for the model.
mContentType :: Lens' Model (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Data.Data.Data Network.AWS.APIGateway.UpdateModel.UpdateModel
instance GHC.Show.Show Network.AWS.APIGateway.UpdateModel.UpdateModel
instance GHC.Read.Read Network.AWS.APIGateway.UpdateModel.UpdateModel
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateModel.UpdateModel
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateModel.UpdateModel


-- | Changes information about a <a>Resource</a> resource.
module Network.AWS.APIGateway.UpdateResource

-- | Creates a value of <a>UpdateResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>urPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>urRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Resource</a> resource.</li>
--   <li><a>urResourceId</a> - The identifier of the <a>Resource</a>
--   resource.</li>
--   </ul>
updateResource :: Text -> Text -> UpdateResource

-- | Request to change information about a <a>Resource</a> resource.
--   
--   <i>See:</i> <a>updateResource</a> smart constructor.
data UpdateResource

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
urPatchOperations :: Lens' UpdateResource [PatchOperation]

-- | The <tt>RestApi</tt> identifier for the <a>Resource</a> resource.
urRestAPIId :: Lens' UpdateResource Text

-- | The identifier of the <a>Resource</a> resource.
urResourceId :: Lens' UpdateResource Text

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPathPart</a> - The last path segment for this resource.</li>
--   <li><a>rPath</a> - The full path for this resource.</li>
--   <li><a>rId</a> - The resource's identifier.</li>
--   <li><a>rResourceMethods</a> - Gets an API resource's method of a given
--   HTTP verb. The resource methods are a map of methods indexed by
--   methods' HTTP verbs enabled on the resource. This method map is
--   included in the <tt>200 OK</tt> response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .</li>
--   <li><a>rParentId</a> - The parent resource's identifier.</li>
--   </ul>
resource :: Resource

-- | Represents an API resource.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | The last path segment for this resource.
rPathPart :: Lens' Resource (Maybe Text)

-- | The full path for this resource.
rPath :: Lens' Resource (Maybe Text)

-- | The resource's identifier.
rId :: Lens' Resource (Maybe Text)

-- | Gets an API resource's method of a given HTTP verb. The resource
--   methods are a map of methods indexed by methods' HTTP verbs enabled on
--   the resource. This method map is included in the <tt>200 OK</tt>
--   response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .
rResourceMethods :: Lens' Resource (HashMap Text Method)

-- | The parent resource's identifier.
rParentId :: Lens' Resource (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Data.Data.Data Network.AWS.APIGateway.UpdateResource.UpdateResource
instance GHC.Show.Show Network.AWS.APIGateway.UpdateResource.UpdateResource
instance GHC.Read.Read Network.AWS.APIGateway.UpdateResource.UpdateResource
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateResource.UpdateResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateResource.UpdateResource


-- | Changes information about the specified API.
module Network.AWS.APIGateway.UpdateRestAPI

-- | Creates a value of <a>UpdateRestAPI</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uraPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uraRestAPIId</a> - The ID of the <tt>RestApi</tt> you want to
--   update.</li>
--   </ul>
updateRestAPI :: Text -> UpdateRestAPI

-- | Request to update an existing <tt>RestApi</tt> resource in your
--   collection.
--   
--   <i>See:</i> <a>updateRestAPI</a> smart constructor.
data UpdateRestAPI

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uraPatchOperations :: Lens' UpdateRestAPI [PatchOperation]

-- | The ID of the <tt>RestApi</tt> you want to update.
uraRestAPIId :: Lens' UpdateRestAPI Text

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Data.Data.Data Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance GHC.Read.Read Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateRestAPI.UpdateRestAPI


-- | Changes information about a <a>Stage</a> resource.
module Network.AWS.APIGateway.UpdateStage

-- | Creates a value of <a>UpdateStage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>usPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>usRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Stage</a> resource to change information
--   about.</li>
--   <li><a>usStageName</a> - The name of the <a>Stage</a> resource to
--   change information about.</li>
--   </ul>
updateStage :: Text -> Text -> UpdateStage

-- | Requests Amazon API Gateway to change information about a <a>Stage</a>
--   resource.
--   
--   <i>See:</i> <a>updateStage</a> smart constructor.
data UpdateStage

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
usPatchOperations :: Lens' UpdateStage [PatchOperation]

-- | The identifier of the <tt>RestApi</tt> resource for the <a>Stage</a>
--   resource to change information about.
usRestAPIId :: Lens' UpdateStage Text

-- | The name of the <a>Stage</a> resource to change information about.
usStageName :: Lens' UpdateStage Text

-- | Creates a value of <a>Stage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDeploymentId</a> - The identifier of the <a>Deployment</a>
--   that the stage points to.</li>
--   <li><a>sVariables</a> - A map that defines the stage variables for a
--   <a>Stage</a> resource. Variable names can have alphanumeric and
--   underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>sDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>sClientCertificateId</a> - The identifier of a client
--   certificate for an API stage.</li>
--   <li><a>sCreatedDate</a> - The date and time that the stage was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterStatus</a> - The status of the cache cluster for
--   the stage, if enabled.</li>
--   <li><a>sMethodSettings</a> - A map that defines the method settings
--   for a <a>Stage</a> resource. Keys (designated as
--   <tt>/{method_setting_key</tt> below) are method paths defined as
--   <tt>{resource_path}/{http_method}</tt> for an individual method
--   override, or <tt><i>*</i>*</tt> for overriding all methods in the
--   stage.</li>
--   <li><a>sLastUpdatedDate</a> - The date and time that information about
--   the stage was last updated, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCacheClusterEnabled</a> - Specifies whether a cache cluster is
--   enabled for the stage.</li>
--   <li><a>sStageName</a> - The name of the stage is the first path
--   segment in the Uniform Resource Identifier (URI) of a call to Amazon
--   API Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   </ul>
stage :: Stage

-- | Represents a unique identifier for a version of a deployed
--   <tt>RestApi</tt> that is callable by users.
--   
--   <a>Deploy an API</a>
--   
--   <i>See:</i> <a>stage</a> smart constructor.
data Stage

-- | The identifier of the <a>Deployment</a> that the stage points to.
sDeploymentId :: Lens' Stage (Maybe Text)

-- | A map that defines the stage variables for a <a>Stage</a> resource.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
sVariables :: Lens' Stage (HashMap Text Text)

-- | The version of the associated API documentation.
sDocumentationVersion :: Lens' Stage (Maybe Text)

-- | The identifier of a client certificate for an API stage.
sClientCertificateId :: Lens' Stage (Maybe Text)

-- | The date and time that the stage was created, in <a>ISO 8601
--   format</a> .
sCreatedDate :: Lens' Stage (Maybe UTCTime)

-- | The status of the cache cluster for the stage, if enabled.
sCacheClusterStatus :: Lens' Stage (Maybe CacheClusterStatus)

-- | A map that defines the method settings for a <a>Stage</a> resource.
--   Keys (designated as <tt>/{method_setting_key</tt> below) are method
--   paths defined as <tt>{resource_path}/{http_method}</tt> for an
--   individual method override, or <tt><i>*</i>*</tt> for overriding all
--   methods in the stage.
sMethodSettings :: Lens' Stage (HashMap Text MethodSetting)

-- | The date and time that information about the stage was last updated,
--   in <a>ISO 8601 format</a> .
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

-- | The size of the cache cluster for the stage, if enabled.
sCacheClusterSize :: Lens' Stage (Maybe CacheClusterSize)

-- | Specifies whether a cache cluster is enabled for the stage.
sCacheClusterEnabled :: Lens' Stage (Maybe Bool)

-- | The name of the stage is the first path segment in the Uniform
--   Resource Identifier (URI) of a call to Amazon API Gateway.
sStageName :: Lens' Stage (Maybe Text)

-- | The stage's description.
sDescription :: Lens' Stage (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Data.Data.Data Network.AWS.APIGateway.UpdateStage.UpdateStage
instance GHC.Show.Show Network.AWS.APIGateway.UpdateStage.UpdateStage
instance GHC.Read.Read Network.AWS.APIGateway.UpdateStage.UpdateStage
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateStage.UpdateStage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateStage.UpdateStage


-- | Grants a temporary extension to the reamining quota of a usage plan
--   associated with a specified API key.
module Network.AWS.APIGateway.UpdateUsage

-- | Creates a value of <a>UpdateUsage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uuPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uuUsagePlanId</a> - The Id of the usage plan associated with
--   the usage data.</li>
--   <li><a>uuKeyId</a> - The identifier of the API key associated with the
--   usage plan in which a temporary extension is granted to the remaining
--   quota.</li>
--   </ul>
updateUsage :: Text -> Text -> UpdateUsage

-- | The PATCH request to grant a temporary extension to the reamining
--   quota of a usage plan associated with a specified API key.
--   
--   <i>See:</i> <a>updateUsage</a> smart constructor.
data UpdateUsage

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uuPatchOperations :: Lens' UpdateUsage [PatchOperation]

-- | The Id of the usage plan associated with the usage data.
uuUsagePlanId :: Lens' UpdateUsage Text

-- | The identifier of the API key associated with the usage plan in which
--   a temporary extension is granted to the remaining quota.
uuKeyId :: Lens' UpdateUsage Text

-- | Creates a value of <a>Usage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uUsagePlanId</a> - The plan Id associated with this usage
--   data.</li>
--   <li><a>uEndDate</a> - The ending date of the usage data.</li>
--   <li><a>uItems</a> - The usage data, as daily logs of used and
--   remaining quotas, over the specified time interval indexed over the
--   API keys in a usage plan. For example, <tt>{..., "values" : {
--   "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</tt> , where
--   <tt>{api_key}</tt> stands for an API key value and the daily log entry
--   is of the format <tt>[used quota, remaining quota]</tt> .</li>
--   <li><a>uStartDate</a> - The starting date of the usage data.</li>
--   <li><a>uPosition</a> - Undocumented member.</li>
--   </ul>
usage :: Usage

-- | Represents the usage data of a usage plan.
--   
--   <a>Create and Use Usage Plans</a> , <a>Manage Usage in a Usage
--   Plan</a>
--   
--   <i>See:</i> <a>usage</a> smart constructor.
data Usage

-- | The plan Id associated with this usage data.
uUsagePlanId :: Lens' Usage (Maybe Text)

-- | The ending date of the usage data.
uEndDate :: Lens' Usage (Maybe Text)

-- | The usage data, as daily logs of used and remaining quotas, over the
--   specified time interval indexed over the API keys in a usage plan. For
--   example, <tt>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90],
--   [100, 10]]}</tt> , where <tt>{api_key}</tt> stands for an API key
--   value and the daily log entry is of the format <tt>[used quota,
--   remaining quota]</tt> .
uItems :: Lens' Usage (HashMap Text [[Integer]])

-- | The starting date of the usage data.
uStartDate :: Lens' Usage (Maybe Text)

-- | Undocumented member.
uPosition :: Lens' Usage (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Data.Data.Data Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance GHC.Show.Show Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance GHC.Read.Read Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateUsage.UpdateUsage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateUsage.UpdateUsage


-- | Updates a usage plan of a given plan Id.
module Network.AWS.APIGateway.UpdateUsagePlan

-- | Creates a value of <a>UpdateUsagePlan</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uupPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uupUsagePlanId</a> - The Id of the to-be-updated usage
--   plan.</li>
--   </ul>
updateUsagePlan :: Text -> UpdateUsagePlan

-- | The PATCH request to update a usage plan of a given plan Id.
--   
--   <i>See:</i> <a>updateUsagePlan</a> smart constructor.
data UpdateUsagePlan

-- | A list of update operations to be applied to the specified resource
--   and in the order specified in this list.
uupPatchOperations :: Lens' UpdateUsagePlan [PatchOperation]

-- | The Id of the to-be-updated usage plan.
uupUsagePlanId :: Lens' UpdateUsagePlan Text

-- | Creates a value of <a>UsagePlan</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upApiStages</a> - The associated API stages of a usage
--   plan.</li>
--   <li><a>upName</a> - The name of a usage plan.</li>
--   <li><a>upId</a> - The identifier of a <a>UsagePlan</a> resource.</li>
--   <li><a>upThrottle</a> - The request throttle limits of a usage
--   plan.</li>
--   <li><a>upQuota</a> - The maximum number of permitted requests per a
--   given unit time interval.</li>
--   <li><a>upDescription</a> - The description of a usage plan.</li>
--   <li><a>upProductCode</a> - The AWS Markeplace product identifier to
--   associate with the usage plan as a SaaS product on AWS
--   Marketplace.</li>
--   </ul>
usagePlan :: UsagePlan

-- | Represents a usage plan than can specify who can assess associated API
--   stages with specified request limits and quotas.
--   
--   In a usage plan, you associate an API by specifying the API's Id and a
--   stage name of the specified API. You add plan customers by adding API
--   keys to the plan.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlan</a> smart constructor.
data UsagePlan

-- | The associated API stages of a usage plan.
upApiStages :: Lens' UsagePlan [APIStage]

-- | The name of a usage plan.
upName :: Lens' UsagePlan (Maybe Text)

-- | The identifier of a <a>UsagePlan</a> resource.
upId :: Lens' UsagePlan (Maybe Text)

-- | The request throttle limits of a usage plan.
upThrottle :: Lens' UsagePlan (Maybe ThrottleSettings)

-- | The maximum number of permitted requests per a given unit time
--   interval.
upQuota :: Lens' UsagePlan (Maybe QuotaSettings)

-- | The description of a usage plan.
upDescription :: Lens' UsagePlan (Maybe Text)

-- | The AWS Markeplace product identifier to associate with the usage plan
--   as a SaaS product on AWS Marketplace.
upProductCode :: Lens' UsagePlan (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Data.Data.Data Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance GHC.Show.Show Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance GHC.Read.Read Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateUsagePlan.UpdateUsagePlan


module Network.AWS.APIGateway.Waiters


-- | Simulate the execution of a <a>Method</a> in your <tt>RestApi</tt>
--   with headers, parameters, and an incoming request body.
module Network.AWS.APIGateway.TestInvokeMethod

-- | Creates a value of <a>TestInvokeMethod</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>timPathWithQueryString</a> - The URI path, including query
--   string, of the simulated invocation request. Use this to specify path
--   parameters and query string parameters.</li>
--   <li><a>timBody</a> - The simulated request body of an incoming
--   invocation request.</li>
--   <li><a>timClientCertificateId</a> - A <a>ClientCertificate</a>
--   identifier to use in the test invocation. API Gateway will use the
--   certificate when making the HTTPS request to the defined back-end
--   endpoint.</li>
--   <li><a>timStageVariables</a> - A key-value map of stage variables to
--   simulate an invocation on a deployed <a>Stage</a> .</li>
--   <li><a>timHeaders</a> - A key-value map of headers to simulate an
--   incoming invocation request.</li>
--   <li><a>timRestAPIId</a> - Specifies a test invoke method request's API
--   identifier.</li>
--   <li><a>timResourceId</a> - Specifies a test invoke method request's
--   resource ID.</li>
--   <li><a>timHttpMethod</a> - Specifies a test invoke method request's
--   HTTP method.</li>
--   </ul>
testInvokeMethod :: Text -> Text -> Text -> TestInvokeMethod

-- | Make a request to simulate the execution of a <a>Method</a> .
--   
--   <i>See:</i> <a>testInvokeMethod</a> smart constructor.
data TestInvokeMethod

-- | The URI path, including query string, of the simulated invocation
--   request. Use this to specify path parameters and query string
--   parameters.
timPathWithQueryString :: Lens' TestInvokeMethod (Maybe Text)

-- | The simulated request body of an incoming invocation request.
timBody :: Lens' TestInvokeMethod (Maybe Text)

-- | A <a>ClientCertificate</a> identifier to use in the test invocation.
--   API Gateway will use the certificate when making the HTTPS request to
--   the defined back-end endpoint.
timClientCertificateId :: Lens' TestInvokeMethod (Maybe Text)

-- | A key-value map of stage variables to simulate an invocation on a
--   deployed <a>Stage</a> .
timStageVariables :: Lens' TestInvokeMethod (HashMap Text Text)

-- | A key-value map of headers to simulate an incoming invocation request.
timHeaders :: Lens' TestInvokeMethod (HashMap Text Text)

-- | Specifies a test invoke method request's API identifier.
timRestAPIId :: Lens' TestInvokeMethod Text

-- | Specifies a test invoke method request's resource ID.
timResourceId :: Lens' TestInvokeMethod Text

-- | Specifies a test invoke method request's HTTP method.
timHttpMethod :: Lens' TestInvokeMethod Text

-- | Creates a value of <a>TestInvokeMethodResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>timrsLog</a> - The Amazon API Gateway execution log for the
--   test invoke request.</li>
--   <li><a>timrsStatus</a> - The HTTP status code.</li>
--   <li><a>timrsBody</a> - The body of the HTTP response.</li>
--   <li><a>timrsLatency</a> - The execution latency of the test invoke
--   request.</li>
--   <li><a>timrsHeaders</a> - The headers of the HTTP response.</li>
--   <li><a>timrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
testInvokeMethodResponse :: Int -> TestInvokeMethodResponse

-- | Represents the response of the test invoke request in the HTTP method.
--   
--   <a>Test API using the API Gateway console</a>
--   
--   <i>See:</i> <a>testInvokeMethodResponse</a> smart constructor.
data TestInvokeMethodResponse

-- | The Amazon API Gateway execution log for the test invoke request.
timrsLog :: Lens' TestInvokeMethodResponse (Maybe Text)

-- | The HTTP status code.
timrsStatus :: Lens' TestInvokeMethodResponse (Maybe Int)

-- | The body of the HTTP response.
timrsBody :: Lens' TestInvokeMethodResponse (Maybe Text)

-- | The execution latency of the test invoke request.
timrsLatency :: Lens' TestInvokeMethodResponse (Maybe Integer)

-- | The headers of the HTTP response.
timrsHeaders :: Lens' TestInvokeMethodResponse (HashMap Text Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
timrsResponseStatus :: Lens' TestInvokeMethodResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
instance Data.Data.Data Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
instance GHC.Show.Show Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
instance GHC.Read.Read Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Data.Data.Data Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance GHC.Show.Show Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance GHC.Read.Read Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance GHC.Classes.Eq Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse


-- | Simulate the execution of an <a>Authorizer</a> in your
--   <tt>RestApi</tt> with headers, parameters, and an incoming request
--   body.
--   
--   <a>Enable custom authorizers</a>
module Network.AWS.APIGateway.TestInvokeAuthorizer

-- | Creates a value of <a>TestInvokeAuthorizer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiaPathWithQueryString</a> - [Optional] The URI path, including
--   query string, of the simulated invocation request. Use this to specify
--   path parameters and query string parameters.</li>
--   <li><a>tiaBody</a> - [Optional] The simulated request body of an
--   incoming invocation request.</li>
--   <li><a>tiaAdditionalContext</a> - [Optional] A key-value map of
--   additional context variables.</li>
--   <li><a>tiaStageVariables</a> - A key-value map of stage variables to
--   simulate an invocation on a deployed <a>Stage</a> .</li>
--   <li><a>tiaHeaders</a> - [Required] A key-value map of headers to
--   simulate an incoming invocation request. This is where the incoming
--   authorization token, or identity source, should be specified.</li>
--   <li><a>tiaRestAPIId</a> - Specifies a test invoke authorizer request's
--   <tt>RestApi</tt> identifier.</li>
--   <li><a>tiaAuthorizerId</a> - Specifies a test invoke authorizer
--   request's <a>Authorizer</a> ID.</li>
--   </ul>
testInvokeAuthorizer :: Text -> Text -> TestInvokeAuthorizer

-- | Make a request to simulate the execution of an <a>Authorizer</a> .
--   
--   <i>See:</i> <a>testInvokeAuthorizer</a> smart constructor.
data TestInvokeAuthorizer

-- | <ul>
--   <li><i>Optional</i> The URI path, including query string, of the
--   simulated invocation request. Use this to specify path parameters and
--   query string parameters.</li>
--   </ul>
tiaPathWithQueryString :: Lens' TestInvokeAuthorizer (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> The simulated request body of an incoming
--   invocation request.</li>
--   </ul>
tiaBody :: Lens' TestInvokeAuthorizer (Maybe Text)

-- | <ul>
--   <li><i>Optional</i> A key-value map of additional context
--   variables.</li>
--   </ul>
tiaAdditionalContext :: Lens' TestInvokeAuthorizer (HashMap Text Text)

-- | A key-value map of stage variables to simulate an invocation on a
--   deployed <a>Stage</a> .
tiaStageVariables :: Lens' TestInvokeAuthorizer (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> A key-value map of headers to simulate an incoming
--   invocation request. This is where the incoming authorization token, or
--   identity source, should be specified.</li>
--   </ul>
tiaHeaders :: Lens' TestInvokeAuthorizer (HashMap Text Text)

-- | Specifies a test invoke authorizer request's <tt>RestApi</tt>
--   identifier.
tiaRestAPIId :: Lens' TestInvokeAuthorizer Text

-- | Specifies a test invoke authorizer request's <a>Authorizer</a> ID.
tiaAuthorizerId :: Lens' TestInvokeAuthorizer Text

-- | Creates a value of <a>TestInvokeAuthorizerResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tiarsLog</a> - The Amazon API Gateway execution log for the
--   test authorizer request.</li>
--   <li><a>tiarsPrincipalId</a> - The principal identity returned by the
--   <a>Authorizer</a></li>
--   <li><a>tiarsLatency</a> - The execution latency of the test authorizer
--   request.</li>
--   <li><a>tiarsAuthorization</a> - Undocumented member.</li>
--   <li><a>tiarsClaims</a> - The <a>open identity claims</a> , with any
--   supported custom attributes, returned from the Cognito Your User Pool
--   configured for the API.</li>
--   <li><a>tiarsClientStatus</a> - The HTTP status code that the client
--   would have received. Value is 0 if the authorizer succeeded.</li>
--   <li><a>tiarsPolicy</a> - The JSON policy document returned by the
--   <a>Authorizer</a></li>
--   <li><a>tiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
testInvokeAuthorizerResponse :: Int -> TestInvokeAuthorizerResponse

-- | Represents the response of the test invoke request for a custom
--   <a>Authorizer</a>
--   
--   <i>See:</i> <a>testInvokeAuthorizerResponse</a> smart constructor.
data TestInvokeAuthorizerResponse

-- | The Amazon API Gateway execution log for the test authorizer request.
tiarsLog :: Lens' TestInvokeAuthorizerResponse (Maybe Text)

-- | The principal identity returned by the <a>Authorizer</a>
tiarsPrincipalId :: Lens' TestInvokeAuthorizerResponse (Maybe Text)

-- | The execution latency of the test authorizer request.
tiarsLatency :: Lens' TestInvokeAuthorizerResponse (Maybe Integer)

-- | Undocumented member.
tiarsAuthorization :: Lens' TestInvokeAuthorizerResponse (HashMap Text [Text])

-- | The <a>open identity claims</a> , with any supported custom
--   attributes, returned from the Cognito Your User Pool configured for
--   the API.
tiarsClaims :: Lens' TestInvokeAuthorizerResponse (HashMap Text Text)

-- | The HTTP status code that the client would have received. Value is 0
--   if the authorizer succeeded.
tiarsClientStatus :: Lens' TestInvokeAuthorizerResponse (Maybe Int)

-- | The JSON policy document returned by the <a>Authorizer</a>
tiarsPolicy :: Lens' TestInvokeAuthorizerResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
tiarsResponseStatus :: Lens' TestInvokeAuthorizerResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
instance Data.Data.Data Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
instance GHC.Show.Show Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
instance GHC.Read.Read Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Data.Data.Data Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance GHC.Show.Show Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance GHC.Read.Read Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance GHC.Classes.Eq Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse


-- | A feature of the Amazon 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.
module Network.AWS.APIGateway.PutRestAPI

-- | Creates a value of <a>PutRestAPI</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>praMode</a> - The <tt>mode</tt> query parameter to specify the
--   update mode. Valid values are "merge" and "overwrite". By default, the
--   update mode is "merge".</li>
--   <li><a>praFailOnWarnings</a> - A query parameter to indicate whether
--   to rollback the API update (<tt>true</tt> ) or not (<tt>false</tt> )
--   when a warning is encountered. The default value is <tt>false</tt>
--   .</li>
--   <li><a>praParameters</a> - Custom headers supplied as part of the
--   request.</li>
--   <li><a>praRestAPIId</a> - The identifier of the <tt>RestApi</tt> to be
--   updated.</li>
--   <li><a>praBody</a> - The PUT request body containing external API
--   definitions. Currently, only Swagger definition JSON files are
--   supported.</li>
--   </ul>
putRestAPI :: Text -> HashMap Text Value -> PutRestAPI

-- | A PUT request to update an existing API, with external API definitions
--   specified as the request body.
--   
--   <i>See:</i> <a>putRestAPI</a> smart constructor.
data PutRestAPI

-- | The <tt>mode</tt> query parameter to specify the update mode. Valid
--   values are "merge" and "overwrite". By default, the update mode is
--   "merge".
praMode :: Lens' PutRestAPI (Maybe PutMode)

-- | A query parameter to indicate whether to rollback the API update
--   (<tt>true</tt> ) or not (<tt>false</tt> ) when a warning is
--   encountered. The default value is <tt>false</tt> .
praFailOnWarnings :: Lens' PutRestAPI (Maybe Bool)

-- | Custom headers supplied as part of the request.
praParameters :: Lens' PutRestAPI (HashMap Text Text)

-- | The identifier of the <tt>RestApi</tt> to be updated.
praRestAPIId :: Lens' PutRestAPI Text

-- | The PUT request body containing external API definitions. Currently,
--   only Swagger definition JSON files are supported.
praBody :: Lens' PutRestAPI (HashMap Text Value)

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Data.Data.Data Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Network.AWS.Data.Body.ToBody Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutRestAPI.PutRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutRestAPI.PutRestAPI


-- | Adds a <a>MethodResponse</a> to an existing <a>Method</a> resource.
module Network.AWS.APIGateway.PutMethodResponse

-- | Creates a value of <a>PutMethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmResponseModels</a> - Specifies the <a>Model</a> resources
--   used for the response's content type. Response models are represented
--   as a key/value map, with a content type as the key and a <a>Model</a>
--   name as the value.</li>
--   <li><a>pmResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header name and the
--   associated value is a Boolean flag indicating whether the method
--   response parameter is required or not. The method response header
--   names must match the pattern of <tt>method.response.header.{name}</tt>
--   , where <tt>name</tt> is a valid and unique header name. The response
--   parameter names defined here are available in the integration response
--   to be mapped from an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   <li><a>pmRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>pmResourceId</a> - The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>pmHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   <li><a>pmStatusCode</a> - The method response's status code.</li>
--   </ul>
putMethodResponse :: Text -> Text -> Text -> Text -> PutMethodResponse

-- | Request to add a <a>MethodResponse</a> to an existing <a>Method</a>
--   resource.
--   
--   <i>See:</i> <a>putMethodResponse</a> smart constructor.
data PutMethodResponse

-- | Specifies the <a>Model</a> resources used for the response's content
--   type. Response models are represented as a key/value map, with a
--   content type as the key and a <a>Model</a> name as the value.
pmResponseModels :: Lens' PutMethodResponse (HashMap Text Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header name and the associated value is a Boolean flag
--   indicating whether the method response parameter is required or not.
--   The method response header names must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The response parameter names defined
--   here are available in the integration response to be mapped from an
--   integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
pmResponseParameters :: Lens' PutMethodResponse (HashMap Text Bool)

-- | The <tt>RestApi</tt> identifier for the <a>Method</a> resource.
pmRestAPIId :: Lens' PutMethodResponse Text

-- | The <a>Resource</a> identifier for the <a>Method</a> resource.
pmResourceId :: Lens' PutMethodResponse Text

-- | The HTTP verb of the <a>Method</a> resource.
pmHttpMethod :: Lens' PutMethodResponse Text

-- | The method response's status code.
pmStatusCode :: Lens' PutMethodResponse Text

-- | Creates a value of <a>MethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResponseModels</a> - Specifies the <a>Model</a> resources used
--   for the response's content-type. Response models are represented as a
--   key/value map, with a content-type as the key and a <a>Model</a> name
--   as the value.</li>
--   <li><a>mStatusCode</a> - The method response's status code.</li>
--   <li><a>mResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header and the value
--   specifies whether the associated method response header is required or
--   not. The expression of the key must match the pattern
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. Amazon API Gateway passes certain
--   integration response data to the method response headers specified
--   here according to the mapping you prescribe in the API's
--   <a>IntegrationResponse</a> . The integration response data that can be
--   mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   </ul>
methodResponse :: MethodResponse

-- | Represents a method response of a given HTTP status code returned to
--   the client. The method response is passed from the back end through
--   the associated integration response that can be transformed using a
--   mapping template.
--   
--   <b>Example: A </b>MethodResponse<b> instance of an API</b>
--   <b>Request</b> The example request retrieves a <b>MethodResponse</b>
--   of the 200 status code.
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns </tt>200 OK@
--   status and a payload as follows:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" }</tt> @
--   
--   <a>Method</a> , <a>IntegrationResponse</a> , <a>Integration</a>
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>methodResponse</a> smart constructor.
data MethodResponse

-- | Specifies the <a>Model</a> resources used for the response's
--   content-type. Response models are represented as a key/value map, with
--   a content-type as the key and a <a>Model</a> name as the value.
mResponseModels :: Lens' MethodResponse (HashMap Text Text)

-- | The method response's status code.
mStatusCode :: Lens' MethodResponse (Maybe Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header and the value specifies whether the associated
--   method response header is required or not. The expression of the key
--   must match the pattern <tt>method.response.header.{name}</tt> , where
--   <tt>name</tt> is a valid and unique header name. Amazon API Gateway
--   passes certain integration response data to the method response
--   headers specified here according to the mapping you prescribe in the
--   API's <a>IntegrationResponse</a> . The integration response data that
--   can be mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
mResponseParameters :: Lens' MethodResponse (HashMap Text Bool)
instance GHC.Generics.Generic Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Data.Data.Data Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance GHC.Show.Show Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance GHC.Read.Read Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutMethodResponse.PutMethodResponse


-- | Add a method to an existing <a>Resource</a> resource.
module Network.AWS.APIGateway.PutMethod

-- | Creates a value of <a>PutMethod</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>putRequestModels</a> - Specifies the <a>Model</a> resources
--   used for the request's content type. Request models are represented as
--   a key/value map, with a content type as the key and a <a>Model</a>
--   name as the value.</li>
--   <li><a>putRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key defines a method request parameter name matching the
--   pattern of <tt>method.request.{location}.{name}</tt> , where
--   <tt>location</tt> is <tt>querystring</tt> , <tt>path</tt> , or
--   <tt>header</tt> and <tt>name</tt> is a valid and unique parameter
--   name. The value associated with the key is a Boolean flag indicating
--   whether the parameter is required (<tt>true</tt> ) or optional
--   (<tt>false</tt> ). The method request parameter names defined here are
--   available in <a>Integration</a> to be mapped to integration request
--   parameters or body-mapping templates.</li>
--   <li><a>putAuthorizerId</a> - Specifies the identifier of an
--   <a>Authorizer</a> to use on this Method, if the type is CUSTOM.</li>
--   <li><a>putApiKeyRequired</a> - Specifies whether the method required a
--   valid <tt>ApiKey</tt> .</li>
--   <li><a>putRestAPIId</a> - The <tt>RestApi</tt> identifier for the new
--   <a>Method</a> resource.</li>
--   <li><a>putResourceId</a> - The <a>Resource</a> identifier for the new
--   <a>Method</a> resource.</li>
--   <li><a>putHttpMethod</a> - Specifies the method request's HTTP method
--   type.</li>
--   <li><a>putAuthorizationType</a> - Specifies the type of authorization
--   used for the method.</li>
--   </ul>
putMethod :: Text -> Text -> Text -> Text -> PutMethod

-- | Request to add a method to an existing <a>Resource</a> resource.
--   
--   <i>See:</i> <a>putMethod</a> smart constructor.
data PutMethod

-- | Specifies the <a>Model</a> resources used for the request's content
--   type. Request models are represented as a key/value map, with a
--   content type as the key and a <a>Model</a> name as the value.
putRequestModels :: Lens' PutMethod (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key defines a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   body-mapping templates.
putRequestParameters :: Lens' PutMethod (HashMap Text Bool)

-- | Specifies the identifier of an <a>Authorizer</a> to use on this
--   Method, if the type is CUSTOM.
putAuthorizerId :: Lens' PutMethod (Maybe Text)

-- | Specifies whether the method required a valid <tt>ApiKey</tt> .
putApiKeyRequired :: Lens' PutMethod (Maybe Bool)

-- | The <tt>RestApi</tt> identifier for the new <a>Method</a> resource.
putRestAPIId :: Lens' PutMethod Text

-- | The <a>Resource</a> identifier for the new <a>Method</a> resource.
putResourceId :: Lens' PutMethod Text

-- | Specifies the method request's HTTP method type.
putHttpMethod :: Lens' PutMethod Text

-- | Specifies the type of authorization used for the method.
putAuthorizationType :: Lens' PutMethod Text

-- | Creates a value of <a>Method</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mMethodResponses</a> - Gets a method response associated with a
--   given HTTP status code. The collection of method responses are
--   encapsulated in a key-value map, where the key is a response's HTTP
--   status code and the value is a <a>MethodResponse</a> resource that
--   specifies the response returned to the caller from the back end
--   through the integration response. <b>Example: Get a 200 OK response of
--   a GET method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a></li>
--   <li><a>mHttpMethod</a> - The method's HTTP verb.</li>
--   <li><a>mRequestModels</a> - A key-value map specifying data schemas,
--   represented by <a>Model</a> resources, (as the mapped value) of the
--   request payloads of given content types (as the mapping key).</li>
--   <li><a>mRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key is a method request parameter name matching the pattern
--   of <tt>method.request.{location}.{name}</tt> , where <tt>location</tt>
--   is <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.</li>
--   <li><a>mAuthorizerId</a> - The identifier of an <a>Authorizer</a> to
--   use on this method. The <tt>authorizationType</tt> must be
--   <tt>CUSTOM</tt> .</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type.</li>
--   <li><a>mApiKeyRequired</a> - A boolean flag specifying whether a valid
--   <tt>ApiKey</tt> is required to invoke this method.</li>
--   <li><a>mMethodIntegration</a> - Gets the method's integration
--   responsible for passing the client-submitted request to the back end
--   and performing necessary transformations to make the request compliant
--   with the back end. <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a></li>
--   </ul>
method :: Method

-- | Represents a client-facing interface by which the client calls the API
--   to access back-end resources. A <b>Method</b> resource is integrated
--   with an <a>Integration</a> resource. Both consist of a request and one
--   or more responses. The method request takes the client input that is
--   passed to the back end through the integration request. A method
--   response returns the output from the back end to the client through an
--   integration response. A method request is embodied in a <b>Method</b>
--   resource, whereas an integration request is embodied in an
--   <a>Integration</a> resource. On the other hand, a method response is
--   represented by a <a>MethodResponse</a> resource, whereas an
--   integration response is represented by an <a>IntegrationResponse</a>
--   resource.
--   
--   <b>Example: Retrive the GET method on a specified resource</b>
--   <b>Request</b> The following example request retrieves the information
--   about the GET method on an API resource (<tt>3kzxbg5sa2</tt> ) of an
--   API (<tt>fugvjdxtri</tt> ).
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK@
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": true, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E")"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   }, "methodresponse:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   } }, "responseModels": { "application</i>json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> In the example above, the
--   response template for the </tt>200 OK<tt> response maps the JSON
--   output from the </tt>ListStreams<tt> action in the back end to an XML
--   output. The mapping template is URL-encoded as
--   </tt>%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E@
--   and the output is decoded using the
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference</a>
--   util.urlDecode()&gt; helper function.
--   
--   <a>MethodResponse</a> , <a>Integration</a> ,
--   <a>IntegrationResponse</a> , <a>Resource</a> , <a>Set up an API's
--   method</a>
--   
--   <i>See:</i> <a>method</a> smart constructor.
data Method

-- | Gets a method response associated with a given HTTP status code. The
--   collection of method responses are encapsulated in a key-value map,
--   where the key is a response's HTTP status code and the value is a
--   <a>MethodResponse</a> resource that specifies the response returned to
--   the caller from the back end through the integration response.
--   <b>Example: Get a 200 OK response of a GET method</b> <b>Request</b>
--   @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a>
mMethodResponses :: Lens' Method (HashMap Text MethodResponse)

-- | The method's HTTP verb.
mHttpMethod :: Lens' Method (Maybe Text)

-- | A key-value map specifying data schemas, represented by <a>Model</a>
--   resources, (as the mapped value) of the request payloads of given
--   content types (as the mapping key).
mRequestModels :: Lens' Method (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key is a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.
mRequestParameters :: Lens' Method (HashMap Text Bool)

-- | The identifier of an <a>Authorizer</a> to use on this method. The
--   <tt>authorizationType</tt> must be <tt>CUSTOM</tt> .
mAuthorizerId :: Lens' Method (Maybe Text)

-- | The method's authorization type.
mAuthorizationType :: Lens' Method (Maybe Text)

-- | A boolean flag specifying whether a valid <tt>ApiKey</tt> is required
--   to invoke this method.
mApiKeyRequired :: Lens' Method (Maybe Bool)

-- | Gets the method's integration responsible for passing the
--   client-submitted request to the back end and performing necessary
--   transformations to make the request compliant with the back end.
--   <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a>
mMethodIntegration :: Lens' Method (Maybe Integration)
instance GHC.Generics.Generic Network.AWS.APIGateway.PutMethod.PutMethod
instance Data.Data.Data Network.AWS.APIGateway.PutMethod.PutMethod
instance GHC.Show.Show Network.AWS.APIGateway.PutMethod.PutMethod
instance GHC.Read.Read Network.AWS.APIGateway.PutMethod.PutMethod
instance GHC.Classes.Eq Network.AWS.APIGateway.PutMethod.PutMethod
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutMethod.PutMethod
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutMethod.PutMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutMethod.PutMethod
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutMethod.PutMethod
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.PutMethod.PutMethod
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutMethod.PutMethod
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutMethod.PutMethod


-- | Represents a put integration.
module Network.AWS.APIGateway.PutIntegrationResponse

-- | Creates a value of <a>PutIntegrationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>piContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>piResponseTemplates</a> - Specifies a put integration
--   response's templates.</li>
--   <li><a>piSelectionPattern</a> - Specifies the selection pattern of a
--   put integration response.</li>
--   <li><a>piResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> must be a valid and unique response header name and
--   <tt>JSON-expression</tt> a valid JSON expression without the <tt>&gt;
--   </tt> prefix.</li>
--   <li><a>piRestAPIId</a> - Specifies a put integration response
--   request's API identifier.</li>
--   <li><a>piResourceId</a> - Specifies a put integration response
--   request's resource identifier.</li>
--   <li><a>piHttpMethod</a> - Specifies a put integration response
--   request's HTTP method.</li>
--   <li><a>piStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   </ul>
putIntegrationResponse :: Text -> Text -> Text -> Text -> PutIntegrationResponse

-- | Represents a put integration response request.
--   
--   <i>See:</i> <a>putIntegrationResponse</a> smart constructor.
data PutIntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
piContentHandling :: Lens' PutIntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies a put integration response's templates.
piResponseTemplates :: Lens' PutIntegrationResponse (HashMap Text Text)

-- | Specifies the selection pattern of a put integration response.
piSelectionPattern :: Lens' PutIntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> must be a valid and unique response header name and
--   <tt>JSON-expression</tt> a valid JSON expression without the <tt>&gt;
--   </tt> prefix.
piResponseParameters :: Lens' PutIntegrationResponse (HashMap Text Text)

-- | Specifies a put integration response request's API identifier.
piRestAPIId :: Lens' PutIntegrationResponse Text

-- | Specifies a put integration response request's resource identifier.
piResourceId :: Lens' PutIntegrationResponse Text

-- | Specifies a put integration response request's HTTP method.
piHttpMethod :: Lens' PutIntegrationResponse Text

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
piStatusCode :: Lens' PutIntegrationResponse Text

-- | Creates a value of <a>IntegrationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>intContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>intResponseTemplates</a> - Specifies the templates used to
--   transform the integration response body. Response templates are
--   represented as a key/value map, with a content-type as the key and a
--   template as the value.</li>
--   <li><a>intSelectionPattern</a> - Specifies the regular expression
--   (regex) pattern used to choose an integration response based on the
--   response from the back end. For example, if the success response
--   returns nothing and the error response returns some string, you could
--   use the <tt>.+</tt> regex to match error response. However, make sure
--   that the error response does not contain any newline (<tt>n</tt> )
--   character in such cases. If the back end is an AWS Lambda function,
--   the AWS Lambda function error header is matched. For all other HTTP
--   and AWS back ends, the HTTP status code is matched.</li>
--   <li><a>intStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   <li><a>intResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.</li>
--   </ul>
integrationResponse :: IntegrationResponse

-- | Represents an integration response. The status code must map to an
--   existing <a>MethodResponse</a> , and parameters and templates can be
--   used to transform the back-end response.
--   
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>integrationResponse</a> smart constructor.
data IntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
intContentHandling :: Lens' IntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies the templates used to transform the integration response
--   body. Response templates are represented as a key/value map, with a
--   content-type as the key and a template as the value.
intResponseTemplates :: Lens' IntegrationResponse (HashMap Text Text)

-- | Specifies the regular expression (regex) pattern used to choose an
--   integration response based on the response from the back end. For
--   example, if the success response returns nothing and the error
--   response returns some string, you could use the <tt>.+</tt> regex to
--   match error response. However, make sure that the error response does
--   not contain any newline (<tt>n</tt> ) character in such cases. If the
--   back end is an AWS Lambda function, the AWS Lambda function error
--   header is matched. For all other HTTP and AWS back ends, the HTTP
--   status code is matched.
intSelectionPattern :: Lens' IntegrationResponse (Maybe Text)

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
intStatusCode :: Lens' IntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.
intResponseParameters :: Lens' IntegrationResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Data.Data.Data Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance GHC.Show.Show Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance GHC.Read.Read Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutIntegrationResponse.PutIntegrationResponse


-- | Represents a put integration.
module Network.AWS.APIGateway.PutIntegration

-- | Creates a value of <a>PutIntegration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pRequestTemplates</a> - 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.</li>
--   <li><a>pCredentials</a> - Specifies whether credentials are required
--   for a put integration.</li>
--   <li><a>pRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>pContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>pPassthroughBehavior</a> - 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
--   <tt>requestTemplates</tt> property on the Integration resource. There
--   are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> passes the request body for unmapped content
--   types through to the integration back end without transformation. *
--   <tt>NEVER</tt> rejects unmapped content types with an HTTP 415
--   'Unsupported Media Type' response. * <tt>WHEN_NO_TEMPLATES</tt> 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.</li>
--   <li><a>pUri</a> - 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:&lt;region&gt;:lambda:path/2015-03-31/functions/&lt;functionArn&gt;/invocations'
--   format.</li>
--   <li><a>pCacheNamespace</a> - Specifies a put integration input's cache
--   namespace.</li>
--   <li><a>pIntegrationHTTPMethod</a> - Specifies a put integration HTTP
--   method. When the integration type is HTTP or AWS, this field is
--   required.</li>
--   <li><a>pCacheKeyParameters</a> - Specifies a put integration input's
--   cache key parameters.</li>
--   <li><a>pRestAPIId</a> - Specifies a put integration request's API
--   identifier.</li>
--   <li><a>pResourceId</a> - Specifies a put integration request's
--   resource ID.</li>
--   <li><a>pHttpMethod</a> - Specifies a put integration request's HTTP
--   method.</li>
--   <li><a>pType</a> - Specifies a put integration input's type.</li>
--   </ul>
putIntegration :: Text -> Text -> Text -> IntegrationType -> PutIntegration

-- | Represents a put integration request.
--   
--   <i>See:</i> <a>putIntegration</a> smart constructor.
data PutIntegration

-- | 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.
pRequestTemplates :: Lens' PutIntegration (HashMap Text Text)

-- | Specifies whether credentials are required for a put integration.
pCredentials :: Lens' PutIntegration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
pRequestParameters :: Lens' PutIntegration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
pContentHandling :: Lens' PutIntegration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> property on the
--   Integration resource. There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> passes the request body for
--   unmapped content types through to the integration back end without
--   transformation. * <tt>NEVER</tt> rejects unmapped content types with
--   an HTTP 415 'Unsupported Media Type' response. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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.
pPassthroughBehavior :: Lens' PutIntegration (Maybe Text)

-- | 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:&lt;region&gt;:lambda:path/2015-03-31/functions/&lt;functionArn&gt;/invocations'
--   format.
pUri :: Lens' PutIntegration (Maybe Text)

-- | Specifies a put integration input's cache namespace.
pCacheNamespace :: Lens' PutIntegration (Maybe Text)

-- | Specifies a put integration HTTP method. When the integration type is
--   HTTP or AWS, this field is required.
pIntegrationHTTPMethod :: Lens' PutIntegration (Maybe Text)

-- | Specifies a put integration input's cache key parameters.
pCacheKeyParameters :: Lens' PutIntegration [Text]

-- | Specifies a put integration request's API identifier.
pRestAPIId :: Lens' PutIntegration Text

-- | Specifies a put integration request's resource ID.
pResourceId :: Lens' PutIntegration Text

-- | Specifies a put integration request's HTTP method.
pHttpMethod :: Lens' PutIntegration Text

-- | Specifies a put integration input's type.
pType :: Lens' PutIntegration IntegrationType

-- | Creates a value of <a>Integration</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iHttpMethod</a> - Specifies the integration's HTTP method
--   type.</li>
--   <li><a>iRequestTemplates</a> - 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.</li>
--   <li><a>iCredentials</a> - 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 <tt>arn:aws:iam::*:user/*</tt> . To use resource-based
--   permissions on supported AWS services, specify null.</li>
--   <li><a>iRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>iContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>iPassthroughBehavior</a> - 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 <tt>requestTemplates</tt> . There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> 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. * <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415 Unsupported Media Type</tt> response. * <tt>NEVER</tt>
--   rejects the method request with an HTTP <tt>415 Unsupported Media
--   Type</tt> 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.</li>
--   <li><a>iUri</a> - 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 <a>RFC-3986
--   specification</a> . For AWS integrations, the URI should be of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .</li>
--   <li><a>iIntegrationResponses</a> - Specifies the integration's
--   responses. <b>Example: Get integration responses of a method</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a></li>
--   <li><a>iCacheNamespace</a> - Specifies the integration's cache
--   namespace.</li>
--   <li><a>iType</a> - Specifies the integration's type. The valid value
--   is <tt>HTTP</tt> for integrating with an HTTP back end, <tt>AWS</tt>
--   for any AWS service endpoints, <tt>MOCK</tt> for testing without
--   actually invoking the back end, <tt>HTTP_PROXY</tt> for integrating
--   with the HTTP proxy integration, or <tt>AWS_PROXY</tt> for integrating
--   with the Lambda proxy integration type.</li>
--   <li><a>iCacheKeyParameters</a> - Specifies the integration's cache key
--   parameters.</li>
--   </ul>
integration :: Integration

-- | 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.<a>Creating an API</a> ,
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/.html</a>
--   
--   <i>See:</i> <a>integration</a> smart constructor.
data Integration

-- | Specifies the integration's HTTP method type.
iHttpMethod :: Lens' Integration (Maybe Text)

-- | 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.
iRequestTemplates :: Lens' Integration (HashMap Text Text)

-- | 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 <tt>arn:aws:iam::*:user/*</tt> . To
--   use resource-based permissions on supported AWS services, specify
--   null.
iCredentials :: Lens' Integration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
iRequestParameters :: Lens' Integration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> .
--   There are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> 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. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415
--   Unsupported Media Type</tt> response. * <tt>NEVER</tt> rejects the
--   method request with an HTTP <tt>415 Unsupported Media Type</tt>
--   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.
iPassthroughBehavior :: Lens' Integration (Maybe Text)

-- | 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 <a>RFC-3986 specification</a> . For AWS integrations,
--   the URI should be of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .
iUri :: Lens' Integration (Maybe Text)

-- | Specifies the integration's responses. <b>Example: Get integration
--   responses of a method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a>
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)

-- | Specifies the integration's cache namespace.
iCacheNamespace :: Lens' Integration (Maybe Text)

-- | Specifies the integration's type. The valid value is <tt>HTTP</tt> for
--   integrating with an HTTP back end, <tt>AWS</tt> for any AWS service
--   endpoints, <tt>MOCK</tt> for testing without actually invoking the
--   back end, <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration, or <tt>AWS_PROXY</tt> for integrating with the Lambda
--   proxy integration type.
iType :: Lens' Integration (Maybe IntegrationType)

-- | Specifies the integration's cache key parameters.
iCacheKeyParameters :: Lens' Integration [Text]
instance GHC.Generics.Generic Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Data.Data.Data Network.AWS.APIGateway.PutIntegration.PutIntegration
instance GHC.Show.Show Network.AWS.APIGateway.PutIntegration.PutIntegration
instance GHC.Read.Read Network.AWS.APIGateway.PutIntegration.PutIntegration
instance GHC.Classes.Eq Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutIntegration.PutIntegration
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutIntegration.PutIntegration


-- | A feature of the Amazon API Gateway control service for creating a new
--   API from an external API definition file.
module Network.AWS.APIGateway.ImportRestAPI

-- | Creates a value of <a>ImportRestAPI</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iraFailOnWarnings</a> - A query parameter to indicate whether
--   to rollback the API creation (<tt>true</tt> ) or not (<tt>false</tt> )
--   when a warning is encountered. The default value is <tt>false</tt>
--   .</li>
--   <li><a>iraParameters</a> - Custom header parameters as part of the
--   request.</li>
--   <li><a>iraBody</a> - The POST request body containing external API
--   definitions. Currently, only Swagger definition JSON files are
--   supported.</li>
--   </ul>
importRestAPI :: HashMap Text Value -> ImportRestAPI

-- | A POST request to import an API to Amazon API Gateway using an input
--   of an API definition file.
--   
--   <i>See:</i> <a>importRestAPI</a> smart constructor.
data ImportRestAPI

-- | A query parameter to indicate whether to rollback the API creation
--   (<tt>true</tt> ) or not (<tt>false</tt> ) when a warning is
--   encountered. The default value is <tt>false</tt> .
iraFailOnWarnings :: Lens' ImportRestAPI (Maybe Bool)

-- | Custom header parameters as part of the request.
iraParameters :: Lens' ImportRestAPI (HashMap Text Text)

-- | The POST request body containing external API definitions. Currently,
--   only Swagger definition JSON files are supported.
iraBody :: Lens' ImportRestAPI (HashMap Text Value)

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Data.Data.Data Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Network.AWS.Data.Body.ToBody Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.ImportRestAPI.ImportRestAPI


-- | Undocumented operation.
module Network.AWS.APIGateway.ImportDocumentationParts

-- | Creates a value of <a>ImportDocumentationParts</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idpMode</a> - A query parameter to indicate whether to
--   overwrite (<tt>OVERWRITE</tt> ) any existing
--   <tt>DocumentationParts</tt> definition or to merge (<tt>MERGE</tt> )
--   the new definition into the existing one. The default value is
--   <tt>MERGE</tt> .</li>
--   <li><a>idpFailOnWarnings</a> - A query parameter to specify whether to
--   rollback the documentation importation (<tt>true</tt> ) or not
--   (<tt>false</tt> ) when a warning is encountered. The default value is
--   <tt>false</tt> .</li>
--   <li><a>idpRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-imported documentation parts.</li>
--   <li><a>idpBody</a> - [Required] Raw byte array representing the
--   to-be-imported documentation parts. To import from a Swagger file,
--   this is a JSON object.</li>
--   </ul>
importDocumentationParts :: Text -> HashMap Text Value -> ImportDocumentationParts

-- | Import documentation parts from an external (e.g., Swagger) definition
--   file.
--   
--   <i>See:</i> <a>importDocumentationParts</a> smart constructor.
data ImportDocumentationParts

-- | A query parameter to indicate whether to overwrite (<tt>OVERWRITE</tt>
--   ) any existing <tt>DocumentationParts</tt> definition or to merge
--   (<tt>MERGE</tt> ) the new definition into the existing one. The
--   default value is <tt>MERGE</tt> .
idpMode :: Lens' ImportDocumentationParts (Maybe PutMode)

-- | A query parameter to specify whether to rollback the documentation
--   importation (<tt>true</tt> ) or not (<tt>false</tt> ) when a warning
--   is encountered. The default value is <tt>false</tt> .
idpFailOnWarnings :: Lens' ImportDocumentationParts (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-imported
--   documentation parts.</li>
--   </ul>
idpRestAPIId :: Lens' ImportDocumentationParts Text

-- | <ul>
--   <li><i>Required</i> Raw byte array representing the to-be-imported
--   documentation parts. To import from a Swagger file, this is a JSON
--   object.</li>
--   </ul>
idpBody :: Lens' ImportDocumentationParts (HashMap Text Value)

-- | Creates a value of <a>ImportDocumentationPartsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>idprsIds</a> - A list of the returned documentation part
--   identifiers.</li>
--   <li><a>idprsWarnings</a> - A list of warning messages reported during
--   import of documentation parts.</li>
--   <li><a>idprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importDocumentationPartsResponse :: Int -> ImportDocumentationPartsResponse

-- | A collection of the imported <a>DocumentationPart</a> identifiers.
--   
--   This is used to return the result when documentation parts in an
--   external (e.g., Swagger) file are imported into Amazon API
--   Gateway<a>Documenting an API</a> , <a>documentationpart:import</a> ,
--   <a>DocumentationPart</a>
--   
--   <i>See:</i> <a>importDocumentationPartsResponse</a> smart constructor.
data ImportDocumentationPartsResponse

-- | A list of the returned documentation part identifiers.
idprsIds :: Lens' ImportDocumentationPartsResponse [Text]

-- | A list of warning messages reported during import of documentation
--   parts.
idprsWarnings :: Lens' ImportDocumentationPartsResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
idprsResponseStatus :: Lens' ImportDocumentationPartsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
instance Data.Data.Data Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
instance GHC.Show.Show Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
instance GHC.Read.Read Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Data.Data.Data Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance GHC.Show.Show Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance GHC.Classes.Eq Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Control.DeepSeq.NFData Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Network.AWS.Data.Body.ToBody Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationParts
instance Control.DeepSeq.NFData Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse


-- | Import API keys from an external source, such as a CSV-formatted file.
module Network.AWS.APIGateway.ImportAPIKeys

-- | Creates a value of <a>ImportAPIKeys</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iakFailOnWarnings</a> - A query parameter to indicate whether
--   to rollback <tt>ApiKey</tt> importation (<tt>true</tt> ) or not
--   (<tt>false</tt> ) when error is encountered.</li>
--   <li><a>iakBody</a> - The payload of the POST request to import API
--   keys. For the payload format, see <a>API Key File Format</a> .</li>
--   <li><a>iakFormat</a> - A query parameter to specify the input format
--   to imported API keys. Currently, only the <tt>csv</tt> format is
--   supported.</li>
--   </ul>
importAPIKeys :: HashMap Text Value -> APIKeysFormat -> ImportAPIKeys

-- | The POST request to import API keys from an external source, such as a
--   CSV-formatted file.
--   
--   <i>See:</i> <a>importAPIKeys</a> smart constructor.
data ImportAPIKeys

-- | A query parameter to indicate whether to rollback <tt>ApiKey</tt>
--   importation (<tt>true</tt> ) or not (<tt>false</tt> ) when error is
--   encountered.
iakFailOnWarnings :: Lens' ImportAPIKeys (Maybe Bool)

-- | The payload of the POST request to import API keys. For the payload
--   format, see <a>API Key File Format</a> .
iakBody :: Lens' ImportAPIKeys (HashMap Text Value)

-- | A query parameter to specify the input format to imported API keys.
--   Currently, only the <tt>csv</tt> format is supported.
iakFormat :: Lens' ImportAPIKeys APIKeysFormat

-- | Creates a value of <a>ImportAPIKeysResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iakrsIds</a> - A list of all the <tt>ApiKey</tt>
--   identifiers.</li>
--   <li><a>iakrsWarnings</a> - A list of warning messages.</li>
--   <li><a>iakrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
importAPIKeysResponse :: Int -> ImportAPIKeysResponse

-- | The identifier of an <tt>ApiKey</tt> used in a <a>UsagePlan</a> .
--   
--   <i>See:</i> <a>importAPIKeysResponse</a> smart constructor.
data ImportAPIKeysResponse

-- | A list of all the <tt>ApiKey</tt> identifiers.
iakrsIds :: Lens' ImportAPIKeysResponse [Text]

-- | A list of warning messages.
iakrsWarnings :: Lens' ImportAPIKeysResponse [Text]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
iakrsResponseStatus :: Lens' ImportAPIKeysResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
instance Data.Data.Data Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
instance GHC.Show.Show Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
instance GHC.Read.Read Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Data.Data.Data Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance GHC.Show.Show Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance GHC.Classes.Eq Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Network.AWS.Data.Body.ToBody Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse


-- | Gets all the usage plans of the caller's account.
module Network.AWS.APIGateway.GetUsagePlans

-- | Creates a value of <a>GetUsagePlans</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gupKeyId</a> - The identifier of the API key associated with
--   the usage plans.</li>
--   <li><a>gupLimit</a> - The number of <a>UsagePlan</a> resources to be
--   returned as the result.</li>
--   <li><a>gupPosition</a> - The zero-based array index specifying the
--   position of the to-be-retrieved <a>UsagePlan</a> resource.</li>
--   </ul>
getUsagePlans :: GetUsagePlans

-- | The GET request to get all the usage plans of the caller's account.
--   
--   <i>See:</i> <a>getUsagePlans</a> smart constructor.
data GetUsagePlans

-- | The identifier of the API key associated with the usage plans.
gupKeyId :: Lens' GetUsagePlans (Maybe Text)

-- | The number of <a>UsagePlan</a> resources to be returned as the result.
gupLimit :: Lens' GetUsagePlans (Maybe Int)

-- | The zero-based array index specifying the position of the
--   to-be-retrieved <a>UsagePlan</a> resource.
gupPosition :: Lens' GetUsagePlans (Maybe Text)

-- | Creates a value of <a>GetUsagePlansResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>guprsItems</a> - Gets the current item when enumerating the
--   collection of <a>UsagePlan</a> .</li>
--   <li><a>guprsPosition</a> - Undocumented member.</li>
--   <li><a>guprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getUsagePlansResponse :: Int -> GetUsagePlansResponse

-- | Represents a collection of usage plans for an AWS account.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>getUsagePlansResponse</a> smart constructor.
data GetUsagePlansResponse

-- | Gets the current item when enumerating the collection of
--   <a>UsagePlan</a> .
guprsItems :: Lens' GetUsagePlansResponse [UsagePlan]

-- | Undocumented member.
guprsPosition :: Lens' GetUsagePlansResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
guprsResponseStatus :: Lens' GetUsagePlansResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetUsagePlans.GetUsagePlans
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse


-- | Gets all the usage plan keys representing the API keys added to a
--   specified usage plan.
module Network.AWS.APIGateway.GetUsagePlanKeys

-- | Creates a value of <a>GetUsagePlanKeys</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gupkNameQuery</a> - A query parameter specifying the name of
--   the to-be-returned usage plan keys.</li>
--   <li><a>gupkLimit</a> - A query parameter specifying the maximum number
--   usage plan keys returned by the GET request.</li>
--   <li><a>gupkPosition</a> - A query parameter specifying the zero-based
--   index specifying the position of a usage plan key.</li>
--   <li><a>gupkUsagePlanId</a> - The Id of the <a>UsagePlan</a> resource
--   representing the usage plan containing the to-be-retrieved
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   </ul>
getUsagePlanKeys :: Text -> GetUsagePlanKeys

-- | The GET request to get all the usage plan keys representing the API
--   keys added to a specified usage plan.
--   
--   <i>See:</i> <a>getUsagePlanKeys</a> smart constructor.
data GetUsagePlanKeys

-- | A query parameter specifying the name of the to-be-returned usage plan
--   keys.
gupkNameQuery :: Lens' GetUsagePlanKeys (Maybe Text)

-- | A query parameter specifying the maximum number usage plan keys
--   returned by the GET request.
gupkLimit :: Lens' GetUsagePlanKeys (Maybe Int)

-- | A query parameter specifying the zero-based index specifying the
--   position of a usage plan key.
gupkPosition :: Lens' GetUsagePlanKeys (Maybe Text)

-- | The Id of the <a>UsagePlan</a> resource representing the usage plan
--   containing the to-be-retrieved <a>UsagePlanKey</a> resource
--   representing a plan customer.
gupkUsagePlanId :: Lens' GetUsagePlanKeys Text

-- | Creates a value of <a>GetUsagePlanKeysResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gupkrsItems</a> - Gets the current item of the usage plan keys
--   collection.</li>
--   <li><a>gupkrsPosition</a> - Undocumented member.</li>
--   <li><a>gupkrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getUsagePlanKeysResponse :: Int -> GetUsagePlanKeysResponse

-- | Represents the collection of usage plan keys added to usage plans for
--   the associated API keys and, possibly, other types of keys.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>getUsagePlanKeysResponse</a> smart constructor.
data GetUsagePlanKeysResponse

-- | Gets the current item of the usage plan keys collection.
gupkrsItems :: Lens' GetUsagePlanKeysResponse [UsagePlanKey]

-- | Undocumented member.
gupkrsPosition :: Lens' GetUsagePlanKeysResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gupkrsResponseStatus :: Lens' GetUsagePlanKeysResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse


-- | Gets a usage plan key of a given key identifier.
module Network.AWS.APIGateway.GetUsagePlanKey

-- | Creates a value of <a>GetUsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gUsagePlanId</a> - The Id of the <a>UsagePlan</a> resource
--   representing the usage plan containing the to-be-retrieved
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   <li><a>gKeyId</a> - The key Id of the to-be-retrieved
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   </ul>
getUsagePlanKey :: Text -> Text -> GetUsagePlanKey

-- | The GET request to get a usage plan key of a given key identifier.
--   
--   <i>See:</i> <a>getUsagePlanKey</a> smart constructor.
data GetUsagePlanKey

-- | The Id of the <a>UsagePlan</a> resource representing the usage plan
--   containing the to-be-retrieved <a>UsagePlanKey</a> resource
--   representing a plan customer.
gUsagePlanId :: Lens' GetUsagePlanKey Text

-- | The key Id of the to-be-retrieved <a>UsagePlanKey</a> resource
--   representing a plan customer.
gKeyId :: Lens' GetUsagePlanKey Text

-- | Creates a value of <a>UsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upkValue</a> - The value of a usage plan key.</li>
--   <li><a>upkName</a> - The name of a usage plan key.</li>
--   <li><a>upkId</a> - The Id of a usage plan key.</li>
--   <li><a>upkType</a> - The type of a usage plan key. Currently, the
--   valid key type is <tt>API_KEY</tt> .</li>
--   </ul>
usagePlanKey :: UsagePlanKey

-- | Represents a usage plan key to identify a plan customer.
--   
--   To associate an API stage with a selected API key in a usage plan, you
--   must create a UsagePlanKey resource to represent the selected
--   <tt>ApiKey</tt> .
--   
--   " <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlanKey</a> smart constructor.
data UsagePlanKey

-- | The value of a usage plan key.
upkValue :: Lens' UsagePlanKey (Maybe Text)

-- | The name of a usage plan key.
upkName :: Lens' UsagePlanKey (Maybe Text)

-- | The Id of a usage plan key.
upkId :: Lens' UsagePlanKey (Maybe Text)

-- | The type of a usage plan key. Currently, the valid key type is
--   <tt>API_KEY</tt> .
upkType :: Lens' UsagePlanKey (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetUsagePlanKey.GetUsagePlanKey


-- | Gets a usage plan of a given plan identifier.
module Network.AWS.APIGateway.GetUsagePlan

-- | Creates a value of <a>GetUsagePlan</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gupUsagePlanId</a> - The identifier of the <a>UsagePlan</a>
--   resource to be retrieved.</li>
--   </ul>
getUsagePlan :: Text -> GetUsagePlan

-- | The GET request to get a usage plan of a given plan identifier.
--   
--   <i>See:</i> <a>getUsagePlan</a> smart constructor.
data GetUsagePlan

-- | The identifier of the <a>UsagePlan</a> resource to be retrieved.
gupUsagePlanId :: Lens' GetUsagePlan Text

-- | Creates a value of <a>UsagePlan</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upApiStages</a> - The associated API stages of a usage
--   plan.</li>
--   <li><a>upName</a> - The name of a usage plan.</li>
--   <li><a>upId</a> - The identifier of a <a>UsagePlan</a> resource.</li>
--   <li><a>upThrottle</a> - The request throttle limits of a usage
--   plan.</li>
--   <li><a>upQuota</a> - The maximum number of permitted requests per a
--   given unit time interval.</li>
--   <li><a>upDescription</a> - The description of a usage plan.</li>
--   <li><a>upProductCode</a> - The AWS Markeplace product identifier to
--   associate with the usage plan as a SaaS product on AWS
--   Marketplace.</li>
--   </ul>
usagePlan :: UsagePlan

-- | Represents a usage plan than can specify who can assess associated API
--   stages with specified request limits and quotas.
--   
--   In a usage plan, you associate an API by specifying the API's Id and a
--   stage name of the specified API. You add plan customers by adding API
--   keys to the plan.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlan</a> smart constructor.
data UsagePlan

-- | The associated API stages of a usage plan.
upApiStages :: Lens' UsagePlan [APIStage]

-- | The name of a usage plan.
upName :: Lens' UsagePlan (Maybe Text)

-- | The identifier of a <a>UsagePlan</a> resource.
upId :: Lens' UsagePlan (Maybe Text)

-- | The request throttle limits of a usage plan.
upThrottle :: Lens' UsagePlan (Maybe ThrottleSettings)

-- | The maximum number of permitted requests per a given unit time
--   interval.
upQuota :: Lens' UsagePlan (Maybe QuotaSettings)

-- | The description of a usage plan.
upDescription :: Lens' UsagePlan (Maybe Text)

-- | The AWS Markeplace product identifier to associate with the usage plan
--   as a SaaS product on AWS Marketplace.
upProductCode :: Lens' UsagePlan (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Data.Data.Data Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance GHC.Show.Show Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance GHC.Read.Read Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetUsagePlan.GetUsagePlan


-- | Gets the usage data of a usage plan in a specified time interval.
module Network.AWS.APIGateway.GetUsage

-- | Creates a value of <a>GetUsage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>guKeyId</a> - The Id of the API key associated with the
--   resultant usage data.</li>
--   <li><a>guLimit</a> - The maximum number of results to be
--   returned.</li>
--   <li><a>guPosition</a> - Position</li>
--   <li><a>guUsagePlanId</a> - The Id of the usage plan associated with
--   the usage data.</li>
--   <li><a>guStartDate</a> - The starting date (e.g., 2016-01-01) of the
--   usage data.</li>
--   <li><a>guEndDate</a> - The ending date (e.g., 2016-12-31) of the usage
--   data.</li>
--   </ul>
getUsage :: Text -> Text -> Text -> GetUsage

-- | The GET request to get the usage data of a usage plan in a specified
--   time interval.
--   
--   <i>See:</i> <a>getUsage</a> smart constructor.
data GetUsage

-- | The Id of the API key associated with the resultant usage data.
guKeyId :: Lens' GetUsage (Maybe Text)

-- | The maximum number of results to be returned.
guLimit :: Lens' GetUsage (Maybe Int)

-- | Position
guPosition :: Lens' GetUsage (Maybe Text)

-- | The Id of the usage plan associated with the usage data.
guUsagePlanId :: Lens' GetUsage Text

-- | The starting date (e.g., 2016-01-01) of the usage data.
guStartDate :: Lens' GetUsage Text

-- | The ending date (e.g., 2016-12-31) of the usage data.
guEndDate :: Lens' GetUsage Text

-- | Creates a value of <a>Usage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uUsagePlanId</a> - The plan Id associated with this usage
--   data.</li>
--   <li><a>uEndDate</a> - The ending date of the usage data.</li>
--   <li><a>uItems</a> - The usage data, as daily logs of used and
--   remaining quotas, over the specified time interval indexed over the
--   API keys in a usage plan. For example, <tt>{..., "values" : {
--   "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</tt> , where
--   <tt>{api_key}</tt> stands for an API key value and the daily log entry
--   is of the format <tt>[used quota, remaining quota]</tt> .</li>
--   <li><a>uStartDate</a> - The starting date of the usage data.</li>
--   <li><a>uPosition</a> - Undocumented member.</li>
--   </ul>
usage :: Usage

-- | Represents the usage data of a usage plan.
--   
--   <a>Create and Use Usage Plans</a> , <a>Manage Usage in a Usage
--   Plan</a>
--   
--   <i>See:</i> <a>usage</a> smart constructor.
data Usage

-- | The plan Id associated with this usage data.
uUsagePlanId :: Lens' Usage (Maybe Text)

-- | The ending date of the usage data.
uEndDate :: Lens' Usage (Maybe Text)

-- | The usage data, as daily logs of used and remaining quotas, over the
--   specified time interval indexed over the API keys in a usage plan. For
--   example, <tt>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90],
--   [100, 10]]}</tt> , where <tt>{api_key}</tt> stands for an API key
--   value and the daily log entry is of the format <tt>[used quota,
--   remaining quota]</tt> .
uItems :: Lens' Usage (HashMap Text [[Integer]])

-- | The starting date of the usage data.
uStartDate :: Lens' Usage (Maybe Text)

-- | Undocumented member.
uPosition :: Lens' Usage (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetUsage.GetUsage
instance Data.Data.Data Network.AWS.APIGateway.GetUsage.GetUsage
instance GHC.Show.Show Network.AWS.APIGateway.GetUsage.GetUsage
instance GHC.Read.Read Network.AWS.APIGateway.GetUsage.GetUsage
instance GHC.Classes.Eq Network.AWS.APIGateway.GetUsage.GetUsage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetUsage.GetUsage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetUsage.GetUsage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsage.GetUsage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetUsage.GetUsage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetUsage.GetUsage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetUsage.GetUsage


-- | Gets information about one or more <a>Stage</a> resources.
module Network.AWS.APIGateway.GetStages

-- | Creates a value of <a>GetStages</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsDeploymentId</a> - The stages' deployment identifiers.</li>
--   <li><a>gsRestAPIId</a> - The stages' API identifiers.</li>
--   </ul>
getStages :: Text -> GetStages

-- | Requests Amazon API Gateway to get information about one or more
--   <a>Stage</a> resources.
--   
--   <i>See:</i> <a>getStages</a> smart constructor.
data GetStages

-- | The stages' deployment identifiers.
gsDeploymentId :: Lens' GetStages (Maybe Text)

-- | The stages' API identifiers.
gsRestAPIId :: Lens' GetStages Text

-- | Creates a value of <a>GetStagesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsrsItem</a> - An individual <a>Stage</a> resource.</li>
--   <li><a>gsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getStagesResponse :: Int -> GetStagesResponse

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
--   
--   <a>Deploying API in Stages</a>
--   
--   <i>See:</i> <a>getStagesResponse</a> smart constructor.
data GetStagesResponse

-- | An individual <a>Stage</a> resource.
gsrsItem :: Lens' GetStagesResponse [Stage]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsrsResponseStatus :: Lens' GetStagesResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetStages.GetStagesResponse
instance Data.Data.Data Network.AWS.APIGateway.GetStages.GetStagesResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetStages.GetStagesResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetStages.GetStagesResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetStages.GetStagesResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetStages.GetStages
instance Data.Data.Data Network.AWS.APIGateway.GetStages.GetStages
instance GHC.Show.Show Network.AWS.APIGateway.GetStages.GetStages
instance GHC.Read.Read Network.AWS.APIGateway.GetStages.GetStages
instance GHC.Classes.Eq Network.AWS.APIGateway.GetStages.GetStages
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetStages.GetStages
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetStages.GetStages
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetStages.GetStages
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetStages.GetStages
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetStages.GetStages
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetStages.GetStages
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetStages.GetStagesResponse


-- | Gets information about a <a>Stage</a> resource.
module Network.AWS.APIGateway.GetStage

-- | Creates a value of <a>GetStage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gssRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Stage</a> resource to get information about.</li>
--   <li><a>gssStageName</a> - The name of the <a>Stage</a> resource to get
--   information about.</li>
--   </ul>
getStage :: Text -> Text -> GetStage

-- | Requests Amazon API Gateway to get information about a <a>Stage</a>
--   resource.
--   
--   <i>See:</i> <a>getStage</a> smart constructor.
data GetStage

-- | The identifier of the <tt>RestApi</tt> resource for the <a>Stage</a>
--   resource to get information about.
gssRestAPIId :: Lens' GetStage Text

-- | The name of the <a>Stage</a> resource to get information about.
gssStageName :: Lens' GetStage Text

-- | Creates a value of <a>Stage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDeploymentId</a> - The identifier of the <a>Deployment</a>
--   that the stage points to.</li>
--   <li><a>sVariables</a> - A map that defines the stage variables for a
--   <a>Stage</a> resource. Variable names can have alphanumeric and
--   underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>sDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>sClientCertificateId</a> - The identifier of a client
--   certificate for an API stage.</li>
--   <li><a>sCreatedDate</a> - The date and time that the stage was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterStatus</a> - The status of the cache cluster for
--   the stage, if enabled.</li>
--   <li><a>sMethodSettings</a> - A map that defines the method settings
--   for a <a>Stage</a> resource. Keys (designated as
--   <tt>/{method_setting_key</tt> below) are method paths defined as
--   <tt>{resource_path}/{http_method}</tt> for an individual method
--   override, or <tt><i>*</i>*</tt> for overriding all methods in the
--   stage.</li>
--   <li><a>sLastUpdatedDate</a> - The date and time that information about
--   the stage was last updated, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCacheClusterEnabled</a> - Specifies whether a cache cluster is
--   enabled for the stage.</li>
--   <li><a>sStageName</a> - The name of the stage is the first path
--   segment in the Uniform Resource Identifier (URI) of a call to Amazon
--   API Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   </ul>
stage :: Stage

-- | Represents a unique identifier for a version of a deployed
--   <tt>RestApi</tt> that is callable by users.
--   
--   <a>Deploy an API</a>
--   
--   <i>See:</i> <a>stage</a> smart constructor.
data Stage

-- | The identifier of the <a>Deployment</a> that the stage points to.
sDeploymentId :: Lens' Stage (Maybe Text)

-- | A map that defines the stage variables for a <a>Stage</a> resource.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
sVariables :: Lens' Stage (HashMap Text Text)

-- | The version of the associated API documentation.
sDocumentationVersion :: Lens' Stage (Maybe Text)

-- | The identifier of a client certificate for an API stage.
sClientCertificateId :: Lens' Stage (Maybe Text)

-- | The date and time that the stage was created, in <a>ISO 8601
--   format</a> .
sCreatedDate :: Lens' Stage (Maybe UTCTime)

-- | The status of the cache cluster for the stage, if enabled.
sCacheClusterStatus :: Lens' Stage (Maybe CacheClusterStatus)

-- | A map that defines the method settings for a <a>Stage</a> resource.
--   Keys (designated as <tt>/{method_setting_key</tt> below) are method
--   paths defined as <tt>{resource_path}/{http_method}</tt> for an
--   individual method override, or <tt><i>*</i>*</tt> for overriding all
--   methods in the stage.
sMethodSettings :: Lens' Stage (HashMap Text MethodSetting)

-- | The date and time that information about the stage was last updated,
--   in <a>ISO 8601 format</a> .
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

-- | The size of the cache cluster for the stage, if enabled.
sCacheClusterSize :: Lens' Stage (Maybe CacheClusterSize)

-- | Specifies whether a cache cluster is enabled for the stage.
sCacheClusterEnabled :: Lens' Stage (Maybe Bool)

-- | The name of the stage is the first path segment in the Uniform
--   Resource Identifier (URI) of a call to Amazon API Gateway.
sStageName :: Lens' Stage (Maybe Text)

-- | The stage's description.
sDescription :: Lens' Stage (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetStage.GetStage
instance Data.Data.Data Network.AWS.APIGateway.GetStage.GetStage
instance GHC.Show.Show Network.AWS.APIGateway.GetStage.GetStage
instance GHC.Read.Read Network.AWS.APIGateway.GetStage.GetStage
instance GHC.Classes.Eq Network.AWS.APIGateway.GetStage.GetStage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetStage.GetStage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetStage.GetStage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetStage.GetStage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetStage.GetStage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetStage.GetStage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetStage.GetStage


-- | Generates a client SDK for a <tt>RestApi</tt> and <a>Stage</a> .
module Network.AWS.APIGateway.GetSDK

-- | Creates a value of <a>GetSDK</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsdkParameters</a> - A key-value map of query string parameters
--   that specify properties of the SDK, depending on the requested
--   <tt>sdkType</tt> . For <tt>sdkType</tt> of <tt>objectivec</tt> , a
--   parameter named <tt>classPrefix</tt> is required. For <tt>sdkType</tt>
--   of <tt>android</tt> , parameters named <tt>groupId</tt> ,
--   <tt>artifactId</tt> , <tt>artifactVersion</tt> , and
--   <tt>invokerPackage</tt> are required.</li>
--   <li><a>gsdkRestAPIId</a> - The identifier of the <tt>RestApi</tt> that
--   the SDK will use.</li>
--   <li><a>gsdkStageName</a> - The name of the <a>Stage</a> that the SDK
--   will use.</li>
--   <li><a>gsdkSdkType</a> - The language for the generated SDK. Currently
--   <tt>javascript</tt> , <tt>android</tt> , and <tt>objectivec</tt> (for
--   iOS) are supported.</li>
--   </ul>
getSDK :: Text -> Text -> Text -> GetSDK

-- | Request a new generated client SDK for a <tt>RestApi</tt> and
--   <a>Stage</a> .
--   
--   <i>See:</i> <a>getSDK</a> smart constructor.
data GetSDK

-- | A key-value map of query string parameters that specify properties of
--   the SDK, depending on the requested <tt>sdkType</tt> . For
--   <tt>sdkType</tt> of <tt>objectivec</tt> , a parameter named
--   <tt>classPrefix</tt> is required. For <tt>sdkType</tt> of
--   <tt>android</tt> , parameters named <tt>groupId</tt> ,
--   <tt>artifactId</tt> , <tt>artifactVersion</tt> , and
--   <tt>invokerPackage</tt> are required.
gsdkParameters :: Lens' GetSDK (HashMap Text Text)

-- | The identifier of the <tt>RestApi</tt> that the SDK will use.
gsdkRestAPIId :: Lens' GetSDK Text

-- | The name of the <a>Stage</a> that the SDK will use.
gsdkStageName :: Lens' GetSDK Text

-- | The language for the generated SDK. Currently <tt>javascript</tt> ,
--   <tt>android</tt> , and <tt>objectivec</tt> (for iOS) are supported.
gsdkSdkType :: Lens' GetSDK Text

-- | Creates a value of <a>GetSDKResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsdkrsBody</a> - The binary blob response to <tt>GetSdk</tt> ,
--   which contains the generated SDK.</li>
--   <li><a>gsdkrsContentDisposition</a> - The content-disposition header
--   value in the HTTP response.</li>
--   <li><a>gsdkrsContentType</a> - The content-type header value in the
--   HTTP response.</li>
--   <li><a>gsdkrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSDKResponse :: Int -> GetSDKResponse

-- | The binary blob response to <tt>GetSdk</tt> , which contains the
--   generated SDK.
--   
--   <i>See:</i> <a>getSDKResponse</a> smart constructor.
data GetSDKResponse

-- | The binary blob response to <tt>GetSdk</tt> , which contains the
--   generated SDK.
gsdkrsBody :: Lens' GetSDKResponse (Maybe (HashMap Text Value))

-- | The content-disposition header value in the HTTP response.
gsdkrsContentDisposition :: Lens' GetSDKResponse (Maybe Text)

-- | The content-type header value in the HTTP response.
gsdkrsContentType :: Lens' GetSDKResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsdkrsResponseStatus :: Lens' GetSDKResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetSDK.GetSDKResponse
instance Data.Data.Data Network.AWS.APIGateway.GetSDK.GetSDKResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetSDK.GetSDKResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetSDK.GetSDKResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetSDK.GetSDK
instance Data.Data.Data Network.AWS.APIGateway.GetSDK.GetSDK
instance GHC.Show.Show Network.AWS.APIGateway.GetSDK.GetSDK
instance GHC.Read.Read Network.AWS.APIGateway.GetSDK.GetSDK
instance GHC.Classes.Eq Network.AWS.APIGateway.GetSDK.GetSDK
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetSDK.GetSDK
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetSDK.GetSDK
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetSDK.GetSDK
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetSDK.GetSDK
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetSDK.GetSDK
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetSDK.GetSDK
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetSDK.GetSDKResponse


-- | Lists the <tt>RestApis</tt> resources for your collection.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetRestAPIs

-- | Creates a value of <a>GetRestAPIs</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>graLimit</a> - The maximum number of <tt>RestApi</tt> resources
--   in the collection to get information about. The default limit is 25.
--   It should be an integer between 1 - 500.</li>
--   <li><a>graPosition</a> - The position of the current <tt>RestApis</tt>
--   resource in the collection to get information about.</li>
--   </ul>
getRestAPIs :: GetRestAPIs

-- | The GET request to list existing <tt>RestApis</tt> defined for your
--   collection.
--   
--   <i>See:</i> <a>getRestAPIs</a> smart constructor.
data GetRestAPIs

-- | The maximum number of <tt>RestApi</tt> resources in the collection to
--   get information about. The default limit is 25. It should be an
--   integer between 1 - 500.
graLimit :: Lens' GetRestAPIs (Maybe Int)

-- | The position of the current <tt>RestApis</tt> resource in the
--   collection to get information about.
graPosition :: Lens' GetRestAPIs (Maybe Text)

-- | Creates a value of <a>GetRestAPIsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grarsItems</a> - An array of links to the current page of
--   <tt>RestApi</tt> resources.</li>
--   <li><a>grarsPosition</a> - Undocumented member.</li>
--   <li><a>grarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getRestAPIsResponse :: Int -> GetRestAPIsResponse

-- | Contains references to your APIs and links that guide you in how to
--   interact with your collection. A collection offers a paginated view of
--   your APIs.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>getRestAPIsResponse</a> smart constructor.
data GetRestAPIsResponse

-- | An array of links to the current page of <tt>RestApi</tt> resources.
grarsItems :: Lens' GetRestAPIsResponse [RestAPI]

-- | Undocumented member.
grarsPosition :: Lens' GetRestAPIsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grarsResponseStatus :: Lens' GetRestAPIsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Data.Data.Data Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance GHC.Show.Show Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance GHC.Read.Read Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance GHC.Classes.Eq Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse


-- | Lists the <tt>RestApi</tt> resource in the collection.
module Network.AWS.APIGateway.GetRestAPI

-- | Creates a value of <a>GetRestAPI</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>graRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource.</li>
--   </ul>
getRestAPI :: Text -> GetRestAPI

-- | The GET request to list an existing <tt>RestApi</tt> defined for your
--   collection.
--   
--   <i>See:</i> <a>getRestAPI</a> smart constructor.
data GetRestAPI

-- | The identifier of the <tt>RestApi</tt> resource.
graRestAPIId :: Lens' GetRestAPI Text

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Data.Data.Data Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance GHC.Read.Read Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetRestAPI.GetRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetRestAPI.GetRestAPI


-- | Lists information about a collection of <a>Resource</a> resources.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetResources

-- | Creates a value of <a>GetResources</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grsLimit</a> - The maximum number of <a>Resource</a> resources
--   in the collection to get information about. The default limit is 25.
--   It should be an integer between 1 - 500.</li>
--   <li><a>grsPosition</a> - The position of the next set of results in
--   the current <tt>Resources</tt> resource to get information about.</li>
--   <li><a>grsRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   Resource.</li>
--   </ul>
getResources :: Text -> GetResources

-- | Request to list information about a collection of resources.
--   
--   <i>See:</i> <a>getResources</a> smart constructor.
data GetResources

-- | The maximum number of <a>Resource</a> resources in the collection to
--   get information about. The default limit is 25. It should be an
--   integer between 1 - 500.
grsLimit :: Lens' GetResources (Maybe Int)

-- | The position of the next set of results in the current
--   <tt>Resources</tt> resource to get information about.
grsPosition :: Lens' GetResources (Maybe Text)

-- | The <tt>RestApi</tt> identifier for the Resource.
grsRestAPIId :: Lens' GetResources Text

-- | Creates a value of <a>GetResourcesResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grrsItems</a> - Gets the current <a>Resource</a> resource in
--   the collection.</li>
--   <li><a>grrsPosition</a> - Undocumented member.</li>
--   <li><a>grrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getResourcesResponse :: Int -> GetResourcesResponse

-- | Represents a collection of <a>Resource</a> resources.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>getResourcesResponse</a> smart constructor.
data GetResourcesResponse

-- | Gets the current <a>Resource</a> resource in the collection.
grrsItems :: Lens' GetResourcesResponse [Resource]

-- | Undocumented member.
grrsPosition :: Lens' GetResourcesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
grrsResponseStatus :: Lens' GetResourcesResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance Data.Data.Data Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetResources.GetResources
instance Data.Data.Data Network.AWS.APIGateway.GetResources.GetResources
instance GHC.Show.Show Network.AWS.APIGateway.GetResources.GetResources
instance GHC.Read.Read Network.AWS.APIGateway.GetResources.GetResources
instance GHC.Classes.Eq Network.AWS.APIGateway.GetResources.GetResources
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetResources.GetResources
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetResources.GetResources
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetResources.GetResources
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetResources.GetResources
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetResources.GetResources
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetResources.GetResources
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetResources.GetResources
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetResources.GetResourcesResponse


-- | Lists information about a resource.
module Network.AWS.APIGateway.GetResource

-- | Creates a value of <a>GetResource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>grRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   resource.</li>
--   <li><a>grResourceId</a> - The identifier for the <a>Resource</a>
--   resource.</li>
--   </ul>
getResource :: Text -> Text -> GetResource

-- | Request to list information about a resource.
--   
--   <i>See:</i> <a>getResource</a> smart constructor.
data GetResource

-- | The <tt>RestApi</tt> identifier for the resource.
grRestAPIId :: Lens' GetResource Text

-- | The identifier for the <a>Resource</a> resource.
grResourceId :: Lens' GetResource Text

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPathPart</a> - The last path segment for this resource.</li>
--   <li><a>rPath</a> - The full path for this resource.</li>
--   <li><a>rId</a> - The resource's identifier.</li>
--   <li><a>rResourceMethods</a> - Gets an API resource's method of a given
--   HTTP verb. The resource methods are a map of methods indexed by
--   methods' HTTP verbs enabled on the resource. This method map is
--   included in the <tt>200 OK</tt> response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .</li>
--   <li><a>rParentId</a> - The parent resource's identifier.</li>
--   </ul>
resource :: Resource

-- | Represents an API resource.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | The last path segment for this resource.
rPathPart :: Lens' Resource (Maybe Text)

-- | The full path for this resource.
rPath :: Lens' Resource (Maybe Text)

-- | The resource's identifier.
rId :: Lens' Resource (Maybe Text)

-- | Gets an API resource's method of a given HTTP verb. The resource
--   methods are a map of methods indexed by methods' HTTP verbs enabled on
--   the resource. This method map is included in the <tt>200 OK</tt>
--   response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .
rResourceMethods :: Lens' Resource (HashMap Text Method)

-- | The parent resource's identifier.
rParentId :: Lens' Resource (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetResource.GetResource
instance Data.Data.Data Network.AWS.APIGateway.GetResource.GetResource
instance GHC.Show.Show Network.AWS.APIGateway.GetResource.GetResource
instance GHC.Read.Read Network.AWS.APIGateway.GetResource.GetResource
instance GHC.Classes.Eq Network.AWS.APIGateway.GetResource.GetResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetResource.GetResource
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetResource.GetResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetResource.GetResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetResource.GetResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetResource.GetResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetResource.GetResource


-- | Describes existing <tt>Models</tt> defined for a <tt>RestApi</tt>
--   resource.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetModels

-- | Creates a value of <a>GetModels</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmsLimit</a> - The maximum number of models in the collection
--   to get information about. The default limit is 25. It should be an
--   integer between 1 - 500.</li>
--   <li><a>gmsPosition</a> - The position of the next set of results in
--   the <tt>Models</tt> resource to get information about.</li>
--   <li><a>gmsRestAPIId</a> - The <tt>RestApi</tt> identifier.</li>
--   </ul>
getModels :: Text -> GetModels

-- | Request to list existing <tt>Models</tt> defined for a
--   <tt>RestApi</tt> resource.
--   
--   <i>See:</i> <a>getModels</a> smart constructor.
data GetModels

-- | The maximum number of models in the collection to get information
--   about. The default limit is 25. It should be an integer between 1 -
--   500.
gmsLimit :: Lens' GetModels (Maybe Int)

-- | The position of the next set of results in the <tt>Models</tt>
--   resource to get information about.
gmsPosition :: Lens' GetModels (Maybe Text)

-- | The <tt>RestApi</tt> identifier.
gmsRestAPIId :: Lens' GetModels Text

-- | Creates a value of <a>GetModelsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmrsItems</a> - Gets the current <a>Model</a> resource in the
--   collection.</li>
--   <li><a>gmrsPosition</a> - Undocumented member.</li>
--   <li><a>gmrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getModelsResponse :: Int -> GetModelsResponse

-- | Represents a collection of <a>Model</a> resources.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>getModelsResponse</a> smart constructor.
data GetModelsResponse

-- | Gets the current <a>Model</a> resource in the collection.
gmrsItems :: Lens' GetModelsResponse [Model]

-- | Undocumented member.
gmrsPosition :: Lens' GetModelsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gmrsResponseStatus :: Lens' GetModelsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetModels.GetModelsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetModels.GetModelsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetModels.GetModelsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetModels.GetModelsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetModels.GetModelsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetModels.GetModels
instance Data.Data.Data Network.AWS.APIGateway.GetModels.GetModels
instance GHC.Show.Show Network.AWS.APIGateway.GetModels.GetModels
instance GHC.Read.Read Network.AWS.APIGateway.GetModels.GetModels
instance GHC.Classes.Eq Network.AWS.APIGateway.GetModels.GetModels
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetModels.GetModels
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetModels.GetModels
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetModels.GetModels
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModels.GetModels
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetModels.GetModels
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetModels.GetModels
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetModels.GetModels
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModels.GetModelsResponse


-- | Generates a sample mapping template that can be used to transform a
--   payload into the structure of a model.
module Network.AWS.APIGateway.GetModelTemplate

-- | Creates a value of <a>GetModelTemplate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmtRestAPIId</a> - The ID of the <tt>RestApi</tt> under which
--   the model exists.</li>
--   <li><a>gmtModelName</a> - The name of the model for which to generate
--   a template.</li>
--   </ul>
getModelTemplate :: Text -> Text -> GetModelTemplate

-- | Request to generate a sample mapping template used to transform the
--   payload.
--   
--   <i>See:</i> <a>getModelTemplate</a> smart constructor.
data GetModelTemplate

-- | The ID of the <tt>RestApi</tt> under which the model exists.
gmtRestAPIId :: Lens' GetModelTemplate Text

-- | The name of the model for which to generate a template.
gmtModelName :: Lens' GetModelTemplate Text

-- | Creates a value of <a>GetModelTemplateResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmtrsValue</a> - The Apache <a>Velocity Template Language
--   (VTL)</a> template content used for the template resource.</li>
--   <li><a>gmtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getModelTemplateResponse :: Int -> GetModelTemplateResponse

-- | Represents a mapping template used to transform a payload.
--   
--   <a>Mapping Templates</a>
--   
--   <i>See:</i> <a>getModelTemplateResponse</a> smart constructor.
data GetModelTemplateResponse

-- | The Apache <a>Velocity Template Language (VTL)</a> template content
--   used for the template resource.
gmtrsValue :: Lens' GetModelTemplateResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gmtrsResponseStatus :: Lens' GetModelTemplateResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
instance Data.Data.Data Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Data.Data.Data Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance GHC.Show.Show Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance GHC.Read.Read Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance GHC.Classes.Eq Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetModelTemplate.GetModelTemplate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse


-- | Describes an existing model defined for a <tt>RestApi</tt> resource.
module Network.AWS.APIGateway.GetModel

-- | Creates a value of <a>GetModel</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ggFlatten</a> - A query parameter of a Boolean value to resolve
--   (<tt>true</tt> ) all external model references and returns a flattened
--   model schema or not (<tt>false</tt> ) The default is <tt>false</tt>
--   .</li>
--   <li><a>ggRestAPIId</a> - The <tt>RestApi</tt> identifier under which
--   the <a>Model</a> exists.</li>
--   <li><a>ggModelName</a> - The name of the model as an identifier.</li>
--   </ul>
getModel :: Text -> Text -> GetModel

-- | Request to list information about a model in an existing
--   <tt>RestApi</tt> resource.
--   
--   <i>See:</i> <a>getModel</a> smart constructor.
data GetModel

-- | A query parameter of a Boolean value to resolve (<tt>true</tt> ) all
--   external model references and returns a flattened model schema or not
--   (<tt>false</tt> ) The default is <tt>false</tt> .
ggFlatten :: Lens' GetModel (Maybe Bool)

-- | The <tt>RestApi</tt> identifier under which the <a>Model</a> exists.
ggRestAPIId :: Lens' GetModel Text

-- | The name of the model as an identifier.
ggModelName :: Lens' GetModel Text

-- | Creates a value of <a>Model</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model. Do not include "*<i>" characters in the description of
--   any properties because such "*</i>" characters may be interpreted as
--   the closing marker for comments in some languages, such as Java or
--   JavaScript, causing the installation of your API's SDK generated by
--   API Gateway to fail.</li>
--   <li><a>mName</a> - The name of the model.</li>
--   <li><a>mId</a> - The identifier for the model resource.</li>
--   <li><a>mDescription</a> - The description of the model.</li>
--   <li><a>mContentType</a> - The content-type for the model.</li>
--   </ul>
model :: Model

-- | Represents the data structure of a method's request or response
--   payload.
--   
--   A request model defines the data structure of the client-supplied
--   request payload. A response model defines the data structure of the
--   response payload returned by the back end. Although not required,
--   models are useful for mapping payloads between the front end and back
--   end.
--   
--   A model is used for generating an API's SDK, validating the input
--   request body, and creating a skeletal mapping template.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>model</a> smart constructor.
data Model

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model. Do not include "*<i>"
--   characters in the description of any properties because such "*</i>"
--   characters may be interpreted as the closing marker for comments in
--   some languages, such as Java or JavaScript, causing the installation
--   of your API's SDK generated by API Gateway to fail.
mSchema :: Lens' Model (Maybe Text)

-- | The name of the model.
mName :: Lens' Model (Maybe Text)

-- | The identifier for the model resource.
mId :: Lens' Model (Maybe Text)

-- | The description of the model.
mDescription :: Lens' Model (Maybe Text)

-- | The content-type for the model.
mContentType :: Lens' Model (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetModel.GetModel
instance Data.Data.Data Network.AWS.APIGateway.GetModel.GetModel
instance GHC.Show.Show Network.AWS.APIGateway.GetModel.GetModel
instance GHC.Read.Read Network.AWS.APIGateway.GetModel.GetModel
instance GHC.Classes.Eq Network.AWS.APIGateway.GetModel.GetModel
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetModel.GetModel
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetModel.GetModel
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModel.GetModel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetModel.GetModel
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetModel.GetModel
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetModel.GetModel


-- | Describes a <a>MethodResponse</a> resource.
module Network.AWS.APIGateway.GetMethodResponse

-- | Creates a value of <a>GetMethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>gmResourceId</a> - The <a>Resource</a> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>gmHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   <li><a>gmStatusCode</a> - The status code for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
getMethodResponse :: Text -> Text -> Text -> Text -> GetMethodResponse

-- | Request to describe a <a>MethodResponse</a> resource.
--   
--   <i>See:</i> <a>getMethodResponse</a> smart constructor.
data GetMethodResponse

-- | The <tt>RestApi</tt> identifier for the <a>MethodResponse</a>
--   resource.
gmRestAPIId :: Lens' GetMethodResponse Text

-- | The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.
gmResourceId :: Lens' GetMethodResponse Text

-- | The HTTP verb of the <a>Method</a> resource.
gmHttpMethod :: Lens' GetMethodResponse Text

-- | The status code for the <a>MethodResponse</a> resource.
gmStatusCode :: Lens' GetMethodResponse Text

-- | Creates a value of <a>MethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResponseModels</a> - Specifies the <a>Model</a> resources used
--   for the response's content-type. Response models are represented as a
--   key/value map, with a content-type as the key and a <a>Model</a> name
--   as the value.</li>
--   <li><a>mStatusCode</a> - The method response's status code.</li>
--   <li><a>mResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header and the value
--   specifies whether the associated method response header is required or
--   not. The expression of the key must match the pattern
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. Amazon API Gateway passes certain
--   integration response data to the method response headers specified
--   here according to the mapping you prescribe in the API's
--   <a>IntegrationResponse</a> . The integration response data that can be
--   mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   </ul>
methodResponse :: MethodResponse

-- | Represents a method response of a given HTTP status code returned to
--   the client. The method response is passed from the back end through
--   the associated integration response that can be transformed using a
--   mapping template.
--   
--   <b>Example: A </b>MethodResponse<b> instance of an API</b>
--   <b>Request</b> The example request retrieves a <b>MethodResponse</b>
--   of the 200 status code.
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns </tt>200 OK@
--   status and a payload as follows:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" }</tt> @
--   
--   <a>Method</a> , <a>IntegrationResponse</a> , <a>Integration</a>
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>methodResponse</a> smart constructor.
data MethodResponse

-- | Specifies the <a>Model</a> resources used for the response's
--   content-type. Response models are represented as a key/value map, with
--   a content-type as the key and a <a>Model</a> name as the value.
mResponseModels :: Lens' MethodResponse (HashMap Text Text)

-- | The method response's status code.
mStatusCode :: Lens' MethodResponse (Maybe Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header and the value specifies whether the associated
--   method response header is required or not. The expression of the key
--   must match the pattern <tt>method.response.header.{name}</tt> , where
--   <tt>name</tt> is a valid and unique header name. Amazon API Gateway
--   passes certain integration response data to the method response
--   headers specified here according to the mapping you prescribe in the
--   API's <a>IntegrationResponse</a> . The integration response data that
--   can be mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
mResponseParameters :: Lens' MethodResponse (HashMap Text Bool)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Data.Data.Data Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetMethodResponse.GetMethodResponse


-- | Describe an existing <a>Method</a> resource.
module Network.AWS.APIGateway.GetMethod

-- | Creates a value of <a>GetMethod</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gmmRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>gmmResourceId</a> - The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>gmmHttpMethod</a> - Specifies the method request's HTTP method
--   type.</li>
--   </ul>
getMethod :: Text -> Text -> Text -> GetMethod

-- | Request to describe an existing <a>Method</a> resource.
--   
--   <i>See:</i> <a>getMethod</a> smart constructor.
data GetMethod

-- | The <tt>RestApi</tt> identifier for the <a>Method</a> resource.
gmmRestAPIId :: Lens' GetMethod Text

-- | The <a>Resource</a> identifier for the <a>Method</a> resource.
gmmResourceId :: Lens' GetMethod Text

-- | Specifies the method request's HTTP method type.
gmmHttpMethod :: Lens' GetMethod Text

-- | Creates a value of <a>Method</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mMethodResponses</a> - Gets a method response associated with a
--   given HTTP status code. The collection of method responses are
--   encapsulated in a key-value map, where the key is a response's HTTP
--   status code and the value is a <a>MethodResponse</a> resource that
--   specifies the response returned to the caller from the back end
--   through the integration response. <b>Example: Get a 200 OK response of
--   a GET method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a></li>
--   <li><a>mHttpMethod</a> - The method's HTTP verb.</li>
--   <li><a>mRequestModels</a> - A key-value map specifying data schemas,
--   represented by <a>Model</a> resources, (as the mapped value) of the
--   request payloads of given content types (as the mapping key).</li>
--   <li><a>mRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key is a method request parameter name matching the pattern
--   of <tt>method.request.{location}.{name}</tt> , where <tt>location</tt>
--   is <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.</li>
--   <li><a>mAuthorizerId</a> - The identifier of an <a>Authorizer</a> to
--   use on this method. The <tt>authorizationType</tt> must be
--   <tt>CUSTOM</tt> .</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type.</li>
--   <li><a>mApiKeyRequired</a> - A boolean flag specifying whether a valid
--   <tt>ApiKey</tt> is required to invoke this method.</li>
--   <li><a>mMethodIntegration</a> - Gets the method's integration
--   responsible for passing the client-submitted request to the back end
--   and performing necessary transformations to make the request compliant
--   with the back end. <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a></li>
--   </ul>
method :: Method

-- | Represents a client-facing interface by which the client calls the API
--   to access back-end resources. A <b>Method</b> resource is integrated
--   with an <a>Integration</a> resource. Both consist of a request and one
--   or more responses. The method request takes the client input that is
--   passed to the back end through the integration request. A method
--   response returns the output from the back end to the client through an
--   integration response. A method request is embodied in a <b>Method</b>
--   resource, whereas an integration request is embodied in an
--   <a>Integration</a> resource. On the other hand, a method response is
--   represented by a <a>MethodResponse</a> resource, whereas an
--   integration response is represented by an <a>IntegrationResponse</a>
--   resource.
--   
--   <b>Example: Retrive the GET method on a specified resource</b>
--   <b>Request</b> The following example request retrieves the information
--   about the GET method on an API resource (<tt>3kzxbg5sa2</tt> ) of an
--   API (<tt>fugvjdxtri</tt> ).
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK@
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": true, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E")"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   }, "methodresponse:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   } }, "responseModels": { "application</i>json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> In the example above, the
--   response template for the </tt>200 OK<tt> response maps the JSON
--   output from the </tt>ListStreams<tt> action in the back end to an XML
--   output. The mapping template is URL-encoded as
--   </tt>%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E@
--   and the output is decoded using the
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference</a>
--   util.urlDecode()&gt; helper function.
--   
--   <a>MethodResponse</a> , <a>Integration</a> ,
--   <a>IntegrationResponse</a> , <a>Resource</a> , <a>Set up an API's
--   method</a>
--   
--   <i>See:</i> <a>method</a> smart constructor.
data Method

-- | Gets a method response associated with a given HTTP status code. The
--   collection of method responses are encapsulated in a key-value map,
--   where the key is a response's HTTP status code and the value is a
--   <a>MethodResponse</a> resource that specifies the response returned to
--   the caller from the back end through the integration response.
--   <b>Example: Get a 200 OK response of a GET method</b> <b>Request</b>
--   @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a>
mMethodResponses :: Lens' Method (HashMap Text MethodResponse)

-- | The method's HTTP verb.
mHttpMethod :: Lens' Method (Maybe Text)

-- | A key-value map specifying data schemas, represented by <a>Model</a>
--   resources, (as the mapped value) of the request payloads of given
--   content types (as the mapping key).
mRequestModels :: Lens' Method (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key is a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.
mRequestParameters :: Lens' Method (HashMap Text Bool)

-- | The identifier of an <a>Authorizer</a> to use on this method. The
--   <tt>authorizationType</tt> must be <tt>CUSTOM</tt> .
mAuthorizerId :: Lens' Method (Maybe Text)

-- | The method's authorization type.
mAuthorizationType :: Lens' Method (Maybe Text)

-- | A boolean flag specifying whether a valid <tt>ApiKey</tt> is required
--   to invoke this method.
mApiKeyRequired :: Lens' Method (Maybe Bool)

-- | Gets the method's integration responsible for passing the
--   client-submitted request to the back end and performing necessary
--   transformations to make the request compliant with the back end.
--   <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a>
mMethodIntegration :: Lens' Method (Maybe Integration)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetMethod.GetMethod
instance Data.Data.Data Network.AWS.APIGateway.GetMethod.GetMethod
instance GHC.Show.Show Network.AWS.APIGateway.GetMethod.GetMethod
instance GHC.Read.Read Network.AWS.APIGateway.GetMethod.GetMethod
instance GHC.Classes.Eq Network.AWS.APIGateway.GetMethod.GetMethod
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetMethod.GetMethod
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetMethod.GetMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetMethod.GetMethod
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetMethod.GetMethod
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetMethod.GetMethod
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetMethod.GetMethod


-- | Represents a get integration response.
module Network.AWS.APIGateway.GetIntegrationResponse

-- | Creates a value of <a>GetIntegrationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giiRestAPIId</a> - Specifies a get integration response
--   request's API identifier.</li>
--   <li><a>giiResourceId</a> - Specifies a get integration response
--   request's resource identifier.</li>
--   <li><a>giiHttpMethod</a> - Specifies a get integration response
--   request's HTTP method.</li>
--   <li><a>giiStatusCode</a> - Specifies a get integration response
--   request's status code.</li>
--   </ul>
getIntegrationResponse :: Text -> Text -> Text -> Text -> GetIntegrationResponse

-- | Represents a get integration response request.
--   
--   <i>See:</i> <a>getIntegrationResponse</a> smart constructor.
data GetIntegrationResponse

-- | Specifies a get integration response request's API identifier.
giiRestAPIId :: Lens' GetIntegrationResponse Text

-- | Specifies a get integration response request's resource identifier.
giiResourceId :: Lens' GetIntegrationResponse Text

-- | Specifies a get integration response request's HTTP method.
giiHttpMethod :: Lens' GetIntegrationResponse Text

-- | Specifies a get integration response request's status code.
giiStatusCode :: Lens' GetIntegrationResponse Text

-- | Creates a value of <a>IntegrationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>intContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>intResponseTemplates</a> - Specifies the templates used to
--   transform the integration response body. Response templates are
--   represented as a key/value map, with a content-type as the key and a
--   template as the value.</li>
--   <li><a>intSelectionPattern</a> - Specifies the regular expression
--   (regex) pattern used to choose an integration response based on the
--   response from the back end. For example, if the success response
--   returns nothing and the error response returns some string, you could
--   use the <tt>.+</tt> regex to match error response. However, make sure
--   that the error response does not contain any newline (<tt>n</tt> )
--   character in such cases. If the back end is an AWS Lambda function,
--   the AWS Lambda function error header is matched. For all other HTTP
--   and AWS back ends, the HTTP status code is matched.</li>
--   <li><a>intStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   <li><a>intResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.</li>
--   </ul>
integrationResponse :: IntegrationResponse

-- | Represents an integration response. The status code must map to an
--   existing <a>MethodResponse</a> , and parameters and templates can be
--   used to transform the back-end response.
--   
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>integrationResponse</a> smart constructor.
data IntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
intContentHandling :: Lens' IntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies the templates used to transform the integration response
--   body. Response templates are represented as a key/value map, with a
--   content-type as the key and a template as the value.
intResponseTemplates :: Lens' IntegrationResponse (HashMap Text Text)

-- | Specifies the regular expression (regex) pattern used to choose an
--   integration response based on the response from the back end. For
--   example, if the success response returns nothing and the error
--   response returns some string, you could use the <tt>.+</tt> regex to
--   match error response. However, make sure that the error response does
--   not contain any newline (<tt>n</tt> ) character in such cases. If the
--   back end is an AWS Lambda function, the AWS Lambda function error
--   header is matched. For all other HTTP and AWS back ends, the HTTP
--   status code is matched.
intSelectionPattern :: Lens' IntegrationResponse (Maybe Text)

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
intStatusCode :: Lens' IntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.
intResponseParameters :: Lens' IntegrationResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Data.Data.Data Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetIntegrationResponse.GetIntegrationResponse


-- | Represents a get integration.
module Network.AWS.APIGateway.GetIntegration

-- | Creates a value of <a>GetIntegration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>giRestAPIId</a> - Specifies a get integration request's API
--   identifier.</li>
--   <li><a>giResourceId</a> - Specifies a get integration request's
--   resource identifier</li>
--   <li><a>giHttpMethod</a> - Specifies a get integration request's HTTP
--   method.</li>
--   </ul>
getIntegration :: Text -> Text -> Text -> GetIntegration

-- | Represents a get integration request.
--   
--   <i>See:</i> <a>getIntegration</a> smart constructor.
data GetIntegration

-- | Specifies a get integration request's API identifier.
giRestAPIId :: Lens' GetIntegration Text

-- | Specifies a get integration request's resource identifier
giResourceId :: Lens' GetIntegration Text

-- | Specifies a get integration request's HTTP method.
giHttpMethod :: Lens' GetIntegration Text

-- | Creates a value of <a>Integration</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iHttpMethod</a> - Specifies the integration's HTTP method
--   type.</li>
--   <li><a>iRequestTemplates</a> - 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.</li>
--   <li><a>iCredentials</a> - 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 <tt>arn:aws:iam::*:user/*</tt> . To use resource-based
--   permissions on supported AWS services, specify null.</li>
--   <li><a>iRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>iContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>iPassthroughBehavior</a> - 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 <tt>requestTemplates</tt> . There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> 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. * <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415 Unsupported Media Type</tt> response. * <tt>NEVER</tt>
--   rejects the method request with an HTTP <tt>415 Unsupported Media
--   Type</tt> 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.</li>
--   <li><a>iUri</a> - 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 <a>RFC-3986
--   specification</a> . For AWS integrations, the URI should be of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .</li>
--   <li><a>iIntegrationResponses</a> - Specifies the integration's
--   responses. <b>Example: Get integration responses of a method</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a></li>
--   <li><a>iCacheNamespace</a> - Specifies the integration's cache
--   namespace.</li>
--   <li><a>iType</a> - Specifies the integration's type. The valid value
--   is <tt>HTTP</tt> for integrating with an HTTP back end, <tt>AWS</tt>
--   for any AWS service endpoints, <tt>MOCK</tt> for testing without
--   actually invoking the back end, <tt>HTTP_PROXY</tt> for integrating
--   with the HTTP proxy integration, or <tt>AWS_PROXY</tt> for integrating
--   with the Lambda proxy integration type.</li>
--   <li><a>iCacheKeyParameters</a> - Specifies the integration's cache key
--   parameters.</li>
--   </ul>
integration :: Integration

-- | 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.<a>Creating an API</a> ,
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/.html</a>
--   
--   <i>See:</i> <a>integration</a> smart constructor.
data Integration

-- | Specifies the integration's HTTP method type.
iHttpMethod :: Lens' Integration (Maybe Text)

-- | 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.
iRequestTemplates :: Lens' Integration (HashMap Text Text)

-- | 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 <tt>arn:aws:iam::*:user/*</tt> . To
--   use resource-based permissions on supported AWS services, specify
--   null.
iCredentials :: Lens' Integration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
iRequestParameters :: Lens' Integration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> .
--   There are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> 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. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415
--   Unsupported Media Type</tt> response. * <tt>NEVER</tt> rejects the
--   method request with an HTTP <tt>415 Unsupported Media Type</tt>
--   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.
iPassthroughBehavior :: Lens' Integration (Maybe Text)

-- | 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 <a>RFC-3986 specification</a> . For AWS integrations,
--   the URI should be of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .
iUri :: Lens' Integration (Maybe Text)

-- | Specifies the integration's responses. <b>Example: Get integration
--   responses of a method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a>
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)

-- | Specifies the integration's cache namespace.
iCacheNamespace :: Lens' Integration (Maybe Text)

-- | Specifies the integration's type. The valid value is <tt>HTTP</tt> for
--   integrating with an HTTP back end, <tt>AWS</tt> for any AWS service
--   endpoints, <tt>MOCK</tt> for testing without actually invoking the
--   back end, <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration, or <tt>AWS_PROXY</tt> for integrating with the Lambda
--   proxy integration type.
iType :: Lens' Integration (Maybe IntegrationType)

-- | Specifies the integration's cache key parameters.
iCacheKeyParameters :: Lens' Integration [Text]
instance GHC.Generics.Generic Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Data.Data.Data Network.AWS.APIGateway.GetIntegration.GetIntegration
instance GHC.Show.Show Network.AWS.APIGateway.GetIntegration.GetIntegration
instance GHC.Read.Read Network.AWS.APIGateway.GetIntegration.GetIntegration
instance GHC.Classes.Eq Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetIntegration.GetIntegration
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetIntegration.GetIntegration


-- | Exports a deployed version of a <tt>RestApi</tt> in a specified
--   format.
module Network.AWS.APIGateway.GetExport

-- | Creates a value of <a>GetExport</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>geParameters</a> - A key-value map of query string parameters
--   that specify properties of the export, depending on the requested
--   <tt>exportType</tt> . For <tt>exportType</tt> <tt>swagger</tt> , any
--   combination of the following parameters are supported:
--   <tt>integrations</tt> will export the API with
--   x-amazon-apigateway-integration extensions. <tt>authorizers</tt> will
--   export the API with x-amazon-apigateway-authorizer extensions.
--   <tt>postman</tt> will export the API with Postman extensions, allowing
--   for import to the Postman tool</li>
--   <li><a>geAccepts</a> - The content-type of the export, for example
--   <tt>application/json</tt> . Currently <tt>application/json</tt> and
--   <tt>application/yaml</tt> are supported for <tt>exportType</tt> of
--   <tt>swagger</tt> . This should be specified in the <tt>Accept</tt>
--   header for direct API requests.</li>
--   <li><a>geRestAPIId</a> - The identifier of the <tt>RestApi</tt> to be
--   exported.</li>
--   <li><a>geStageName</a> - The name of the <a>Stage</a> that will be
--   exported.</li>
--   <li><a>geExportType</a> - The type of export. Currently only
--   <tt>swagger</tt> is supported.</li>
--   </ul>
getExport :: Text -> Text -> Text -> GetExport

-- | Request a new export of a <tt>RestApi</tt> for a particular
--   <a>Stage</a> .
--   
--   <i>See:</i> <a>getExport</a> smart constructor.
data GetExport

-- | A key-value map of query string parameters that specify properties of
--   the export, depending on the requested <tt>exportType</tt> . For
--   <tt>exportType</tt> <tt>swagger</tt> , any combination of the
--   following parameters are supported: <tt>integrations</tt> will export
--   the API with x-amazon-apigateway-integration extensions.
--   <tt>authorizers</tt> will export the API with
--   x-amazon-apigateway-authorizer extensions. <tt>postman</tt> will
--   export the API with Postman extensions, allowing for import to the
--   Postman tool
geParameters :: Lens' GetExport (HashMap Text Text)

-- | The content-type of the export, for example <tt>application/json</tt>
--   . Currently <tt>application/json</tt> and <tt>application/yaml</tt>
--   are supported for <tt>exportType</tt> of <tt>swagger</tt> . This
--   should be specified in the <tt>Accept</tt> header for direct API
--   requests.
geAccepts :: Lens' GetExport (Maybe Text)

-- | The identifier of the <tt>RestApi</tt> to be exported.
geRestAPIId :: Lens' GetExport Text

-- | The name of the <a>Stage</a> that will be exported.
geStageName :: Lens' GetExport Text

-- | The type of export. Currently only <tt>swagger</tt> is supported.
geExportType :: Lens' GetExport Text

-- | Creates a value of <a>GetExportResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gersBody</a> - The binary blob response to <a>GetExport</a> ,
--   which contains the export.</li>
--   <li><a>gersContentDisposition</a> - The content-disposition header
--   value in the HTTP response.</li>
--   <li><a>gersContentType</a> - The content-type header value in the HTTP
--   response. This will correspond to a valid <tt>accept</tt> type in the
--   request.</li>
--   <li><a>gersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getExportResponse :: Int -> GetExportResponse

-- | The binary blob response to <a>GetExport</a> , which contains the
--   generated SDK.
--   
--   <i>See:</i> <a>getExportResponse</a> smart constructor.
data GetExportResponse

-- | The binary blob response to <a>GetExport</a> , which contains the
--   export.
gersBody :: Lens' GetExportResponse (Maybe (HashMap Text Value))

-- | The content-disposition header value in the HTTP response.
gersContentDisposition :: Lens' GetExportResponse (Maybe Text)

-- | The content-type header value in the HTTP response. This will
--   correspond to a valid <tt>accept</tt> type in the request.
gersContentType :: Lens' GetExportResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gersResponseStatus :: Lens' GetExportResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetExport.GetExportResponse
instance Data.Data.Data Network.AWS.APIGateway.GetExport.GetExportResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetExport.GetExportResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetExport.GetExportResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetExport.GetExport
instance Data.Data.Data Network.AWS.APIGateway.GetExport.GetExport
instance GHC.Show.Show Network.AWS.APIGateway.GetExport.GetExport
instance GHC.Read.Read Network.AWS.APIGateway.GetExport.GetExport
instance GHC.Classes.Eq Network.AWS.APIGateway.GetExport.GetExport
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetExport.GetExport
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetExport.GetExport
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetExport.GetExport
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetExport.GetExport
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetExport.GetExport
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetExport.GetExport
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetExport.GetExportResponse


-- | Represents a collection of <a>DomainName</a> resources.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetDomainNames

-- | Creates a value of <a>GetDomainNames</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdnLimit</a> - The maximum number of <a>DomainName</a>
--   resources in the collection to get information about. The default
--   limit is 25. It should be an integer between 1 - 500.</li>
--   <li><a>gdnPosition</a> - The position of the current domain names to
--   get information about.</li>
--   </ul>
getDomainNames :: GetDomainNames

-- | Request to describe a collection of <a>DomainName</a> resources.
--   
--   <i>See:</i> <a>getDomainNames</a> smart constructor.
data GetDomainNames

-- | The maximum number of <a>DomainName</a> resources in the collection to
--   get information about. The default limit is 25. It should be an
--   integer between 1 - 500.
gdnLimit :: Lens' GetDomainNames (Maybe Int)

-- | The position of the current domain names to get information about.
gdnPosition :: Lens' GetDomainNames (Maybe Text)

-- | Creates a value of <a>GetDomainNamesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdnrsItems</a> - The current page of any <a>DomainName</a>
--   resources in the collection of <a>DomainName</a> resources.</li>
--   <li><a>gdnrsPosition</a> - Undocumented member.</li>
--   <li><a>gdnrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDomainNamesResponse :: Int -> GetDomainNamesResponse

-- | Represents a collection of <a>DomainName</a> resources.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>getDomainNamesResponse</a> smart constructor.
data GetDomainNamesResponse

-- | The current page of any <a>DomainName</a> resources in the collection
--   of <a>DomainName</a> resources.
gdnrsItems :: Lens' GetDomainNamesResponse [DomainName]

-- | Undocumented member.
gdnrsPosition :: Lens' GetDomainNamesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdnrsResponseStatus :: Lens' GetDomainNamesResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance Data.Data.Data Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Data.Data.Data Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance GHC.Show.Show Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance GHC.Read.Read Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse


-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
module Network.AWS.APIGateway.GetDomainName

-- | Creates a value of <a>GetDomainName</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   </ul>
getDomainName :: Text -> GetDomainName

-- | Request to get the name of a <a>DomainName</a> resource.
--   
--   <i>See:</i> <a>getDomainName</a> smart constructor.
data GetDomainName

-- | The name of the <a>DomainName</a> resource.
gdnDomainName :: Lens' GetDomainName Text

-- | Creates a value of <a>DomainName</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnCertificateName</a> - The name of the certificate.</li>
--   <li><a>dnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>dnCertificateUploadDate</a> - The date when the certificate was
--   uploaded, in <a>ISO 8601 format</a> .</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution. For more information, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   </ul>
domainName :: DomainName

-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The name of the certificate.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The name of the <a>DomainName</a> resource.
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The date when the certificate was uploaded, in <a>ISO 8601 format</a>
--   .
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution. For more
--   information, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Data.Data.Data Network.AWS.APIGateway.GetDomainName.GetDomainName
instance GHC.Show.Show Network.AWS.APIGateway.GetDomainName.GetDomainName
instance GHC.Read.Read Network.AWS.APIGateway.GetDomainName.GetDomainName
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDomainName.GetDomainName
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDomainName.GetDomainName


-- | Undocumented operation.
module Network.AWS.APIGateway.GetDocumentationVersions

-- | Creates a value of <a>GetDocumentationVersions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdvLimit</a> - The page size of the returned documentation
--   versions.</li>
--   <li><a>gdvPosition</a> - The position of the returned
--   <tt>DocumentationVersion</tt> in the <tt>DocumentationVersions</tt>
--   collection.</li>
--   <li><a>gdvRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-retrieved documentation versions.</li>
--   </ul>
getDocumentationVersions :: Text -> GetDocumentationVersions

-- | Gets the documentation versions of an API.
--   
--   <i>See:</i> <a>getDocumentationVersions</a> smart constructor.
data GetDocumentationVersions

-- | The page size of the returned documentation versions.
gdvLimit :: Lens' GetDocumentationVersions (Maybe Int)

-- | The position of the returned <tt>DocumentationVersion</tt> in the
--   <tt>DocumentationVersions</tt> collection.
gdvPosition :: Lens' GetDocumentationVersions (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-retrieved
--   documentation versions.</li>
--   </ul>
gdvRestAPIId :: Lens' GetDocumentationVersions Text

-- | Creates a value of <a>GetDocumentationVersionsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdvrsItems</a> - The current page of
--   <a>DocumentationVersion</a> items from the
--   <tt>DocumentationVersions</tt> collection of an API.</li>
--   <li><a>gdvrsPosition</a> - Undocumented member.</li>
--   <li><a>gdvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDocumentationVersionsResponse :: Int -> GetDocumentationVersionsResponse

-- | The collection of documentation snapshots of an API.
--   
--   Use the <tt>DocumentationVersions</tt> to manage documentation
--   snapshots associated with various API stages.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <a>DocumentationVersion</a>
--   
--   <i>See:</i> <a>getDocumentationVersionsResponse</a> smart constructor.
data GetDocumentationVersionsResponse

-- | The current page of <a>DocumentationVersion</a> items from the
--   <tt>DocumentationVersions</tt> collection of an API.
gdvrsItems :: Lens' GetDocumentationVersionsResponse [DocumentationVersion]

-- | Undocumented member.
gdvrsPosition :: Lens' GetDocumentationVersionsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdvrsResponseStatus :: Lens' GetDocumentationVersionsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersions
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse


-- | Undocumented operation.
module Network.AWS.APIGateway.GetDocumentationVersion

-- | Creates a value of <a>GetDocumentationVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdvdRestAPIId</a> - [Required] The identifier of the API of the
--   to-be-retrieved documentation snapshot.</li>
--   <li><a>gdvdDocumentationVersion</a> - [Required] The version
--   identifier of the to-be-retrieved documentation snapshot.</li>
--   </ul>
getDocumentationVersion :: Text -> Text -> GetDocumentationVersion

-- | Gets a documentation snapshot of an API.
--   
--   <i>See:</i> <a>getDocumentationVersion</a> smart constructor.
data GetDocumentationVersion

-- | <ul>
--   <li><i>Required</i> The identifier of the API of the to-be-retrieved
--   documentation snapshot.</li>
--   </ul>
gdvdRestAPIId :: Lens' GetDocumentationVersion Text

-- | <ul>
--   <li><i>Required</i> The version identifier of the to-be-retrieved
--   documentation snapshot.</li>
--   </ul>
gdvdDocumentationVersion :: Lens' GetDocumentationVersion Text

-- | Creates a value of <a>DocumentationVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvCreatedDate</a> - The date when the API documentation
--   snapshot is created.</li>
--   <li><a>dvVersion</a> - The version identifier of the API documentation
--   snapshot.</li>
--   <li><a>dvDescription</a> - The description of the API documentation
--   snapshot.</li>
--   </ul>
documentationVersion :: DocumentationVersion

-- | A snapshot of the documentation of an API.
--   
--   Publishing API documentation involves creating a documentation version
--   associated with an API stage and exporting the versioned documentation
--   to an external (e.g., Swagger) file.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <tt>DocumentationVersions</tt>
--   
--   <i>See:</i> <a>documentationVersion</a> smart constructor.
data DocumentationVersion

-- | The date when the API documentation snapshot is created.
dvCreatedDate :: Lens' DocumentationVersion (Maybe UTCTime)

-- | The version identifier of the API documentation snapshot.
dvVersion :: Lens' DocumentationVersion (Maybe Text)

-- | The description of the API documentation snapshot.
dvDescription :: Lens' DocumentationVersion (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDocumentationVersion.GetDocumentationVersion


-- | Undocumented operation.
module Network.AWS.APIGateway.GetDocumentationParts

-- | Creates a value of <a>GetDocumentationParts</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdpPath</a> - The path of API entities of the to-be-retrieved
--   documentation parts.</li>
--   <li><a>gdpNameQuery</a> - The name of API entities of the
--   to-be-retrieved documentation parts.</li>
--   <li><a>gdpLimit</a> - The size of the paged results.</li>
--   <li><a>gdpType</a> - The type of API entities of the to-be-retrieved
--   documentation parts.</li>
--   <li><a>gdpPosition</a> - The position of the to-be-retrieved
--   documentation part in the <tt>DocumentationParts</tt> collection.</li>
--   <li><a>gdpRestAPIId</a> - [Required] The identifier of the API of the
--   to-be-retrieved documentation parts.</li>
--   </ul>
getDocumentationParts :: Text -> GetDocumentationParts

-- | Gets the documentation parts of an API. The result may be filtered by
--   the type, name, or path of API entities (targets).
--   
--   <i>See:</i> <a>getDocumentationParts</a> smart constructor.
data GetDocumentationParts

-- | The path of API entities of the to-be-retrieved documentation parts.
gdpPath :: Lens' GetDocumentationParts (Maybe Text)

-- | The name of API entities of the to-be-retrieved documentation parts.
gdpNameQuery :: Lens' GetDocumentationParts (Maybe Text)

-- | The size of the paged results.
gdpLimit :: Lens' GetDocumentationParts (Maybe Int)

-- | The type of API entities of the to-be-retrieved documentation parts.
gdpType :: Lens' GetDocumentationParts (Maybe DocumentationPartType)

-- | The position of the to-be-retrieved documentation part in the
--   <tt>DocumentationParts</tt> collection.
gdpPosition :: Lens' GetDocumentationParts (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The identifier of the API of the to-be-retrieved
--   documentation parts.</li>
--   </ul>
gdpRestAPIId :: Lens' GetDocumentationParts Text

-- | Creates a value of <a>GetDocumentationPartsResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdprsItems</a> - The current page of <a>DocumentationPart</a>
--   resources in the <tt>DocumentationParts</tt> collection.</li>
--   <li><a>gdprsPosition</a> - Undocumented member.</li>
--   <li><a>gdprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDocumentationPartsResponse :: Int -> GetDocumentationPartsResponse

-- | The collection of documentation parts of an API.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a>
--   
--   <i>See:</i> <a>getDocumentationPartsResponse</a> smart constructor.
data GetDocumentationPartsResponse

-- | The current page of <a>DocumentationPart</a> resources in the
--   <tt>DocumentationParts</tt> collection.
gdprsItems :: Lens' GetDocumentationPartsResponse [DocumentationPart]

-- | Undocumented member.
gdprsPosition :: Lens' GetDocumentationPartsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdprsResponseStatus :: Lens' GetDocumentationPartsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationParts
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse


-- | Undocumented operation.
module Network.AWS.APIGateway.GetDocumentationPart

-- | Creates a value of <a>GetDocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>getRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-retrieved documentation part.</li>
--   <li><a>getDocumentationPartId</a> - [Required] The identifier of the
--   to-be-retrieved documentation part.</li>
--   </ul>
getDocumentationPart :: Text -> Text -> GetDocumentationPart

-- | Gets a specified documentation part of a given API.
--   
--   <i>See:</i> <a>getDocumentationPart</a> smart constructor.
data GetDocumentationPart

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-retrieved
--   documentation part.</li>
--   </ul>
getRestAPIId :: Lens' GetDocumentationPart Text

-- | <ul>
--   <li><i>Required</i> The identifier of the to-be-retrieved
--   documentation part.</li>
--   </ul>
getDocumentationPartId :: Lens' GetDocumentationPart Text

-- | Creates a value of <a>DocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpLocation</a> - The location of the API entity to which the
--   documentation applies. Valid fields depend on the targeted API entity
--   type. All the valid location fields are not required. If not
--   explicitly specified, a valid location field is treated as a wildcard
--   and associated documentation content may be inherited by matching
--   entities, unless overridden.</li>
--   <li><a>dpId</a> - The <a>DocumentationPart</a> identifier, generated
--   by Amazon API Gateway when the <tt>DocumentationPart</tt> is
--   created.</li>
--   <li><a>dpProperties</a> - A content map of API-specific key-value
--   pairs describing the targeted API entity. The map must be encoded as a
--   JSON string, e.g., <tt>"{ "description": "The API does ..." }"</tt> .
--   Only Swagger-compliant documentation-related fields from the
--   <tt>properties</tt> map are exported and, hence, published as part of
--   the API entity definitions, while the original documentation parts are
--   exported in a Swagger extension of
--   <tt>x-amazon-apigateway-documentation</tt> .</li>
--   </ul>
documentationPart :: DocumentationPart

-- | A documentation part for a targeted API entity.
--   
--   A documentation part consists of a content map (<tt>properties</tt> )
--   and a target (<tt>location</tt> ). The target specifies an API entity
--   to which the documentation content applies. The supported API entity
--   types are <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Valid <tt>location</tt> fields depend on
--   the API entity type. All valid fields are not required.
--   
--   The content map is a JSON string of API-specific key-value pairs.
--   Although an API can use any shape for the content map, only the
--   Swagger-compliant documentation fields will be injected into the
--   associated API entity definition in the exported Swagger definition
--   file.
--   
--   <a>Documenting an API</a> , <tt>DocumentationParts</tt>
--   
--   <i>See:</i> <a>documentationPart</a> smart constructor.
data DocumentationPart

-- | The location of the API entity to which the documentation applies.
--   Valid fields depend on the targeted API entity type. All the valid
--   location fields are not required. If not explicitly specified, a valid
--   location field is treated as a wildcard and associated documentation
--   content may be inherited by matching entities, unless overridden.
dpLocation :: Lens' DocumentationPart (Maybe DocumentationPartLocation)

-- | The <a>DocumentationPart</a> identifier, generated by Amazon API
--   Gateway when the <tt>DocumentationPart</tt> is created.
dpId :: Lens' DocumentationPart (Maybe Text)

-- | A content map of API-specific key-value pairs describing the targeted
--   API entity. The map must be encoded as a JSON string, e.g., <tt>"{
--   "description": "The API does ..." }"</tt> . Only Swagger-compliant
--   documentation-related fields from the <tt>properties</tt> map are
--   exported and, hence, published as part of the API entity definitions,
--   while the original documentation parts are exported in a Swagger
--   extension of <tt>x-amazon-apigateway-documentation</tt> .
dpProperties :: Lens' DocumentationPart (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Data.Data.Data Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance GHC.Show.Show Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance GHC.Read.Read Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDocumentationPart.GetDocumentationPart


-- | Gets information about a <tt>Deployments</tt> collection.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetDeployments

-- | Creates a value of <a>GetDeployments</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdLimit</a> - The maximum number of <a>Deployment</a> resources
--   in the collection to get information about. The default limit is 25.
--   It should be an integer between 1 - 500.</li>
--   <li><a>gdPosition</a> - The position of the current <a>Deployment</a>
--   resource in the collection to get information about.</li>
--   <li><a>gdRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the collection of <a>Deployment</a> resources to get
--   information about.</li>
--   </ul>
getDeployments :: Text -> GetDeployments

-- | Requests Amazon API Gateway to get information about a
--   <tt>Deployments</tt> collection.
--   
--   <i>See:</i> <a>getDeployments</a> smart constructor.
data GetDeployments

-- | The maximum number of <a>Deployment</a> resources in the collection to
--   get information about. The default limit is 25. It should be an
--   integer between 1 - 500.
gdLimit :: Lens' GetDeployments (Maybe Int)

-- | The position of the current <a>Deployment</a> resource in the
--   collection to get information about.
gdPosition :: Lens' GetDeployments (Maybe Text)

-- | The identifier of the <tt>RestApi</tt> resource for the collection of
--   <a>Deployment</a> resources to get information about.
gdRestAPIId :: Lens' GetDeployments Text

-- | Creates a value of <a>GetDeploymentsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gdrsItems</a> - The current page of any <a>Deployment</a>
--   resources in the collection of deployment resources.</li>
--   <li><a>gdrsPosition</a> - Undocumented member.</li>
--   <li><a>gdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getDeploymentsResponse :: Int -> GetDeploymentsResponse

-- | Represents a collection resource that contains zero or more references
--   to your existing deployments, and links that guide you on how to
--   interact with your collection. The collection offers a paginated view
--   of the contained deployments.
--   
--   To create a new deployment of a <tt>RestApi</tt> , make a
--   <tt>POST</tt> request against this resource. To view, update, or
--   delete an existing deployment, make a <tt>GET</tt> , <tt>PATCH</tt> ,
--   or <tt>DELETE</tt> request, respectively, on a specified
--   <a>Deployment</a> resource.<a>Deploying an API</a> , <a>AWS CLI</a> ,
--   <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>getDeploymentsResponse</a> smart constructor.
data GetDeploymentsResponse

-- | The current page of any <a>Deployment</a> resources in the collection
--   of deployment resources.
gdrsItems :: Lens' GetDeploymentsResponse [Deployment]

-- | Undocumented member.
gdrsPosition :: Lens' GetDeploymentsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gdrsResponseStatus :: Lens' GetDeploymentsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Data.Data.Data Network.AWS.APIGateway.GetDeployments.GetDeployments
instance GHC.Show.Show Network.AWS.APIGateway.GetDeployments.GetDeployments
instance GHC.Read.Read Network.AWS.APIGateway.GetDeployments.GetDeployments
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse


-- | Gets information about a <a>Deployment</a> resource.
module Network.AWS.APIGateway.GetDeployment

-- | Creates a value of <a>GetDeployment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Deployment</a> resource to get information
--   about.</li>
--   <li><a>gDeploymentId</a> - The identifier of the <a>Deployment</a>
--   resource to get information about.</li>
--   </ul>
getDeployment :: Text -> Text -> GetDeployment

-- | Requests Amazon API Gateway to get information about a
--   <a>Deployment</a> resource.
--   
--   <i>See:</i> <a>getDeployment</a> smart constructor.
data GetDeployment

-- | The identifier of the <tt>RestApi</tt> resource for the
--   <a>Deployment</a> resource to get information about.
gRestAPIId :: Lens' GetDeployment Text

-- | The identifier of the <a>Deployment</a> resource to get information
--   about.
gDeploymentId :: Lens' GetDeployment Text

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dApiSummary</a> - A summary of the <tt>RestApi</tt> at the date
--   and time that the deployment resource was created.</li>
--   <li><a>dCreatedDate</a> - The date and time that the deployment
--   resource was created.</li>
--   <li><a>dId</a> - The identifier for the deployment resource.</li>
--   <li><a>dDescription</a> - The description for the deployment
--   resource.</li>
--   </ul>
deployment :: Deployment

-- | An immutable representation of a <tt>RestApi</tt> resource that can be
--   called by users using <tt>Stages</tt> . A deployment must be
--   associated with a <a>Stage</a> for it to be callable over the
--   Internet.
--   
--   To create a deployment, call <tt>POST</tt> on the <tt>Deployments</tt>
--   resource of a <tt>RestApi</tt> . To view, update, or delete a
--   deployment, call <tt>GET</tt> , <tt>PATCH</tt> , or <tt>DELETE</tt> on
--   the specified deployment resource
--   (<tt><i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}</tt>
--   ).<tt>RestApi</tt> , <tt>Deployments</tt> , <a>Stage</a> , <a>AWS
--   CLI</a> , <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | A summary of the <tt>RestApi</tt> at the date and time that the
--   deployment resource was created.
dApiSummary :: Lens' Deployment (HashMap Text (HashMap Text MethodSnapshot))

-- | The date and time that the deployment resource was created.
dCreatedDate :: Lens' Deployment (Maybe UTCTime)

-- | The identifier for the deployment resource.
dId :: Lens' Deployment (Maybe Text)

-- | The description for the deployment resource.
dDescription :: Lens' Deployment (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Data.Data.Data Network.AWS.APIGateway.GetDeployment.GetDeployment
instance GHC.Show.Show Network.AWS.APIGateway.GetDeployment.GetDeployment
instance GHC.Read.Read Network.AWS.APIGateway.GetDeployment.GetDeployment
instance GHC.Classes.Eq Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetDeployment.GetDeployment
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetDeployment.GetDeployment


-- | Gets a collection of <a>ClientCertificate</a> resources.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetClientCertificates

-- | Creates a value of <a>GetClientCertificates</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccLimit</a> - The maximum number of <a>ClientCertificate</a>
--   resources in the collection to get information about. The default
--   limit is 25. It should be an integer between 1 - 500.</li>
--   <li><a>gccPosition</a> - The position of the current
--   <a>ClientCertificate</a> resource in the collection to get information
--   about.</li>
--   </ul>
getClientCertificates :: GetClientCertificates

-- | A request to get information about a collection of
--   <a>ClientCertificate</a> resources.
--   
--   <i>See:</i> <a>getClientCertificates</a> smart constructor.
data GetClientCertificates

-- | The maximum number of <a>ClientCertificate</a> resources in the
--   collection to get information about. The default limit is 25. It
--   should be an integer between 1 - 500.
gccLimit :: Lens' GetClientCertificates (Maybe Int)

-- | The position of the current <a>ClientCertificate</a> resource in the
--   collection to get information about.
gccPosition :: Lens' GetClientCertificates (Maybe Text)

-- | Creates a value of <a>GetClientCertificatesResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccrsItems</a> - The current page of any
--   <a>ClientCertificate</a> resources in the collection of
--   <a>ClientCertificate</a> resources.</li>
--   <li><a>gccrsPosition</a> - Undocumented member.</li>
--   <li><a>gccrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getClientCertificatesResponse :: Int -> GetClientCertificatesResponse

-- | Represents a collection of <a>ClientCertificate</a> resources.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>getClientCertificatesResponse</a> smart constructor.
data GetClientCertificatesResponse

-- | The current page of any <a>ClientCertificate</a> resources in the
--   collection of <a>ClientCertificate</a> resources.
gccrsItems :: Lens' GetClientCertificatesResponse [ClientCertificate]

-- | Undocumented member.
gccrsPosition :: Lens' GetClientCertificatesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gccrsResponseStatus :: Lens' GetClientCertificatesResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance Data.Data.Data Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Data.Data.Data Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance GHC.Show.Show Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance GHC.Read.Read Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance GHC.Classes.Eq Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse


-- | Gets information about the current <a>ClientCertificate</a> resource.
module Network.AWS.APIGateway.GetClientCertificate

-- | Creates a value of <a>GetClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccClientCertificateId</a> - The identifier of the
--   <a>ClientCertificate</a> resource to be described.</li>
--   </ul>
getClientCertificate :: Text -> GetClientCertificate

-- | A request to get information about the current
--   <a>ClientCertificate</a> resource.
--   
--   <i>See:</i> <a>getClientCertificate</a> smart constructor.
data GetClientCertificate

-- | The identifier of the <a>ClientCertificate</a> resource to be
--   described.
gccClientCertificateId :: Lens' GetClientCertificate Text

-- | Creates a value of <a>ClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccPemEncodedCertificate</a> - The PEM-encoded public key of the
--   client certificate, which can be used to configure certificate
--   authentication in the integration endpoint .</li>
--   <li><a>ccClientCertificateId</a> - The identifier of the client
--   certificate.</li>
--   <li><a>ccCreatedDate</a> - The date when the client certificate was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccExpirationDate</a> - The date when the client certificate
--   will expire, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccDescription</a> - The description of the client
--   certificate.</li>
--   </ul>
clientCertificate :: ClientCertificate

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used authenticate an API by the back-end
--   server. To authenticate an API client (or user), use a custom
--   <a>Authorizer</a> .<a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>clientCertificate</a> smart constructor.
data ClientCertificate

-- | The PEM-encoded public key of the client certificate, which can be
--   used to configure certificate authentication in the integration
--   endpoint .
ccPemEncodedCertificate :: Lens' ClientCertificate (Maybe Text)

-- | The identifier of the client certificate.
ccClientCertificateId :: Lens' ClientCertificate (Maybe Text)

-- | The date when the client certificate was created, in <a>ISO 8601
--   format</a> .
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The date when the client certificate will expire, in <a>ISO 8601
--   format</a> .
ccExpirationDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The description of the client certificate.
ccDescription :: Lens' ClientCertificate (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Data.Data.Data Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance GHC.Show.Show Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance GHC.Read.Read Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance GHC.Classes.Eq Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetClientCertificate.GetClientCertificate


-- | Represents a collection of <a>BasePathMapping</a> resources.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetBasePathMappings

-- | Creates a value of <a>GetBasePathMappings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gLimit</a> - The maximum number of <a>BasePathMapping</a>
--   resources in the collection to get information about. The default
--   limit is 25. It should be an integer between 1 - 500.</li>
--   <li><a>gPosition</a> - The position of the current
--   <a>BasePathMapping</a> resource in the collection to get information
--   about.</li>
--   <li><a>gDomainName</a> - The domain name of a <a>BasePathMapping</a>
--   resource.</li>
--   </ul>
getBasePathMappings :: Text -> GetBasePathMappings

-- | A request to get information about a collection of
--   <a>BasePathMapping</a> resources.
--   
--   <i>See:</i> <a>getBasePathMappings</a> smart constructor.
data GetBasePathMappings

-- | The maximum number of <a>BasePathMapping</a> resources in the
--   collection to get information about. The default limit is 25. It
--   should be an integer between 1 - 500.
gLimit :: Lens' GetBasePathMappings (Maybe Int)

-- | The position of the current <a>BasePathMapping</a> resource in the
--   collection to get information about.
gPosition :: Lens' GetBasePathMappings (Maybe Text)

-- | The domain name of a <a>BasePathMapping</a> resource.
gDomainName :: Lens' GetBasePathMappings Text

-- | Creates a value of <a>GetBasePathMappingsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbpmrsItems</a> - The current page of any
--   <a>BasePathMapping</a> resources in the collection of base path
--   mapping resources.</li>
--   <li><a>gbpmrsPosition</a> - Undocumented member.</li>
--   <li><a>gbpmrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getBasePathMappingsResponse :: Int -> GetBasePathMappingsResponse

-- | Represents a collection of <a>BasePathMapping</a> resources.
--   
--   <a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>getBasePathMappingsResponse</a> smart constructor.
data GetBasePathMappingsResponse

-- | The current page of any <a>BasePathMapping</a> resources in the
--   collection of base path mapping resources.
gbpmrsItems :: Lens' GetBasePathMappingsResponse [BasePathMapping]

-- | Undocumented member.
gbpmrsPosition :: Lens' GetBasePathMappingsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gbpmrsResponseStatus :: Lens' GetBasePathMappingsResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance Data.Data.Data Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Data.Data.Data Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance GHC.Show.Show Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance GHC.Read.Read Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance GHC.Classes.Eq Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse


-- | Describe a <a>BasePathMapping</a> resource.
module Network.AWS.APIGateway.GetBasePathMapping

-- | Creates a value of <a>GetBasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gbpmDomainName</a> - The domain name of the
--   <a>BasePathMapping</a> resource to be described.</li>
--   <li><a>gbpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name. This value must
--   be unique for all of the mappings across a single API. Leave this
--   blank if you do not want callers to specify any base path name after
--   the domain name.</li>
--   </ul>
getBasePathMapping :: Text -> Text -> GetBasePathMapping

-- | Request to describe a <a>BasePathMapping</a> resource.
--   
--   <i>See:</i> <a>getBasePathMapping</a> smart constructor.
data GetBasePathMapping

-- | The domain name of the <a>BasePathMapping</a> resource to be
--   described.
gbpmDomainName :: Lens' GetBasePathMapping Text

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name. This value must be unique for all of the
--   mappings across a single API. Leave this blank if you do not want
--   callers to specify any base path name after the domain name.
gbpmBasePath :: Lens' GetBasePathMapping Text

-- | Creates a value of <a>BasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpmStage</a> - The name of the API's stage.</li>
--   <li><a>bpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name.</li>
--   <li><a>bpmRestAPIId</a> - The name of the API.</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | Represents the base path that callers of the API must provide as part
--   of the URL after the domain name.
--   
--   A custom domain name plus a <tt>BasePathMapping</tt> specification
--   identifies a deployed <tt>RestApi</tt> in a given stage of the owner
--   <a>Account</a> .<a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>basePathMapping</a> smart constructor.
data BasePathMapping

-- | The name of the API's stage.
bpmStage :: Lens' BasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name.
bpmBasePath :: Lens' BasePathMapping (Maybe Text)

-- | The name of the API.
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Data.Data.Data Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance GHC.Show.Show Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance GHC.Read.Read Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance GHC.Classes.Eq Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetBasePathMapping.GetBasePathMapping


-- | Describe an existing <tt>Authorizers</tt> resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.GetAuthorizers

-- | Creates a value of <a>GetAuthorizers</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaLimit</a> - Limit the number of <a>Authorizer</a> resources
--   in the response.</li>
--   <li><a>gaPosition</a> - If not all <a>Authorizer</a> resources in the
--   response were present, the position will specify where to start the
--   next page of results.</li>
--   <li><a>gaRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <tt>Authorizers</tt> resource.</li>
--   </ul>
getAuthorizers :: Text -> GetAuthorizers

-- | Request to describe an existing <tt>Authorizers</tt> resource.
--   
--   <i>See:</i> <a>getAuthorizers</a> smart constructor.
data GetAuthorizers

-- | Limit the number of <a>Authorizer</a> resources in the response.
gaLimit :: Lens' GetAuthorizers (Maybe Int)

-- | If not all <a>Authorizer</a> resources in the response were present,
--   the position will specify where to start the next page of results.
gaPosition :: Lens' GetAuthorizers (Maybe Text)

-- | The <tt>RestApi</tt> identifier for the <tt>Authorizers</tt> resource.
gaRestAPIId :: Lens' GetAuthorizers Text

-- | Creates a value of <a>GetAuthorizersResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>garsItems</a> - Gets the current list of <a>Authorizer</a>
--   resources in the collection.</li>
--   <li><a>garsPosition</a> - Undocumented member.</li>
--   <li><a>garsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getAuthorizersResponse :: Int -> GetAuthorizersResponse

-- | Represents a collection of <a>Authorizer</a> resources.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>getAuthorizersResponse</a> smart constructor.
data GetAuthorizersResponse

-- | Gets the current list of <a>Authorizer</a> resources in the
--   collection.
garsItems :: Lens' GetAuthorizersResponse [Authorizer]

-- | Undocumented member.
garsPosition :: Lens' GetAuthorizersResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
garsResponseStatus :: Lens' GetAuthorizersResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
instance Data.Data.Data Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Data.Data.Data Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance GHC.Show.Show Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance GHC.Read.Read Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetAuthorizers.GetAuthorizers
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse


-- | Describe an existing <a>Authorizer</a> resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.GetAuthorizer

-- | Creates a value of <a>GetAuthorizer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gaaRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Authorizer</a> resource.</li>
--   <li><a>gaaAuthorizerId</a> - The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
getAuthorizer :: Text -> Text -> GetAuthorizer

-- | Request to describe an existing <a>Authorizer</a> resource.
--   
--   <i>See:</i> <a>getAuthorizer</a> smart constructor.
data GetAuthorizer

-- | The <tt>RestApi</tt> identifier for the <a>Authorizer</a> resource.
gaaRestAPIId :: Lens' GetAuthorizer Text

-- | The identifier of the <a>Authorizer</a> resource.
gaaAuthorizerId :: Lens' GetAuthorizer Text

-- | Creates a value of <a>Authorizer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI). For <tt>TOKEN</tt> authorizers,
--   this must be a well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity. For <tt>TOKEN</tt> authorizers, this value
--   should be a regular expression. The incoming token from the client is
--   matched against this expression, and will proceed if the token
--   matches. If the token doesn't match, the client receives a 401
--   Unauthorized response.</li>
--   <li><a>aProviderARNs</a> - A list of the provider ARNs of the
--   authorizer. For an <tt>TOKEN</tt> authorizer, this is not defined. For
--   authorizers of the <tt>COGNITO_USER_POOLS</tt> type, each element
--   corresponds to a user pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .</li>
--   <li><a>aName</a> - [Required] The name of the authorizer.</li>
--   <li><a>aId</a> - The identifier for the authorizer resource.</li>
--   <li><a>aAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If greater than 0, API Gateway will cache
--   authorizer responses. If this field is not set, the default value is
--   300. The maximum value is 3600, or 1 hour.</li>
--   <li><a>aAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>aType</a> - [Required] The type of the authorizer. Currently,
--   the valid type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   <li><a>aIdentitySource</a> - [Required] The source of the identity in
--   an incoming request. For a <tt>TOKEN</tt> authorizer, this value is a
--   mapping expression with the same syntax as integration parameter
--   mappings. The only valid source for tokens is <tt>header</tt>, so the
--   expression should match 'method.request.header.[headerName]'. The
--   value of the header '[headerName]' will be interpreted as the incoming
--   token. For <tt>COGNITO_USER_POOLS</tt> authorizers, this property is
--   used.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the credentials required
--   for the authorizer, if any. Two options are available. To specify an
--   IAM role for Amazon API Gateway to assume, use the role's Amazon
--   Resource Name (ARN). To use resource-based permissions on the Lambda
--   function, specify null.</li>
--   </ul>
authorizer :: Authorizer

-- | Represents an authorization layer for methods. If enabled on a method,
--   API Gateway will activate the authorizer when a client calls the
--   method.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>authorizer</a> smart constructor.
data Authorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI). For <tt>TOKEN</tt> authorizers, this must be a
--   well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   </ul>
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity. For <tt>TOKEN</tt>
--   authorizers, this value should be a regular expression. The incoming
--   token from the client is matched against this expression, and will
--   proceed if the token matches. If the token doesn't match, the client
--   receives a 401 Unauthorized response.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the provider ARNs of the authorizer. For an <tt>TOKEN</tt>
--   authorizer, this is not defined. For authorizers of the
--   <tt>COGNITO_USER_POOLS</tt> type, each element corresponds to a user
--   pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .
aProviderARNs :: Lens' Authorizer [Text]

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
aName :: Lens' Authorizer (Maybe Text)

-- | The identifier for the authorizer resource.
aId :: Lens' Authorizer (Maybe Text)

-- | The TTL in seconds of cached authorizer results. If greater than 0,
--   API Gateway will cache authorizer responses. If this field is not set,
--   the default value is 300. The maximum value is 3600, or 1 hour.
aAuthorizerResultTtlInSeconds :: Lens' Authorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of the authorizer. Currently, the valid
--   type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   </ul>
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming request.
--   For a <tt>TOKEN</tt> authorizer, this value is a mapping expression
--   with the same syntax as integration parameter mappings. The only valid
--   source for tokens is <tt>header</tt>, so the expression should match
--   'method.request.header.[headerName]'. The value of the header
--   '[headerName]' will be interpreted as the incoming token. For
--   <tt>COGNITO_USER_POOLS</tt> authorizers, this property is used.</li>
--   </ul>
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any. Two
--   options are available. To specify an IAM role for Amazon API Gateway
--   to assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
aAuthorizerCredentials :: Lens' Authorizer (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Data.Data.Data Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance GHC.Show.Show Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance GHC.Read.Read Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetAuthorizer.GetAuthorizer


-- | Gets information about the current <a>Account</a> resource.
module Network.AWS.APIGateway.GetAccount

-- | Creates a value of <a>GetAccount</a> with the minimum fields required
--   to make a request.
getAccount :: GetAccount

-- | Requests Amazon API Gateway to get information about the current
--   <a>Account</a> resource.
--   
--   <i>See:</i> <a>getAccount</a> smart constructor.
data GetAccount

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aApiKeyVersion</a> - The version of the API keys used for the
--   account.</li>
--   <li><a>aCloudwatchRoleARN</a> - The ARN of an Amazon CloudWatch role
--   for the current <a>Account</a> .</li>
--   <li><a>aFeatures</a> - A list of features supported for the account.
--   When usage plans are enabled, the features list will include an entry
--   of <tt><a>UsagePlans</a></tt> .</li>
--   <li><a>aThrottleSettings</a> - Specifies the API request limits
--   configured for the current <a>Account</a> .</li>
--   </ul>
account :: Account

-- | Represents an AWS account that is associated with Amazon API Gateway.
--   
--   To view the account info, call <tt>GET</tt> on this resource.
--   
--   <b>Error Codes</b> The following exception may be thrown when the
--   request fails.
--   
--   <ul>
--   <li>UnauthorizedException * NotFoundException *
--   TooManyRequestsException</li>
--   </ul>
--   
--   For detailed error code information, including the corresponding HTTP
--   Status Codes, see <a>API Gateway Error Codes</a>
--   
--   <b>Example: Get the information about an account.</b> <b>Request</b>
--   @<tt>GET <i>account HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns a </tt>200
--   OK@ status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html"</a>,
--   "name": "account", "templated": true }, "self": { "href": "<i>account"
--   }, "account:update": { "href": "</i>account" } }, "cloudwatchRoleArn":
--   "arn:aws:iam::123456789012:role/apigAwsProxyRole", "throttleSettings":
--   { "rateLimit": 500, "burstLimit": 1000 } } </tt> @ In addition to
--   making the REST API call directly, you can use the AWS CLI and an AWS
--   SDK to access this resource.
--   
--   <a>API Gateway Limits</a> <a>Developer Guide</a> , <a>AWS CLI</a>
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | The version of the API keys used for the account.
aApiKeyVersion :: Lens' Account (Maybe Text)

-- | The ARN of an Amazon CloudWatch role for the current <a>Account</a> .
aCloudwatchRoleARN :: Lens' Account (Maybe Text)

-- | A list of features supported for the account. When usage plans are
--   enabled, the features list will include an entry of
--   <tt><a>UsagePlans</a></tt> .
aFeatures :: Lens' Account [Text]

-- | Specifies the API request limits configured for the current
--   <a>Account</a> .
aThrottleSettings :: Lens' Account (Maybe ThrottleSettings)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAccount.GetAccount
instance Data.Data.Data Network.AWS.APIGateway.GetAccount.GetAccount
instance GHC.Show.Show Network.AWS.APIGateway.GetAccount.GetAccount
instance GHC.Read.Read Network.AWS.APIGateway.GetAccount.GetAccount
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAccount.GetAccount
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetAccount.GetAccount
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetAccount.GetAccount
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAccount.GetAccount
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetAccount.GetAccount
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetAccount.GetAccount
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetAccount.GetAccount


-- | Gets information about the current <tt>ApiKeys</tt> resource.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetAPIKeys

-- | Creates a value of <a>GetAPIKeys</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gakIncludeValues</a> - A boolean flag to specify whether
--   (<tt>true</tt> ) or not (<tt>false</tt> ) the result contains key
--   values.</li>
--   <li><a>gakCustomerId</a> - The identifier of a customer in AWS
--   Marketplace or an external system, such as a developer portal.</li>
--   <li><a>gakNameQuery</a> - The name of queried API keys.</li>
--   <li><a>gakLimit</a> - The maximum number of <tt>ApiKeys</tt> to get
--   information about.</li>
--   <li><a>gakPosition</a> - The position of the current <tt>ApiKeys</tt>
--   resource to get information about.</li>
--   </ul>
getAPIKeys :: GetAPIKeys

-- | A request to get information about the current <tt>ApiKeys</tt>
--   resource.
--   
--   <i>See:</i> <a>getAPIKeys</a> smart constructor.
data GetAPIKeys

-- | A boolean flag to specify whether (<tt>true</tt> ) or not
--   (<tt>false</tt> ) the result contains key values.
gakIncludeValues :: Lens' GetAPIKeys (Maybe Bool)

-- | The identifier of a customer in AWS Marketplace or an external system,
--   such as a developer portal.
gakCustomerId :: Lens' GetAPIKeys (Maybe Text)

-- | The name of queried API keys.
gakNameQuery :: Lens' GetAPIKeys (Maybe Text)

-- | The maximum number of <tt>ApiKeys</tt> to get information about.
gakLimit :: Lens' GetAPIKeys (Maybe Int)

-- | The position of the current <tt>ApiKeys</tt> resource to get
--   information about.
gakPosition :: Lens' GetAPIKeys (Maybe Text)

-- | Creates a value of <a>GetAPIKeysResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gakrsItems</a> - The current page of any <tt>ApiKey</tt>
--   resources in the collection of <tt>ApiKey</tt> resources.</li>
--   <li><a>gakrsWarnings</a> - A list of warning messages logged during
--   the import of API keys when the <tt>failOnWarnings</tt> option is set
--   to true.</li>
--   <li><a>gakrsPosition</a> - Undocumented member.</li>
--   <li><a>gakrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getAPIKeysResponse :: Int -> GetAPIKeysResponse

-- | Represents a collection of API keys as represented by an
--   <tt>ApiKeys</tt> resource.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>getAPIKeysResponse</a> smart constructor.
data GetAPIKeysResponse

-- | The current page of any <tt>ApiKey</tt> resources in the collection of
--   <tt>ApiKey</tt> resources.
gakrsItems :: Lens' GetAPIKeysResponse [APIKey]

-- | A list of warning messages logged during the import of API keys when
--   the <tt>failOnWarnings</tt> option is set to true.
gakrsWarnings :: Lens' GetAPIKeysResponse [Text]

-- | Undocumented member.
gakrsPosition :: Lens' GetAPIKeysResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gakrsResponseStatus :: Lens' GetAPIKeysResponse Int
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance Data.Data.Data Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Data.Data.Data Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance GHC.Show.Show Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance GHC.Read.Read Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Network.AWS.Pager.AWSPager Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse


-- | Gets information about the current <tt>ApiKey</tt> resource.
module Network.AWS.APIGateway.GetAPIKey

-- | Creates a value of <a>GetAPIKey</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gakIncludeValue</a> - A boolean flag to specify whether
--   (<tt>true</tt> ) or not (<tt>false</tt> ) the result contains the key
--   value.</li>
--   <li><a>gakApiKey</a> - The identifier of the <tt>ApiKey</tt>
--   resource.</li>
--   </ul>
getAPIKey :: Text -> GetAPIKey

-- | A request to get information about the current <tt>ApiKey</tt>
--   resource.
--   
--   <i>See:</i> <a>getAPIKey</a> smart constructor.
data GetAPIKey

-- | A boolean flag to specify whether (<tt>true</tt> ) or not
--   (<tt>false</tt> ) the result contains the key value.
gakIncludeValue :: Lens' GetAPIKey (Maybe Bool)

-- | The identifier of the <tt>ApiKey</tt> resource.
gakApiKey :: Lens' GetAPIKey Text

-- | Creates a value of <a>APIKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akEnabled</a> - Specifies whether the API Key can be used by
--   callers.</li>
--   <li><a>akValue</a> - The value of the API Key.</li>
--   <li><a>akCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>akCreatedDate</a> - The date when the API Key was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>akName</a> - The name of the API Key.</li>
--   <li><a>akId</a> - The identifier of the API Key.</li>
--   <li><a>akStageKeys</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>akLastUpdatedDate</a> - When the API Key was last updated, in
--   ISO 8601 format.</li>
--   <li><a>akDescription</a> - The description of the API Key.</li>
--   </ul>
apiKey :: APIKey

-- | A resource that can be distributed to callers for executing
--   <a>Method</a> resources that require an API key. API keys can be
--   mapped to any <a>Stage</a> on any <tt>RestApi</tt> , which indicates
--   that the callers with the API key can make requests to that stage.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>apiKey</a> smart constructor.
data APIKey

-- | Specifies whether the API Key can be used by callers.
akEnabled :: Lens' APIKey (Maybe Bool)

-- | The value of the API Key.
akValue :: Lens' APIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
akCustomerId :: Lens' APIKey (Maybe Text)

-- | The date when the API Key was created, in <a>ISO 8601 format</a> .
akCreatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The name of the API Key.
akName :: Lens' APIKey (Maybe Text)

-- | The identifier of the API Key.
akId :: Lens' APIKey (Maybe Text)

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
akStageKeys :: Lens' APIKey [Text]

-- | When the API Key was last updated, in ISO 8601 format.
akLastUpdatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The description of the API Key.
akDescription :: Lens' APIKey (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Data.Data.Data Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance GHC.Show.Show Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance GHC.Read.Read Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance GHC.Classes.Eq Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetAPIKey.GetAPIKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetAPIKey.GetAPIKey


-- | Generates a <a>ClientCertificate</a> resource.
module Network.AWS.APIGateway.GenerateClientCertificate

-- | Creates a value of <a>GenerateClientCertificate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gccDescription</a> - The description of the
--   <a>ClientCertificate</a> .</li>
--   </ul>
generateClientCertificate :: GenerateClientCertificate

-- | A request to generate a <a>ClientCertificate</a> resource.
--   
--   <i>See:</i> <a>generateClientCertificate</a> smart constructor.
data GenerateClientCertificate

-- | The description of the <a>ClientCertificate</a> .
gccDescription :: Lens' GenerateClientCertificate (Maybe Text)

-- | Creates a value of <a>ClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccPemEncodedCertificate</a> - The PEM-encoded public key of the
--   client certificate, which can be used to configure certificate
--   authentication in the integration endpoint .</li>
--   <li><a>ccClientCertificateId</a> - The identifier of the client
--   certificate.</li>
--   <li><a>ccCreatedDate</a> - The date when the client certificate was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccExpirationDate</a> - The date when the client certificate
--   will expire, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccDescription</a> - The description of the client
--   certificate.</li>
--   </ul>
clientCertificate :: ClientCertificate

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used authenticate an API by the back-end
--   server. To authenticate an API client (or user), use a custom
--   <a>Authorizer</a> .<a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>clientCertificate</a> smart constructor.
data ClientCertificate

-- | The PEM-encoded public key of the client certificate, which can be
--   used to configure certificate authentication in the integration
--   endpoint .
ccPemEncodedCertificate :: Lens' ClientCertificate (Maybe Text)

-- | The identifier of the client certificate.
ccClientCertificateId :: Lens' ClientCertificate (Maybe Text)

-- | The date when the client certificate was created, in <a>ISO 8601
--   format</a> .
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The date when the client certificate will expire, in <a>ISO 8601
--   format</a> .
ccExpirationDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The description of the client certificate.
ccDescription :: Lens' ClientCertificate (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Data.Data.Data Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance GHC.Show.Show Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance GHC.Read.Read Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance GHC.Classes.Eq Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GenerateClientCertificate.GenerateClientCertificate


-- | Flushes a stage's cache.
module Network.AWS.APIGateway.FlushStageCache

-- | Creates a value of <a>FlushStageCache</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fscRestAPIId</a> - The API identifier of the stage to flush its
--   cache.</li>
--   <li><a>fscStageName</a> - The name of the stage to flush its
--   cache.</li>
--   </ul>
flushStageCache :: Text -> Text -> FlushStageCache

-- | Requests Amazon API Gateway to flush a stage's cache.
--   
--   <i>See:</i> <a>flushStageCache</a> smart constructor.
data FlushStageCache

-- | The API identifier of the stage to flush its cache.
fscRestAPIId :: Lens' FlushStageCache Text

-- | The name of the stage to flush its cache.
fscStageName :: Lens' FlushStageCache Text

-- | Creates a value of <a>FlushStageCacheResponse</a> with the minimum
--   fields required to make a request.
flushStageCacheResponse :: FlushStageCacheResponse

-- | <i>See:</i> <a>flushStageCacheResponse</a> smart constructor.
data FlushStageCacheResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
instance Data.Data.Data Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
instance GHC.Show.Show Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
instance GHC.Read.Read Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Data.Data.Data Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance GHC.Show.Show Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance GHC.Read.Read Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance GHC.Classes.Eq Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.FlushStageCache.FlushStageCache
instance Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse


-- | Flushes all authorizer cache entries on a stage.
module Network.AWS.APIGateway.FlushStageAuthorizersCache

-- | Creates a value of <a>FlushStageAuthorizersCache</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fsacRestAPIId</a> - The API identifier of the stage to
--   flush.</li>
--   <li><a>fsacStageName</a> - The name of the stage to flush.</li>
--   </ul>
flushStageAuthorizersCache :: Text -> Text -> FlushStageAuthorizersCache

-- | Request to flush authorizer cache entries on a specified stage.
--   
--   <i>See:</i> <a>flushStageAuthorizersCache</a> smart constructor.
data FlushStageAuthorizersCache

-- | The API identifier of the stage to flush.
fsacRestAPIId :: Lens' FlushStageAuthorizersCache Text

-- | The name of the stage to flush.
fsacStageName :: Lens' FlushStageAuthorizersCache Text

-- | Creates a value of <a>FlushStageAuthorizersCacheResponse</a> with the
--   minimum fields required to make a request.
flushStageAuthorizersCacheResponse :: FlushStageAuthorizersCacheResponse

-- | <i>See:</i> <a>flushStageAuthorizersCacheResponse</a> smart
--   constructor.
data FlushStageAuthorizersCacheResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
instance Data.Data.Data Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
instance GHC.Show.Show Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
instance GHC.Read.Read Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Data.Data.Data Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance GHC.Show.Show Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance GHC.Read.Read Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance GHC.Classes.Eq Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCache
instance Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse


-- | Deletes a usage plan key and remove the underlying API key from the
--   associated usage plan.
module Network.AWS.APIGateway.DeleteUsagePlanKey

-- | Creates a value of <a>DeleteUsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dupkUsagePlanId</a> - The Id of the <a>UsagePlan</a> resource
--   representing the usage plan containing the to-be-deleted
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   <li><a>dupkKeyId</a> - The Id of the <a>UsagePlanKey</a> resource to
--   be deleted.</li>
--   </ul>
deleteUsagePlanKey :: Text -> Text -> DeleteUsagePlanKey

-- | The DELETE request to delete a usage plan key and remove the
--   underlying API key from the associated usage plan.
--   
--   <i>See:</i> <a>deleteUsagePlanKey</a> smart constructor.
data DeleteUsagePlanKey

-- | The Id of the <a>UsagePlan</a> resource representing the usage plan
--   containing the to-be-deleted <a>UsagePlanKey</a> resource representing
--   a plan customer.
dupkUsagePlanId :: Lens' DeleteUsagePlanKey Text

-- | The Id of the <a>UsagePlanKey</a> resource to be deleted.
dupkKeyId :: Lens' DeleteUsagePlanKey Text

-- | Creates a value of <a>DeleteUsagePlanKeyResponse</a> with the minimum
--   fields required to make a request.
deleteUsagePlanKeyResponse :: DeleteUsagePlanKeyResponse

-- | <i>See:</i> <a>deleteUsagePlanKeyResponse</a> smart constructor.
data DeleteUsagePlanKeyResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Data.Data.Data Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance GHC.Show.Show Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance GHC.Read.Read Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse


-- | Deletes a usage plan of a given plan Id.
module Network.AWS.APIGateway.DeleteUsagePlan

-- | Creates a value of <a>DeleteUsagePlan</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dupUsagePlanId</a> - The Id of the to-be-deleted usage
--   plan.</li>
--   </ul>
deleteUsagePlan :: Text -> DeleteUsagePlan

-- | The DELETE request to delete a uasge plan of a given plan Id.
--   
--   <i>See:</i> <a>deleteUsagePlan</a> smart constructor.
data DeleteUsagePlan

-- | The Id of the to-be-deleted usage plan.
dupUsagePlanId :: Lens' DeleteUsagePlan Text

-- | Creates a value of <a>DeleteUsagePlanResponse</a> with the minimum
--   fields required to make a request.
deleteUsagePlanResponse :: DeleteUsagePlanResponse

-- | <i>See:</i> <a>deleteUsagePlanResponse</a> smart constructor.
data DeleteUsagePlanResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Data.Data.Data Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance GHC.Show.Show Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance GHC.Read.Read Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlan
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse


-- | Deletes a <a>Stage</a> resource.
module Network.AWS.APIGateway.DeleteStage

-- | Creates a value of <a>DeleteStage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Stage</a> resource to delete.</li>
--   <li><a>dsStageName</a> - The name of the <a>Stage</a> resource to
--   delete.</li>
--   </ul>
deleteStage :: Text -> Text -> DeleteStage

-- | Requests Amazon API Gateway to delete a <a>Stage</a> resource.
--   
--   <i>See:</i> <a>deleteStage</a> smart constructor.
data DeleteStage

-- | The identifier of the <tt>RestApi</tt> resource for the <a>Stage</a>
--   resource to delete.
dsRestAPIId :: Lens' DeleteStage Text

-- | The name of the <a>Stage</a> resource to delete.
dsStageName :: Lens' DeleteStage Text

-- | Creates a value of <a>DeleteStageResponse</a> with the minimum fields
--   required to make a request.
deleteStageResponse :: DeleteStageResponse

-- | <i>See:</i> <a>deleteStageResponse</a> smart constructor.
data DeleteStageResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Data.Data.Data Network.AWS.APIGateway.DeleteStage.DeleteStage
instance GHC.Show.Show Network.AWS.APIGateway.DeleteStage.DeleteStage
instance GHC.Read.Read Network.AWS.APIGateway.DeleteStage.DeleteStage
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteStage.DeleteStage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteStage.DeleteStageResponse


-- | Deletes the specified API.
module Network.AWS.APIGateway.DeleteRestAPI

-- | Creates a value of <a>DeleteRestAPI</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>draRestAPIId</a> - The ID of the <tt>RestApi</tt> you want to
--   delete.</li>
--   </ul>
deleteRestAPI :: Text -> DeleteRestAPI

-- | Request to delete the specified API from your collection.
--   
--   <i>See:</i> <a>deleteRestAPI</a> smart constructor.
data DeleteRestAPI

-- | The ID of the <tt>RestApi</tt> you want to delete.
draRestAPIId :: Lens' DeleteRestAPI Text

-- | Creates a value of <a>DeleteRestAPIResponse</a> with the minimum
--   fields required to make a request.
deleteRestAPIResponse :: DeleteRestAPIResponse

-- | <i>See:</i> <a>deleteRestAPIResponse</a> smart constructor.
data DeleteRestAPIResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Data.Data.Data Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance GHC.Read.Read Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse


-- | Deletes a <a>Resource</a> resource.
module Network.AWS.APIGateway.DeleteResource

-- | Creates a value of <a>DeleteResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Resource</a> resource.</li>
--   <li><a>drResourceId</a> - The identifier of the <a>Resource</a>
--   resource.</li>
--   </ul>
deleteResource :: Text -> Text -> DeleteResource

-- | Request to delete a <a>Resource</a> .
--   
--   <i>See:</i> <a>deleteResource</a> smart constructor.
data DeleteResource

-- | The <tt>RestApi</tt> identifier for the <a>Resource</a> resource.
drRestAPIId :: Lens' DeleteResource Text

-- | The identifier of the <a>Resource</a> resource.
drResourceId :: Lens' DeleteResource Text

-- | Creates a value of <a>DeleteResourceResponse</a> with the minimum
--   fields required to make a request.
deleteResourceResponse :: DeleteResourceResponse

-- | <i>See:</i> <a>deleteResourceResponse</a> smart constructor.
data DeleteResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Data.Data.Data Network.AWS.APIGateway.DeleteResource.DeleteResource
instance GHC.Show.Show Network.AWS.APIGateway.DeleteResource.DeleteResource
instance GHC.Read.Read Network.AWS.APIGateway.DeleteResource.DeleteResource
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteResource.DeleteResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse


-- | Deletes a model.
module Network.AWS.APIGateway.DeleteModel

-- | Creates a value of <a>DeleteModel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dRestAPIId</a> - The <tt>RestApi</tt> under which the model
--   will be deleted.</li>
--   <li><a>dModelName</a> - The name of the model to delete.</li>
--   </ul>
deleteModel :: Text -> Text -> DeleteModel

-- | Request to delete an existing model in an existing <tt>RestApi</tt>
--   resource.
--   
--   <i>See:</i> <a>deleteModel</a> smart constructor.
data DeleteModel

-- | The <tt>RestApi</tt> under which the model will be deleted.
dRestAPIId :: Lens' DeleteModel Text

-- | The name of the model to delete.
dModelName :: Lens' DeleteModel Text

-- | Creates a value of <a>DeleteModelResponse</a> with the minimum fields
--   required to make a request.
deleteModelResponse :: DeleteModelResponse

-- | <i>See:</i> <a>deleteModelResponse</a> smart constructor.
data DeleteModelResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Data.Data.Data Network.AWS.APIGateway.DeleteModel.DeleteModel
instance GHC.Show.Show Network.AWS.APIGateway.DeleteModel.DeleteModel
instance GHC.Read.Read Network.AWS.APIGateway.DeleteModel.DeleteModel
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteModel.DeleteModel
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteModel.DeleteModelResponse


-- | Deletes an existing <a>MethodResponse</a> resource.
module Network.AWS.APIGateway.DeleteMethodResponse

-- | Creates a value of <a>DeleteMethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>dmResourceId</a> - The <a>Resource</a> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   <li><a>dmHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   <li><a>dmStatusCode</a> - The status code identifier for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
deleteMethodResponse :: Text -> Text -> Text -> Text -> DeleteMethodResponse

-- | A request to delete an existing <a>MethodResponse</a> resource.
--   
--   <i>See:</i> <a>deleteMethodResponse</a> smart constructor.
data DeleteMethodResponse

-- | The <tt>RestApi</tt> identifier for the <a>MethodResponse</a>
--   resource.
dmRestAPIId :: Lens' DeleteMethodResponse Text

-- | The <a>Resource</a> identifier for the <a>MethodResponse</a> resource.
dmResourceId :: Lens' DeleteMethodResponse Text

-- | The HTTP verb of the <a>Method</a> resource.
dmHttpMethod :: Lens' DeleteMethodResponse Text

-- | The status code identifier for the <a>MethodResponse</a> resource.
dmStatusCode :: Lens' DeleteMethodResponse Text

-- | Creates a value of <a>DeleteMethodResponseResponse</a> with the
--   minimum fields required to make a request.
deleteMethodResponseResponse :: DeleteMethodResponseResponse

-- | <i>See:</i> <a>deleteMethodResponseResponse</a> smart constructor.
data DeleteMethodResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse


-- | Deletes an existing <a>Method</a> resource.
module Network.AWS.APIGateway.DeleteMethod

-- | Creates a value of <a>DeleteMethod</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmmRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>dmmResourceId</a> - The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   <li><a>dmmHttpMethod</a> - The HTTP verb of the <a>Method</a>
--   resource.</li>
--   </ul>
deleteMethod :: Text -> Text -> Text -> DeleteMethod

-- | Request to delete an existing <a>Method</a> resource.
--   
--   <i>See:</i> <a>deleteMethod</a> smart constructor.
data DeleteMethod

-- | The <tt>RestApi</tt> identifier for the <a>Method</a> resource.
dmmRestAPIId :: Lens' DeleteMethod Text

-- | The <a>Resource</a> identifier for the <a>Method</a> resource.
dmmResourceId :: Lens' DeleteMethod Text

-- | The HTTP verb of the <a>Method</a> resource.
dmmHttpMethod :: Lens' DeleteMethod Text

-- | Creates a value of <a>DeleteMethodResponse'</a> with the minimum
--   fields required to make a request.
deleteMethodResponse' :: DeleteMethodResponse'

-- | <i>See:</i> <a>deleteMethodResponse'</a> smart constructor.
data DeleteMethodResponse'
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
instance Data.Data.Data Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
instance GHC.Show.Show Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
instance GHC.Read.Read Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Data.Data.Data Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance GHC.Show.Show Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance GHC.Read.Read Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteMethod.DeleteMethod
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'


-- | Represents a delete integration response.
module Network.AWS.APIGateway.DeleteIntegrationResponse

-- | Creates a value of <a>DeleteIntegrationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>diRestAPIId</a> - Specifies a delete integration response
--   request's API identifier.</li>
--   <li><a>diResourceId</a> - Specifies a delete integration response
--   request's resource identifier.</li>
--   <li><a>diHttpMethod</a> - Specifies a delete integration response
--   request's HTTP method.</li>
--   <li><a>diStatusCode</a> - Specifies a delete integration response
--   request's status code.</li>
--   </ul>
deleteIntegrationResponse :: Text -> Text -> Text -> Text -> DeleteIntegrationResponse

-- | Represents a delete integration response request.
--   
--   <i>See:</i> <a>deleteIntegrationResponse</a> smart constructor.
data DeleteIntegrationResponse

-- | Specifies a delete integration response request's API identifier.
diRestAPIId :: Lens' DeleteIntegrationResponse Text

-- | Specifies a delete integration response request's resource identifier.
diResourceId :: Lens' DeleteIntegrationResponse Text

-- | Specifies a delete integration response request's HTTP method.
diHttpMethod :: Lens' DeleteIntegrationResponse Text

-- | Specifies a delete integration response request's status code.
diStatusCode :: Lens' DeleteIntegrationResponse Text

-- | Creates a value of <a>DeleteIntegrationResponseResponse</a> with the
--   minimum fields required to make a request.
deleteIntegrationResponseResponse :: DeleteIntegrationResponseResponse

-- | <i>See:</i> <a>deleteIntegrationResponseResponse</a> smart
--   constructor.
data DeleteIntegrationResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse


-- | Represents a delete integration.
module Network.AWS.APIGateway.DeleteIntegration

-- | Creates a value of <a>DeleteIntegration</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>delRestAPIId</a> - Specifies a delete integration request's API
--   identifier.</li>
--   <li><a>delResourceId</a> - Specifies a delete integration request's
--   resource identifier.</li>
--   <li><a>delHttpMethod</a> - Specifies a delete integration request's
--   HTTP method.</li>
--   </ul>
deleteIntegration :: Text -> Text -> Text -> DeleteIntegration

-- | Represents a delete integration request.
--   
--   <i>See:</i> <a>deleteIntegration</a> smart constructor.
data DeleteIntegration

-- | Specifies a delete integration request's API identifier.
delRestAPIId :: Lens' DeleteIntegration Text

-- | Specifies a delete integration request's resource identifier.
delResourceId :: Lens' DeleteIntegration Text

-- | Specifies a delete integration request's HTTP method.
delHttpMethod :: Lens' DeleteIntegration Text

-- | Creates a value of <a>DeleteIntegrationResponse'</a> with the minimum
--   fields required to make a request.
deleteIntegrationResponse' :: DeleteIntegrationResponse'

-- | <i>See:</i> <a>deleteIntegrationResponse'</a> smart constructor.
data DeleteIntegrationResponse'
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
instance Data.Data.Data Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
instance GHC.Show.Show Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
instance GHC.Read.Read Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Data.Data.Data Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance GHC.Show.Show Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance GHC.Read.Read Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteIntegration.DeleteIntegration
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'


-- | Deletes the <a>DomainName</a> resource.
module Network.AWS.APIGateway.DeleteDomainName

-- | Creates a value of <a>DeleteDomainName</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddnDomainName</a> - The name of the <a>DomainName</a> resource
--   to be deleted.</li>
--   </ul>
deleteDomainName :: Text -> DeleteDomainName

-- | A request to delete the <a>DomainName</a> resource.
--   
--   <i>See:</i> <a>deleteDomainName</a> smart constructor.
data DeleteDomainName

-- | The name of the <a>DomainName</a> resource to be deleted.
ddnDomainName :: Lens' DeleteDomainName Text

-- | Creates a value of <a>DeleteDomainNameResponse</a> with the minimum
--   fields required to make a request.
deleteDomainNameResponse :: DeleteDomainNameResponse

-- | <i>See:</i> <a>deleteDomainNameResponse</a> smart constructor.
data DeleteDomainNameResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Data.Data.Data Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteDomainName.DeleteDomainName
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse


-- | Undocumented operation.
module Network.AWS.APIGateway.DeleteDocumentationVersion

-- | Creates a value of <a>DeleteDocumentationVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddvRestAPIId</a> - [Required] The identifier of an API of a
--   to-be-deleted documentation snapshot.</li>
--   <li><a>ddvDocumentationVersion</a> - [Required] The version identifier
--   of a to-be-deleted documentation snapshot.</li>
--   </ul>
deleteDocumentationVersion :: Text -> Text -> DeleteDocumentationVersion

-- | Deletes an existing documentation version of an API.
--   
--   <i>See:</i> <a>deleteDocumentationVersion</a> smart constructor.
data DeleteDocumentationVersion

-- | <ul>
--   <li><i>Required</i> The identifier of an API of a to-be-deleted
--   documentation snapshot.</li>
--   </ul>
ddvRestAPIId :: Lens' DeleteDocumentationVersion Text

-- | <ul>
--   <li><i>Required</i> The version identifier of a to-be-deleted
--   documentation snapshot.</li>
--   </ul>
ddvDocumentationVersion :: Lens' DeleteDocumentationVersion Text

-- | Creates a value of <a>DeleteDocumentationVersionResponse</a> with the
--   minimum fields required to make a request.
deleteDocumentationVersionResponse :: DeleteDocumentationVersionResponse

-- | <i>See:</i> <a>deleteDocumentationVersionResponse</a> smart
--   constructor.
data DeleteDocumentationVersionResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Data.Data.Data Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersion
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse


-- | Undocumented operation.
module Network.AWS.APIGateway.DeleteDocumentationPart

-- | Creates a value of <a>DeleteDocumentationPart</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddpRestAPIId</a> - [Required] Specifies the identifier of an
--   API of the to-be-deleted documentation part.</li>
--   <li><a>ddpDocumentationPartId</a> - [Required] The identifier of the
--   to-be-deleted documentation part.</li>
--   </ul>
deleteDocumentationPart :: Text -> Text -> DeleteDocumentationPart

-- | Deletes an existing documentation part of an API.
--   
--   <i>See:</i> <a>deleteDocumentationPart</a> smart constructor.
data DeleteDocumentationPart

-- | <ul>
--   <li><i>Required</i> Specifies the identifier of an API of the
--   to-be-deleted documentation part.</li>
--   </ul>
ddpRestAPIId :: Lens' DeleteDocumentationPart Text

-- | <ul>
--   <li><i>Required</i> The identifier of the to-be-deleted documentation
--   part.</li>
--   </ul>
ddpDocumentationPartId :: Lens' DeleteDocumentationPart Text

-- | Creates a value of <a>DeleteDocumentationPartResponse</a> with the
--   minimum fields required to make a request.
deleteDocumentationPartResponse :: DeleteDocumentationPartResponse

-- | <i>See:</i> <a>deleteDocumentationPartResponse</a> smart constructor.
data DeleteDocumentationPartResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Data.Data.Data Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPart
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse


-- | Deletes a <a>Deployment</a> resource. Deleting a deployment will only
--   succeed if there are no <a>Stage</a> resources associated with it.
module Network.AWS.APIGateway.DeleteDeployment

-- | Creates a value of <a>DeleteDeployment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Deployment</a> resource to delete.</li>
--   <li><a>ddDeploymentId</a> - The identifier of the <a>Deployment</a>
--   resource to delete.</li>
--   </ul>
deleteDeployment :: Text -> Text -> DeleteDeployment

-- | Requests Amazon API Gateway to delete a <a>Deployment</a> resource.
--   
--   <i>See:</i> <a>deleteDeployment</a> smart constructor.
data DeleteDeployment

-- | The identifier of the <tt>RestApi</tt> resource for the
--   <a>Deployment</a> resource to delete.
ddRestAPIId :: Lens' DeleteDeployment Text

-- | The identifier of the <a>Deployment</a> resource to delete.
ddDeploymentId :: Lens' DeleteDeployment Text

-- | Creates a value of <a>DeleteDeploymentResponse</a> with the minimum
--   fields required to make a request.
deleteDeploymentResponse :: DeleteDeploymentResponse

-- | <i>See:</i> <a>deleteDeploymentResponse</a> smart constructor.
data DeleteDeploymentResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Data.Data.Data Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance GHC.Show.Show Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance GHC.Read.Read Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteDeployment.DeleteDeployment
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse


-- | Deletes the <a>ClientCertificate</a> resource.
module Network.AWS.APIGateway.DeleteClientCertificate

-- | Creates a value of <a>DeleteClientCertificate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dccClientCertificateId</a> - The identifier of the
--   <a>ClientCertificate</a> resource to be deleted.</li>
--   </ul>
deleteClientCertificate :: Text -> DeleteClientCertificate

-- | A request to delete the <a>ClientCertificate</a> resource.
--   
--   <i>See:</i> <a>deleteClientCertificate</a> smart constructor.
data DeleteClientCertificate

-- | The identifier of the <a>ClientCertificate</a> resource to be deleted.
dccClientCertificateId :: Lens' DeleteClientCertificate Text

-- | Creates a value of <a>DeleteClientCertificateResponse</a> with the
--   minimum fields required to make a request.
deleteClientCertificateResponse :: DeleteClientCertificateResponse

-- | <i>See:</i> <a>deleteClientCertificateResponse</a> smart constructor.
data DeleteClientCertificateResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Data.Data.Data Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance GHC.Show.Show Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance GHC.Read.Read Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificate
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse


-- | Deletes the <a>BasePathMapping</a> resource.
module Network.AWS.APIGateway.DeleteBasePathMapping

-- | Creates a value of <a>DeleteBasePathMapping</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dbpmDomainName</a> - The domain name of the
--   <a>BasePathMapping</a> resource to delete.</li>
--   <li><a>dbpmBasePath</a> - The base path name of the
--   <a>BasePathMapping</a> resource to delete.</li>
--   </ul>
deleteBasePathMapping :: Text -> Text -> DeleteBasePathMapping

-- | A request to delete the <a>BasePathMapping</a> resource.
--   
--   <i>See:</i> <a>deleteBasePathMapping</a> smart constructor.
data DeleteBasePathMapping

-- | The domain name of the <a>BasePathMapping</a> resource to delete.
dbpmDomainName :: Lens' DeleteBasePathMapping Text

-- | The base path name of the <a>BasePathMapping</a> resource to delete.
dbpmBasePath :: Lens' DeleteBasePathMapping Text

-- | Creates a value of <a>DeleteBasePathMappingResponse</a> with the
--   minimum fields required to make a request.
deleteBasePathMappingResponse :: DeleteBasePathMappingResponse

-- | <i>See:</i> <a>deleteBasePathMappingResponse</a> smart constructor.
data DeleteBasePathMappingResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Data.Data.Data Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance GHC.Show.Show Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance GHC.Read.Read Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMapping
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse


-- | Deletes an existing <a>Authorizer</a> resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.DeleteAuthorizer

-- | Creates a value of <a>DeleteAuthorizer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daRestAPIId</a> - The <tt>RestApi</tt> identifier for the
--   <a>Authorizer</a> resource.</li>
--   <li><a>daAuthorizerId</a> - The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
deleteAuthorizer :: Text -> Text -> DeleteAuthorizer

-- | Request to delete an existing <a>Authorizer</a> resource.
--   
--   <i>See:</i> <a>deleteAuthorizer</a> smart constructor.
data DeleteAuthorizer

-- | The <tt>RestApi</tt> identifier for the <a>Authorizer</a> resource.
daRestAPIId :: Lens' DeleteAuthorizer Text

-- | The identifier of the <a>Authorizer</a> resource.
daAuthorizerId :: Lens' DeleteAuthorizer Text

-- | Creates a value of <a>DeleteAuthorizerResponse</a> with the minimum
--   fields required to make a request.
deleteAuthorizerResponse :: DeleteAuthorizerResponse

-- | <i>See:</i> <a>deleteAuthorizerResponse</a> smart constructor.
data DeleteAuthorizerResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Data.Data.Data Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance GHC.Show.Show Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance GHC.Read.Read Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse


-- | Deletes the <tt>ApiKey</tt> resource.
module Network.AWS.APIGateway.DeleteAPIKey

-- | Creates a value of <a>DeleteAPIKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dakApiKey</a> - The identifier of the <tt>ApiKey</tt> resource
--   to be deleted.</li>
--   </ul>
deleteAPIKey :: Text -> DeleteAPIKey

-- | A request to delete the <tt>ApiKey</tt> resource.
--   
--   <i>See:</i> <a>deleteAPIKey</a> smart constructor.
data DeleteAPIKey

-- | The identifier of the <tt>ApiKey</tt> resource to be deleted.
dakApiKey :: Lens' DeleteAPIKey Text

-- | Creates a value of <a>DeleteAPIKeyResponse</a> with the minimum fields
--   required to make a request.
deleteAPIKeyResponse :: DeleteAPIKeyResponse

-- | <i>See:</i> <a>deleteAPIKeyResponse</a> smart constructor.
data DeleteAPIKeyResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Data.Data.Data Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance GHC.Show.Show Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance GHC.Read.Read Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse


-- | Creates a usage plan key for adding an existing API key to a usage
--   plan.
module Network.AWS.APIGateway.CreateUsagePlanKey

-- | Creates a value of <a>CreateUsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cupkUsagePlanId</a> - The Id of the <a>UsagePlan</a> resource
--   representing the usage plan containing the to-be-created
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   <li><a>cupkKeyId</a> - The identifier of a <a>UsagePlanKey</a>
--   resource for a plan customer.</li>
--   <li><a>cupkKeyType</a> - The type of a <a>UsagePlanKey</a> resource
--   for a plan customer.</li>
--   </ul>
createUsagePlanKey :: Text -> Text -> Text -> CreateUsagePlanKey

-- | The POST request to create a usage plan key for adding an existing API
--   key to a usage plan.
--   
--   <i>See:</i> <a>createUsagePlanKey</a> smart constructor.
data CreateUsagePlanKey

-- | The Id of the <a>UsagePlan</a> resource representing the usage plan
--   containing the to-be-created <a>UsagePlanKey</a> resource representing
--   a plan customer.
cupkUsagePlanId :: Lens' CreateUsagePlanKey Text

-- | The identifier of a <a>UsagePlanKey</a> resource for a plan customer.
cupkKeyId :: Lens' CreateUsagePlanKey Text

-- | The type of a <a>UsagePlanKey</a> resource for a plan customer.
cupkKeyType :: Lens' CreateUsagePlanKey Text

-- | Creates a value of <a>UsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upkValue</a> - The value of a usage plan key.</li>
--   <li><a>upkName</a> - The name of a usage plan key.</li>
--   <li><a>upkId</a> - The Id of a usage plan key.</li>
--   <li><a>upkType</a> - The type of a usage plan key. Currently, the
--   valid key type is <tt>API_KEY</tt> .</li>
--   </ul>
usagePlanKey :: UsagePlanKey

-- | Represents a usage plan key to identify a plan customer.
--   
--   To associate an API stage with a selected API key in a usage plan, you
--   must create a UsagePlanKey resource to represent the selected
--   <tt>ApiKey</tt> .
--   
--   " <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlanKey</a> smart constructor.
data UsagePlanKey

-- | The value of a usage plan key.
upkValue :: Lens' UsagePlanKey (Maybe Text)

-- | The name of a usage plan key.
upkName :: Lens' UsagePlanKey (Maybe Text)

-- | The Id of a usage plan key.
upkId :: Lens' UsagePlanKey (Maybe Text)

-- | The type of a usage plan key. Currently, the valid key type is
--   <tt>API_KEY</tt> .
upkType :: Lens' UsagePlanKey (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Data.Data.Data Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance GHC.Show.Show Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance GHC.Read.Read Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateUsagePlanKey.CreateUsagePlanKey


-- | Creates a usage plan with the throttle and quota limits, as well as
--   the associated API stages, specified in the payload.
module Network.AWS.APIGateway.CreateUsagePlan

-- | Creates a value of <a>CreateUsagePlan</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cupApiStages</a> - The associated API stages of the usage
--   plan.</li>
--   <li><a>cupThrottle</a> - The throttling limits of the usage plan.</li>
--   <li><a>cupQuota</a> - The quota of the usage plan.</li>
--   <li><a>cupDescription</a> - The description of the usage plan.</li>
--   <li><a>cupName</a> - The name of the usage plan.</li>
--   </ul>
createUsagePlan :: Text -> CreateUsagePlan

-- | The POST request to create a usage plan with the name, description,
--   throttle limits and quota limits, as well as the associated API
--   stages, specified in the payload.
--   
--   <i>See:</i> <a>createUsagePlan</a> smart constructor.
data CreateUsagePlan

-- | The associated API stages of the usage plan.
cupApiStages :: Lens' CreateUsagePlan [APIStage]

-- | The throttling limits of the usage plan.
cupThrottle :: Lens' CreateUsagePlan (Maybe ThrottleSettings)

-- | The quota of the usage plan.
cupQuota :: Lens' CreateUsagePlan (Maybe QuotaSettings)

-- | The description of the usage plan.
cupDescription :: Lens' CreateUsagePlan (Maybe Text)

-- | The name of the usage plan.
cupName :: Lens' CreateUsagePlan Text

-- | Creates a value of <a>UsagePlan</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upApiStages</a> - The associated API stages of a usage
--   plan.</li>
--   <li><a>upName</a> - The name of a usage plan.</li>
--   <li><a>upId</a> - The identifier of a <a>UsagePlan</a> resource.</li>
--   <li><a>upThrottle</a> - The request throttle limits of a usage
--   plan.</li>
--   <li><a>upQuota</a> - The maximum number of permitted requests per a
--   given unit time interval.</li>
--   <li><a>upDescription</a> - The description of a usage plan.</li>
--   <li><a>upProductCode</a> - The AWS Markeplace product identifier to
--   associate with the usage plan as a SaaS product on AWS
--   Marketplace.</li>
--   </ul>
usagePlan :: UsagePlan

-- | Represents a usage plan than can specify who can assess associated API
--   stages with specified request limits and quotas.
--   
--   In a usage plan, you associate an API by specifying the API's Id and a
--   stage name of the specified API. You add plan customers by adding API
--   keys to the plan.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlan</a> smart constructor.
data UsagePlan

-- | The associated API stages of a usage plan.
upApiStages :: Lens' UsagePlan [APIStage]

-- | The name of a usage plan.
upName :: Lens' UsagePlan (Maybe Text)

-- | The identifier of a <a>UsagePlan</a> resource.
upId :: Lens' UsagePlan (Maybe Text)

-- | The request throttle limits of a usage plan.
upThrottle :: Lens' UsagePlan (Maybe ThrottleSettings)

-- | The maximum number of permitted requests per a given unit time
--   interval.
upQuota :: Lens' UsagePlan (Maybe QuotaSettings)

-- | The description of a usage plan.
upDescription :: Lens' UsagePlan (Maybe Text)

-- | The AWS Markeplace product identifier to associate with the usage plan
--   as a SaaS product on AWS Marketplace.
upProductCode :: Lens' UsagePlan (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Data.Data.Data Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance GHC.Show.Show Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance GHC.Read.Read Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateUsagePlan.CreateUsagePlan


-- | Creates a new <a>Stage</a> resource that references a pre-existing
--   <a>Deployment</a> for the API.
module Network.AWS.APIGateway.CreateStage

-- | Creates a value of <a>CreateStage</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>csVariables</a> - A map that defines the stage variables for
--   the new <a>Stage</a> resource. Variable names can have alphanumeric
--   and underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>csDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>csCacheClusterSize</a> - The stage's cache cluster size.</li>
--   <li><a>csCacheClusterEnabled</a> - Whether cache clustering is enabled
--   for the stage.</li>
--   <li><a>csDescription</a> - The description of the <a>Stage</a>
--   resource.</li>
--   <li><a>csRestAPIId</a> - The identifier of the <tt>RestApi</tt>
--   resource for the <a>Stage</a> resource to create.</li>
--   <li><a>csStageName</a> - The name for the <a>Stage</a> resource.</li>
--   <li><a>csDeploymentId</a> - The identifier of the <a>Deployment</a>
--   resource for the <a>Stage</a> resource.</li>
--   </ul>
createStage :: Text -> Text -> Text -> CreateStage

-- | Requests Amazon API Gateway to create a <a>Stage</a> resource.
--   
--   <i>See:</i> <a>createStage</a> smart constructor.
data CreateStage

-- | A map that defines the stage variables for the new <a>Stage</a>
--   resource. Variable names can have alphanumeric and underscore
--   characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
csVariables :: Lens' CreateStage (HashMap Text Text)

-- | The version of the associated API documentation.
csDocumentationVersion :: Lens' CreateStage (Maybe Text)

-- | The stage's cache cluster size.
csCacheClusterSize :: Lens' CreateStage (Maybe CacheClusterSize)

-- | Whether cache clustering is enabled for the stage.
csCacheClusterEnabled :: Lens' CreateStage (Maybe Bool)

-- | The description of the <a>Stage</a> resource.
csDescription :: Lens' CreateStage (Maybe Text)

-- | The identifier of the <tt>RestApi</tt> resource for the <a>Stage</a>
--   resource to create.
csRestAPIId :: Lens' CreateStage Text

-- | The name for the <a>Stage</a> resource.
csStageName :: Lens' CreateStage Text

-- | The identifier of the <a>Deployment</a> resource for the <a>Stage</a>
--   resource.
csDeploymentId :: Lens' CreateStage Text

-- | Creates a value of <a>Stage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDeploymentId</a> - The identifier of the <a>Deployment</a>
--   that the stage points to.</li>
--   <li><a>sVariables</a> - A map that defines the stage variables for a
--   <a>Stage</a> resource. Variable names can have alphanumeric and
--   underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>sDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>sClientCertificateId</a> - The identifier of a client
--   certificate for an API stage.</li>
--   <li><a>sCreatedDate</a> - The date and time that the stage was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterStatus</a> - The status of the cache cluster for
--   the stage, if enabled.</li>
--   <li><a>sMethodSettings</a> - A map that defines the method settings
--   for a <a>Stage</a> resource. Keys (designated as
--   <tt>/{method_setting_key</tt> below) are method paths defined as
--   <tt>{resource_path}/{http_method}</tt> for an individual method
--   override, or <tt><i>*</i>*</tt> for overriding all methods in the
--   stage.</li>
--   <li><a>sLastUpdatedDate</a> - The date and time that information about
--   the stage was last updated, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCacheClusterEnabled</a> - Specifies whether a cache cluster is
--   enabled for the stage.</li>
--   <li><a>sStageName</a> - The name of the stage is the first path
--   segment in the Uniform Resource Identifier (URI) of a call to Amazon
--   API Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   </ul>
stage :: Stage

-- | Represents a unique identifier for a version of a deployed
--   <tt>RestApi</tt> that is callable by users.
--   
--   <a>Deploy an API</a>
--   
--   <i>See:</i> <a>stage</a> smart constructor.
data Stage

-- | The identifier of the <a>Deployment</a> that the stage points to.
sDeploymentId :: Lens' Stage (Maybe Text)

-- | A map that defines the stage variables for a <a>Stage</a> resource.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
sVariables :: Lens' Stage (HashMap Text Text)

-- | The version of the associated API documentation.
sDocumentationVersion :: Lens' Stage (Maybe Text)

-- | The identifier of a client certificate for an API stage.
sClientCertificateId :: Lens' Stage (Maybe Text)

-- | The date and time that the stage was created, in <a>ISO 8601
--   format</a> .
sCreatedDate :: Lens' Stage (Maybe UTCTime)

-- | The status of the cache cluster for the stage, if enabled.
sCacheClusterStatus :: Lens' Stage (Maybe CacheClusterStatus)

-- | A map that defines the method settings for a <a>Stage</a> resource.
--   Keys (designated as <tt>/{method_setting_key</tt> below) are method
--   paths defined as <tt>{resource_path}/{http_method}</tt> for an
--   individual method override, or <tt><i>*</i>*</tt> for overriding all
--   methods in the stage.
sMethodSettings :: Lens' Stage (HashMap Text MethodSetting)

-- | The date and time that information about the stage was last updated,
--   in <a>ISO 8601 format</a> .
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

-- | The size of the cache cluster for the stage, if enabled.
sCacheClusterSize :: Lens' Stage (Maybe CacheClusterSize)

-- | Specifies whether a cache cluster is enabled for the stage.
sCacheClusterEnabled :: Lens' Stage (Maybe Bool)

-- | The name of the stage is the first path segment in the Uniform
--   Resource Identifier (URI) of a call to Amazon API Gateway.
sStageName :: Lens' Stage (Maybe Text)

-- | The stage's description.
sDescription :: Lens' Stage (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateStage.CreateStage
instance Data.Data.Data Network.AWS.APIGateway.CreateStage.CreateStage
instance GHC.Show.Show Network.AWS.APIGateway.CreateStage.CreateStage
instance GHC.Read.Read Network.AWS.APIGateway.CreateStage.CreateStage
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateStage.CreateStage
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateStage.CreateStage
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateStage.CreateStage
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateStage.CreateStage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateStage.CreateStage
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateStage.CreateStage
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateStage.CreateStage
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateStage.CreateStage


-- | Creates a new <tt>RestApi</tt> resource.
module Network.AWS.APIGateway.CreateRestAPI

-- | Creates a value of <a>CreateRestAPI</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>craBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>craVersion</a> - A version identifier for the API.</li>
--   <li><a>craCloneFrom</a> - The ID of the <tt>RestApi</tt> that you want
--   to clone from.</li>
--   <li><a>craDescription</a> - The description of the <tt>RestApi</tt>
--   .</li>
--   <li><a>craName</a> - The name of the <tt>RestApi</tt> .</li>
--   </ul>
createRestAPI :: Text -> CreateRestAPI

-- | The POST Request to add a new <tt>RestApi</tt> resource to your
--   collection.
--   
--   <i>See:</i> <a>createRestAPI</a> smart constructor.
data CreateRestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
craBinaryMediaTypes :: Lens' CreateRestAPI [Text]

-- | A version identifier for the API.
craVersion :: Lens' CreateRestAPI (Maybe Text)

-- | The ID of the <tt>RestApi</tt> that you want to clone from.
craCloneFrom :: Lens' CreateRestAPI (Maybe Text)

-- | The description of the <tt>RestApi</tt> .
craDescription :: Lens' CreateRestAPI (Maybe Text)

-- | The name of the <tt>RestApi</tt> .
craName :: Lens' CreateRestAPI Text

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Data.Data.Data Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance GHC.Show.Show Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance GHC.Read.Read Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateRestAPI.CreateRestAPI


-- | Creates a <a>Resource</a> resource.
module Network.AWS.APIGateway.CreateResource

-- | Creates a value of <a>CreateResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crRestAPIId</a> - The identifier of the <tt>RestApi</tt> for
--   the resource.</li>
--   <li><a>crParentId</a> - The parent resource's identifier.</li>
--   <li><a>crPathPart</a> - The last path segment for this resource.</li>
--   </ul>
createResource :: Text -> Text -> Text -> CreateResource

-- | Requests Amazon API Gateway to create a <a>Resource</a> resource.
--   
--   <i>See:</i> <a>createResource</a> smart constructor.
data CreateResource

-- | The identifier of the <tt>RestApi</tt> for the resource.
crRestAPIId :: Lens' CreateResource Text

-- | The parent resource's identifier.
crParentId :: Lens' CreateResource Text

-- | The last path segment for this resource.
crPathPart :: Lens' CreateResource Text

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPathPart</a> - The last path segment for this resource.</li>
--   <li><a>rPath</a> - The full path for this resource.</li>
--   <li><a>rId</a> - The resource's identifier.</li>
--   <li><a>rResourceMethods</a> - Gets an API resource's method of a given
--   HTTP verb. The resource methods are a map of methods indexed by
--   methods' HTTP verbs enabled on the resource. This method map is
--   included in the <tt>200 OK</tt> response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .</li>
--   <li><a>rParentId</a> - The parent resource's identifier.</li>
--   </ul>
resource :: Resource

-- | Represents an API resource.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | The last path segment for this resource.
rPathPart :: Lens' Resource (Maybe Text)

-- | The full path for this resource.
rPath :: Lens' Resource (Maybe Text)

-- | The resource's identifier.
rId :: Lens' Resource (Maybe Text)

-- | Gets an API resource's method of a given HTTP verb. The resource
--   methods are a map of methods indexed by methods' HTTP verbs enabled on
--   the resource. This method map is included in the <tt>200 OK</tt>
--   response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .
rResourceMethods :: Lens' Resource (HashMap Text Method)

-- | The parent resource's identifier.
rParentId :: Lens' Resource (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateResource.CreateResource
instance Data.Data.Data Network.AWS.APIGateway.CreateResource.CreateResource
instance GHC.Show.Show Network.AWS.APIGateway.CreateResource.CreateResource
instance GHC.Read.Read Network.AWS.APIGateway.CreateResource.CreateResource
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateResource.CreateResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateResource.CreateResource
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateResource.CreateResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateResource.CreateResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateResource.CreateResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateResource.CreateResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateResource.CreateResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateResource.CreateResource


-- | Adds a new <a>Model</a> resource to an existing <tt>RestApi</tt>
--   resource.
module Network.AWS.APIGateway.CreateModel

-- | Creates a value of <a>CreateModel</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model.</li>
--   <li><a>cmDescription</a> - The description of the model.</li>
--   <li><a>cmRestAPIId</a> - The <tt>RestApi</tt> identifier under which
--   the <a>Model</a> will be created.</li>
--   <li><a>cmName</a> - The name of the model.</li>
--   <li><a>cmContentType</a> - The content-type for the model.</li>
--   </ul>
createModel :: Text -> Text -> Text -> CreateModel

-- | Request to add a new <a>Model</a> to an existing <tt>RestApi</tt>
--   resource.
--   
--   <i>See:</i> <a>createModel</a> smart constructor.
data CreateModel

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model.
cmSchema :: Lens' CreateModel (Maybe Text)

-- | The description of the model.
cmDescription :: Lens' CreateModel (Maybe Text)

-- | The <tt>RestApi</tt> identifier under which the <a>Model</a> will be
--   created.
cmRestAPIId :: Lens' CreateModel Text

-- | The name of the model.
cmName :: Lens' CreateModel Text

-- | The content-type for the model.
cmContentType :: Lens' CreateModel Text

-- | Creates a value of <a>Model</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model. Do not include "*<i>" characters in the description of
--   any properties because such "*</i>" characters may be interpreted as
--   the closing marker for comments in some languages, such as Java or
--   JavaScript, causing the installation of your API's SDK generated by
--   API Gateway to fail.</li>
--   <li><a>mName</a> - The name of the model.</li>
--   <li><a>mId</a> - The identifier for the model resource.</li>
--   <li><a>mDescription</a> - The description of the model.</li>
--   <li><a>mContentType</a> - The content-type for the model.</li>
--   </ul>
model :: Model

-- | Represents the data structure of a method's request or response
--   payload.
--   
--   A request model defines the data structure of the client-supplied
--   request payload. A response model defines the data structure of the
--   response payload returned by the back end. Although not required,
--   models are useful for mapping payloads between the front end and back
--   end.
--   
--   A model is used for generating an API's SDK, validating the input
--   request body, and creating a skeletal mapping template.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>model</a> smart constructor.
data Model

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model. Do not include "*<i>"
--   characters in the description of any properties because such "*</i>"
--   characters may be interpreted as the closing marker for comments in
--   some languages, such as Java or JavaScript, causing the installation
--   of your API's SDK generated by API Gateway to fail.
mSchema :: Lens' Model (Maybe Text)

-- | The name of the model.
mName :: Lens' Model (Maybe Text)

-- | The identifier for the model resource.
mId :: Lens' Model (Maybe Text)

-- | The description of the model.
mDescription :: Lens' Model (Maybe Text)

-- | The content-type for the model.
mContentType :: Lens' Model (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateModel.CreateModel
instance Data.Data.Data Network.AWS.APIGateway.CreateModel.CreateModel
instance GHC.Show.Show Network.AWS.APIGateway.CreateModel.CreateModel
instance GHC.Read.Read Network.AWS.APIGateway.CreateModel.CreateModel
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateModel.CreateModel
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateModel.CreateModel
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateModel.CreateModel
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateModel.CreateModel
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateModel.CreateModel
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateModel.CreateModel
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateModel.CreateModel
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateModel.CreateModel


-- | Creates a new domain name.
module Network.AWS.APIGateway.CreateDomainName

-- | Creates a value of <a>CreateDomainName</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>cdnCertificateName</a> - The name of the certificate.</li>
--   <li><a>cdnCertificateBody</a> - The body of the server certificate
--   provided by your certificate authority.</li>
--   <li><a>cdnCertificatePrivateKey</a> - Your certificate's private
--   key.</li>
--   <li><a>cdnCertificateChain</a> - The intermediate certificates and
--   optionally the root certificate, one after the other without any blank
--   lines. If you include the root certificate, your certificate chain
--   must start with intermediate certificates and end with the root
--   certificate. Use the intermediate certificates that were provided by
--   your certificate authority. Do not include any intermediaries that are
--   not in the chain of trust path.</li>
--   </ul>
createDomainName :: Text -> Text -> Text -> Text -> Text -> CreateDomainName

-- | A request to create a new domain name.
--   
--   <i>See:</i> <a>createDomainName</a> smart constructor.
data CreateDomainName

-- | The name of the <a>DomainName</a> resource.
cdnDomainName :: Lens' CreateDomainName Text

-- | The name of the certificate.
cdnCertificateName :: Lens' CreateDomainName Text

-- | The body of the server certificate provided by your certificate
--   authority.
cdnCertificateBody :: Lens' CreateDomainName Text

-- | Your certificate's private key.
cdnCertificatePrivateKey :: Lens' CreateDomainName Text

-- | The intermediate certificates and optionally the root certificate, one
--   after the other without any blank lines. If you include the root
--   certificate, your certificate chain must start with intermediate
--   certificates and end with the root certificate. Use the intermediate
--   certificates that were provided by your certificate authority. Do not
--   include any intermediaries that are not in the chain of trust path.
cdnCertificateChain :: Lens' CreateDomainName Text

-- | Creates a value of <a>DomainName</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnCertificateName</a> - The name of the certificate.</li>
--   <li><a>dnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>dnCertificateUploadDate</a> - The date when the certificate was
--   uploaded, in <a>ISO 8601 format</a> .</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution. For more information, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   </ul>
domainName :: DomainName

-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The name of the certificate.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The name of the <a>DomainName</a> resource.
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The date when the certificate was uploaded, in <a>ISO 8601 format</a>
--   .
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution. For more
--   information, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Data.Data.Data Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance GHC.Show.Show Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance GHC.Read.Read Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateDomainName.CreateDomainName
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateDomainName.CreateDomainName


-- | Undocumented operation.
module Network.AWS.APIGateway.CreateDocumentationVersion

-- | Creates a value of <a>CreateDocumentationVersion</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdvStageName</a> - The stage name to be associated with the new
--   documentation snapshot.</li>
--   <li><a>cdvDescription</a> - A description about the new documentation
--   snapshot.</li>
--   <li><a>cdvRestAPIId</a> - [Required] Specifies the API identifier of
--   the to-be-created documentation version.</li>
--   <li><a>cdvDocumentationVersion</a> - [Required] The version identifier
--   of the new snapshot.</li>
--   </ul>
createDocumentationVersion :: Text -> Text -> CreateDocumentationVersion

-- | Creates a new documentation version of a given API.
--   
--   <i>See:</i> <a>createDocumentationVersion</a> smart constructor.
data CreateDocumentationVersion

-- | The stage name to be associated with the new documentation snapshot.
cdvStageName :: Lens' CreateDocumentationVersion (Maybe Text)

-- | A description about the new documentation snapshot.
cdvDescription :: Lens' CreateDocumentationVersion (Maybe Text)

-- | <ul>
--   <li><i>Required</i> Specifies the API identifier of the to-be-created
--   documentation version.</li>
--   </ul>
cdvRestAPIId :: Lens' CreateDocumentationVersion Text

-- | <ul>
--   <li><i>Required</i> The version identifier of the new snapshot.</li>
--   </ul>
cdvDocumentationVersion :: Lens' CreateDocumentationVersion Text

-- | Creates a value of <a>DocumentationVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvCreatedDate</a> - The date when the API documentation
--   snapshot is created.</li>
--   <li><a>dvVersion</a> - The version identifier of the API documentation
--   snapshot.</li>
--   <li><a>dvDescription</a> - The description of the API documentation
--   snapshot.</li>
--   </ul>
documentationVersion :: DocumentationVersion

-- | A snapshot of the documentation of an API.
--   
--   Publishing API documentation involves creating a documentation version
--   associated with an API stage and exporting the versioned documentation
--   to an external (e.g., Swagger) file.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <tt>DocumentationVersions</tt>
--   
--   <i>See:</i> <a>documentationVersion</a> smart constructor.
data DocumentationVersion

-- | The date when the API documentation snapshot is created.
dvCreatedDate :: Lens' DocumentationVersion (Maybe UTCTime)

-- | The version identifier of the API documentation snapshot.
dvVersion :: Lens' DocumentationVersion (Maybe Text)

-- | The description of the API documentation snapshot.
dvDescription :: Lens' DocumentationVersion (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Data.Data.Data Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance GHC.Show.Show Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance GHC.Read.Read Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateDocumentationVersion.CreateDocumentationVersion


-- | Undocumented operation.
module Network.AWS.APIGateway.CreateDocumentationPart

-- | Creates a value of <a>CreateDocumentationPart</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdpRestAPIId</a> - [Required] The identifier of an API of the
--   to-be-created documentation part.</li>
--   <li><a>cdpLocation</a> - [Required] The location of the targeted API
--   entity of the to-be-created documentation part.</li>
--   <li><a>cdpProperties</a> - [Required] The new documentation content
--   map of the targeted API entity. Enclosed key-value pairs are
--   API-specific, but only Swagger-compliant key-value pairs can be
--   exported and, hence, published.</li>
--   </ul>
createDocumentationPart :: Text -> DocumentationPartLocation -> Text -> CreateDocumentationPart

-- | Creates a new documentation part of a given API.
--   
--   <i>See:</i> <a>createDocumentationPart</a> smart constructor.
data CreateDocumentationPart

-- | <ul>
--   <li><i>Required</i> The identifier of an API of the to-be-created
--   documentation part.</li>
--   </ul>
cdpRestAPIId :: Lens' CreateDocumentationPart Text

-- | <ul>
--   <li><i>Required</i> The location of the targeted API entity of the
--   to-be-created documentation part.</li>
--   </ul>
cdpLocation :: Lens' CreateDocumentationPart DocumentationPartLocation

-- | <ul>
--   <li><i>Required</i> The new documentation content map of the targeted
--   API entity. Enclosed key-value pairs are API-specific, but only
--   Swagger-compliant key-value pairs can be exported and, hence,
--   published.</li>
--   </ul>
cdpProperties :: Lens' CreateDocumentationPart Text

-- | Creates a value of <a>DocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpLocation</a> - The location of the API entity to which the
--   documentation applies. Valid fields depend on the targeted API entity
--   type. All the valid location fields are not required. If not
--   explicitly specified, a valid location field is treated as a wildcard
--   and associated documentation content may be inherited by matching
--   entities, unless overridden.</li>
--   <li><a>dpId</a> - The <a>DocumentationPart</a> identifier, generated
--   by Amazon API Gateway when the <tt>DocumentationPart</tt> is
--   created.</li>
--   <li><a>dpProperties</a> - A content map of API-specific key-value
--   pairs describing the targeted API entity. The map must be encoded as a
--   JSON string, e.g., <tt>"{ "description": "The API does ..." }"</tt> .
--   Only Swagger-compliant documentation-related fields from the
--   <tt>properties</tt> map are exported and, hence, published as part of
--   the API entity definitions, while the original documentation parts are
--   exported in a Swagger extension of
--   <tt>x-amazon-apigateway-documentation</tt> .</li>
--   </ul>
documentationPart :: DocumentationPart

-- | A documentation part for a targeted API entity.
--   
--   A documentation part consists of a content map (<tt>properties</tt> )
--   and a target (<tt>location</tt> ). The target specifies an API entity
--   to which the documentation content applies. The supported API entity
--   types are <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Valid <tt>location</tt> fields depend on
--   the API entity type. All valid fields are not required.
--   
--   The content map is a JSON string of API-specific key-value pairs.
--   Although an API can use any shape for the content map, only the
--   Swagger-compliant documentation fields will be injected into the
--   associated API entity definition in the exported Swagger definition
--   file.
--   
--   <a>Documenting an API</a> , <tt>DocumentationParts</tt>
--   
--   <i>See:</i> <a>documentationPart</a> smart constructor.
data DocumentationPart

-- | The location of the API entity to which the documentation applies.
--   Valid fields depend on the targeted API entity type. All the valid
--   location fields are not required. If not explicitly specified, a valid
--   location field is treated as a wildcard and associated documentation
--   content may be inherited by matching entities, unless overridden.
dpLocation :: Lens' DocumentationPart (Maybe DocumentationPartLocation)

-- | The <a>DocumentationPart</a> identifier, generated by Amazon API
--   Gateway when the <tt>DocumentationPart</tt> is created.
dpId :: Lens' DocumentationPart (Maybe Text)

-- | A content map of API-specific key-value pairs describing the targeted
--   API entity. The map must be encoded as a JSON string, e.g., <tt>"{
--   "description": "The API does ..." }"</tt> . Only Swagger-compliant
--   documentation-related fields from the <tt>properties</tt> map are
--   exported and, hence, published as part of the API entity definitions,
--   while the original documentation parts are exported in a Swagger
--   extension of <tt>x-amazon-apigateway-documentation</tt> .
dpProperties :: Lens' DocumentationPart (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Data.Data.Data Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance GHC.Show.Show Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance GHC.Read.Read Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateDocumentationPart.CreateDocumentationPart


-- | Creates a <a>Deployment</a> resource, which makes a specified
--   <tt>RestApi</tt> callable over the internet.
module Network.AWS.APIGateway.CreateDeployment

-- | Creates a value of <a>CreateDeployment</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdStageDescription</a> - The description of the <a>Stage</a>
--   resource for the <a>Deployment</a> resource to create.</li>
--   <li><a>cdVariables</a> - A map that defines the stage variables for
--   the <a>Stage</a> resource that is associated with the new deployment.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>cdCacheClusterSize</a> - Specifies the cache cluster size for
--   the <a>Stage</a> resource specified in the input, if a cache cluster
--   is enabled.</li>
--   <li><a>cdCacheClusterEnabled</a> - Enables a cache cluster for the
--   <a>Stage</a> resource specified in the input.</li>
--   <li><a>cdStageName</a> - The name of the <a>Stage</a> resource for the
--   <a>Deployment</a> resource to create.</li>
--   <li><a>cdDescription</a> - The description for the <a>Deployment</a>
--   resource to create.</li>
--   <li><a>cdRestAPIId</a> - The <tt>RestApi</tt> resource identifier for
--   the <a>Deployment</a> resource to create.</li>
--   </ul>
createDeployment :: Text -> CreateDeployment

-- | Requests Amazon API Gateway to create a <a>Deployment</a> resource.
--   
--   <i>See:</i> <a>createDeployment</a> smart constructor.
data CreateDeployment

-- | The description of the <a>Stage</a> resource for the <a>Deployment</a>
--   resource to create.
cdStageDescription :: Lens' CreateDeployment (Maybe Text)

-- | A map that defines the stage variables for the <a>Stage</a> resource
--   that is associated with the new deployment. Variable names can have
--   alphanumeric and underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
cdVariables :: Lens' CreateDeployment (HashMap Text Text)

-- | Specifies the cache cluster size for the <a>Stage</a> resource
--   specified in the input, if a cache cluster is enabled.
cdCacheClusterSize :: Lens' CreateDeployment (Maybe CacheClusterSize)

-- | Enables a cache cluster for the <a>Stage</a> resource specified in the
--   input.
cdCacheClusterEnabled :: Lens' CreateDeployment (Maybe Bool)

-- | The name of the <a>Stage</a> resource for the <a>Deployment</a>
--   resource to create.
cdStageName :: Lens' CreateDeployment (Maybe Text)

-- | The description for the <a>Deployment</a> resource to create.
cdDescription :: Lens' CreateDeployment (Maybe Text)

-- | The <tt>RestApi</tt> resource identifier for the <a>Deployment</a>
--   resource to create.
cdRestAPIId :: Lens' CreateDeployment Text

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dApiSummary</a> - A summary of the <tt>RestApi</tt> at the date
--   and time that the deployment resource was created.</li>
--   <li><a>dCreatedDate</a> - The date and time that the deployment
--   resource was created.</li>
--   <li><a>dId</a> - The identifier for the deployment resource.</li>
--   <li><a>dDescription</a> - The description for the deployment
--   resource.</li>
--   </ul>
deployment :: Deployment

-- | An immutable representation of a <tt>RestApi</tt> resource that can be
--   called by users using <tt>Stages</tt> . A deployment must be
--   associated with a <a>Stage</a> for it to be callable over the
--   Internet.
--   
--   To create a deployment, call <tt>POST</tt> on the <tt>Deployments</tt>
--   resource of a <tt>RestApi</tt> . To view, update, or delete a
--   deployment, call <tt>GET</tt> , <tt>PATCH</tt> , or <tt>DELETE</tt> on
--   the specified deployment resource
--   (<tt><i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}</tt>
--   ).<tt>RestApi</tt> , <tt>Deployments</tt> , <a>Stage</a> , <a>AWS
--   CLI</a> , <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | A summary of the <tt>RestApi</tt> at the date and time that the
--   deployment resource was created.
dApiSummary :: Lens' Deployment (HashMap Text (HashMap Text MethodSnapshot))

-- | The date and time that the deployment resource was created.
dCreatedDate :: Lens' Deployment (Maybe UTCTime)

-- | The identifier for the deployment resource.
dId :: Lens' Deployment (Maybe Text)

-- | The description for the deployment resource.
dDescription :: Lens' Deployment (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Data.Data.Data Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance GHC.Show.Show Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance GHC.Read.Read Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateDeployment.CreateDeployment
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateDeployment.CreateDeployment


-- | Creates a new <a>BasePathMapping</a> resource.
module Network.AWS.APIGateway.CreateBasePathMapping

-- | Creates a value of <a>CreateBasePathMapping</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cbpmStage</a> - The name of the API's stage that you want to
--   use for this mapping. Leave this blank if you do not want callers to
--   explicitly specify the stage name after any base path name.</li>
--   <li><a>cbpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name. This value must
--   be unique for all of the mappings across a single API. Leave this
--   blank if you do not want callers to specify a base path name after the
--   domain name.</li>
--   <li><a>cbpmDomainName</a> - The domain name of the
--   <a>BasePathMapping</a> resource to create.</li>
--   <li><a>cbpmRestAPIId</a> - The name of the API that you want to apply
--   this mapping to.</li>
--   </ul>
createBasePathMapping :: Text -> Text -> CreateBasePathMapping

-- | Requests Amazon API Gateway to create a new <a>BasePathMapping</a>
--   resource.
--   
--   <i>See:</i> <a>createBasePathMapping</a> smart constructor.
data CreateBasePathMapping

-- | The name of the API's stage that you want to use for this mapping.
--   Leave this blank if you do not want callers to explicitly specify the
--   stage name after any base path name.
cbpmStage :: Lens' CreateBasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name. This value must be unique for all of the
--   mappings across a single API. Leave this blank if you do not want
--   callers to specify a base path name after the domain name.
cbpmBasePath :: Lens' CreateBasePathMapping (Maybe Text)

-- | The domain name of the <a>BasePathMapping</a> resource to create.
cbpmDomainName :: Lens' CreateBasePathMapping Text

-- | The name of the API that you want to apply this mapping to.
cbpmRestAPIId :: Lens' CreateBasePathMapping Text

-- | Creates a value of <a>BasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpmStage</a> - The name of the API's stage.</li>
--   <li><a>bpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name.</li>
--   <li><a>bpmRestAPIId</a> - The name of the API.</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | Represents the base path that callers of the API must provide as part
--   of the URL after the domain name.
--   
--   A custom domain name plus a <tt>BasePathMapping</tt> specification
--   identifies a deployed <tt>RestApi</tt> in a given stage of the owner
--   <a>Account</a> .<a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>basePathMapping</a> smart constructor.
data BasePathMapping

-- | The name of the API's stage.
bpmStage :: Lens' BasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name.
bpmBasePath :: Lens' BasePathMapping (Maybe Text)

-- | The name of the API.
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Data.Data.Data Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance GHC.Show.Show Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance GHC.Read.Read Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateBasePathMapping.CreateBasePathMapping


-- | Adds a new <a>Authorizer</a> resource to an existing <tt>RestApi</tt>
--   resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.CreateAuthorizer

-- | Creates a value of <a>CreateAuthorizer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>caAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI).</li>
--   <li><a>caIdentityValidationExpression</a> - A validation expression
--   for the incoming identity.</li>
--   <li><a>caProviderARNs</a> - A list of the Cognito Your User Pool
--   authorizer's provider ARNs.</li>
--   <li><a>caAuthorizerResultTtlInSeconds</a> - The TTL of cached
--   authorizer results.</li>
--   <li><a>caAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>caAuthorizerCredentials</a> - Specifies the credentials
--   required for the authorizer, if any.</li>
--   <li><a>caRestAPIId</a> - The <tt>RestApi</tt> identifier under which
--   the <a>Authorizer</a> will be created.</li>
--   <li><a>caName</a> - [Required] The name of the authorizer.</li>
--   <li><a>caType</a> - [Required] The type of the authorizer.</li>
--   <li><a>caIdentitySource</a> - [Required] The source of the identity in
--   an incoming request.</li>
--   </ul>
createAuthorizer :: Text -> Text -> AuthorizerType -> Text -> CreateAuthorizer

-- | Request to add a new <a>Authorizer</a> to an existing <tt>RestApi</tt>
--   resource.
--   
--   <i>See:</i> <a>createAuthorizer</a> smart constructor.
data CreateAuthorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI).</li>
--   </ul>
caAuthorizerURI :: Lens' CreateAuthorizer (Maybe Text)

-- | A validation expression for the incoming identity.
caIdentityValidationExpression :: Lens' CreateAuthorizer (Maybe Text)

-- | A list of the Cognito Your User Pool authorizer's provider ARNs.
caProviderARNs :: Lens' CreateAuthorizer [Text]

-- | The TTL of cached authorizer results.
caAuthorizerResultTtlInSeconds :: Lens' CreateAuthorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
caAuthType :: Lens' CreateAuthorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any.
caAuthorizerCredentials :: Lens' CreateAuthorizer (Maybe Text)

-- | The <tt>RestApi</tt> identifier under which the <a>Authorizer</a> will
--   be created.
caRestAPIId :: Lens' CreateAuthorizer Text

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
caName :: Lens' CreateAuthorizer Text

-- | <ul>
--   <li><i>Required</i> The type of the authorizer.</li>
--   </ul>
caType :: Lens' CreateAuthorizer AuthorizerType

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming
--   request.</li>
--   </ul>
caIdentitySource :: Lens' CreateAuthorizer Text

-- | Creates a value of <a>Authorizer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI). For <tt>TOKEN</tt> authorizers,
--   this must be a well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity. For <tt>TOKEN</tt> authorizers, this value
--   should be a regular expression. The incoming token from the client is
--   matched against this expression, and will proceed if the token
--   matches. If the token doesn't match, the client receives a 401
--   Unauthorized response.</li>
--   <li><a>aProviderARNs</a> - A list of the provider ARNs of the
--   authorizer. For an <tt>TOKEN</tt> authorizer, this is not defined. For
--   authorizers of the <tt>COGNITO_USER_POOLS</tt> type, each element
--   corresponds to a user pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .</li>
--   <li><a>aName</a> - [Required] The name of the authorizer.</li>
--   <li><a>aId</a> - The identifier for the authorizer resource.</li>
--   <li><a>aAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If greater than 0, API Gateway will cache
--   authorizer responses. If this field is not set, the default value is
--   300. The maximum value is 3600, or 1 hour.</li>
--   <li><a>aAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>aType</a> - [Required] The type of the authorizer. Currently,
--   the valid type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   <li><a>aIdentitySource</a> - [Required] The source of the identity in
--   an incoming request. For a <tt>TOKEN</tt> authorizer, this value is a
--   mapping expression with the same syntax as integration parameter
--   mappings. The only valid source for tokens is <tt>header</tt>, so the
--   expression should match 'method.request.header.[headerName]'. The
--   value of the header '[headerName]' will be interpreted as the incoming
--   token. For <tt>COGNITO_USER_POOLS</tt> authorizers, this property is
--   used.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the credentials required
--   for the authorizer, if any. Two options are available. To specify an
--   IAM role for Amazon API Gateway to assume, use the role's Amazon
--   Resource Name (ARN). To use resource-based permissions on the Lambda
--   function, specify null.</li>
--   </ul>
authorizer :: Authorizer

-- | Represents an authorization layer for methods. If enabled on a method,
--   API Gateway will activate the authorizer when a client calls the
--   method.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>authorizer</a> smart constructor.
data Authorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI). For <tt>TOKEN</tt> authorizers, this must be a
--   well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   </ul>
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity. For <tt>TOKEN</tt>
--   authorizers, this value should be a regular expression. The incoming
--   token from the client is matched against this expression, and will
--   proceed if the token matches. If the token doesn't match, the client
--   receives a 401 Unauthorized response.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the provider ARNs of the authorizer. For an <tt>TOKEN</tt>
--   authorizer, this is not defined. For authorizers of the
--   <tt>COGNITO_USER_POOLS</tt> type, each element corresponds to a user
--   pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .
aProviderARNs :: Lens' Authorizer [Text]

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
aName :: Lens' Authorizer (Maybe Text)

-- | The identifier for the authorizer resource.
aId :: Lens' Authorizer (Maybe Text)

-- | The TTL in seconds of cached authorizer results. If greater than 0,
--   API Gateway will cache authorizer responses. If this field is not set,
--   the default value is 300. The maximum value is 3600, or 1 hour.
aAuthorizerResultTtlInSeconds :: Lens' Authorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of the authorizer. Currently, the valid
--   type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   </ul>
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming request.
--   For a <tt>TOKEN</tt> authorizer, this value is a mapping expression
--   with the same syntax as integration parameter mappings. The only valid
--   source for tokens is <tt>header</tt>, so the expression should match
--   'method.request.header.[headerName]'. The value of the header
--   '[headerName]' will be interpreted as the incoming token. For
--   <tt>COGNITO_USER_POOLS</tt> authorizers, this property is used.</li>
--   </ul>
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any. Two
--   options are available. To specify an IAM role for Amazon API Gateway
--   to assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
aAuthorizerCredentials :: Lens' Authorizer (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Data.Data.Data Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance GHC.Show.Show Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance GHC.Read.Read Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateAuthorizer.CreateAuthorizer


-- | Create an <tt>ApiKey</tt> resource.
--   
--   <a>AWS CLI</a>
module Network.AWS.APIGateway.CreateAPIKey

-- | Creates a value of <a>CreateAPIKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cakEnabled</a> - Specifies whether the <tt>ApiKey</tt> can be
--   used by callers.</li>
--   <li><a>cakValue</a> - Specifies a value of the API key.</li>
--   <li><a>cakCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>cakGenerateDistinctId</a> - Specifies whether (<tt>true</tt> )
--   or not (<tt>false</tt> ) the key identifier is distinct from the
--   created API key value.</li>
--   <li><a>cakName</a> - The name of the <tt>ApiKey</tt> .</li>
--   <li><a>cakStageKeys</a> - DEPRECATED FOR USAGE PLANS - Specifies
--   stages associated with the API key.</li>
--   <li><a>cakDescription</a> - The description of the <tt>ApiKey</tt>
--   .</li>
--   </ul>
createAPIKey :: CreateAPIKey

-- | Request to create an <tt>ApiKey</tt> resource.
--   
--   <i>See:</i> <a>createAPIKey</a> smart constructor.
data CreateAPIKey

-- | Specifies whether the <tt>ApiKey</tt> can be used by callers.
cakEnabled :: Lens' CreateAPIKey (Maybe Bool)

-- | Specifies a value of the API key.
cakValue :: Lens' CreateAPIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
cakCustomerId :: Lens' CreateAPIKey (Maybe Text)

-- | Specifies whether (<tt>true</tt> ) or not (<tt>false</tt> ) the key
--   identifier is distinct from the created API key value.
cakGenerateDistinctId :: Lens' CreateAPIKey (Maybe Bool)

-- | The name of the <tt>ApiKey</tt> .
cakName :: Lens' CreateAPIKey (Maybe Text)

-- | DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API
--   key.
cakStageKeys :: Lens' CreateAPIKey [StageKey]

-- | The description of the <tt>ApiKey</tt> .
cakDescription :: Lens' CreateAPIKey (Maybe Text)

-- | Creates a value of <a>APIKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akEnabled</a> - Specifies whether the API Key can be used by
--   callers.</li>
--   <li><a>akValue</a> - The value of the API Key.</li>
--   <li><a>akCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>akCreatedDate</a> - The date when the API Key was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>akName</a> - The name of the API Key.</li>
--   <li><a>akId</a> - The identifier of the API Key.</li>
--   <li><a>akStageKeys</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>akLastUpdatedDate</a> - When the API Key was last updated, in
--   ISO 8601 format.</li>
--   <li><a>akDescription</a> - The description of the API Key.</li>
--   </ul>
apiKey :: APIKey

-- | A resource that can be distributed to callers for executing
--   <a>Method</a> resources that require an API key. API keys can be
--   mapped to any <a>Stage</a> on any <tt>RestApi</tt> , which indicates
--   that the callers with the API key can make requests to that stage.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>apiKey</a> smart constructor.
data APIKey

-- | Specifies whether the API Key can be used by callers.
akEnabled :: Lens' APIKey (Maybe Bool)

-- | The value of the API Key.
akValue :: Lens' APIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
akCustomerId :: Lens' APIKey (Maybe Text)

-- | The date when the API Key was created, in <a>ISO 8601 format</a> .
akCreatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The name of the API Key.
akName :: Lens' APIKey (Maybe Text)

-- | The identifier of the API Key.
akId :: Lens' APIKey (Maybe Text)

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
akStageKeys :: Lens' APIKey [Text]

-- | When the API Key was last updated, in ISO 8601 format.
akLastUpdatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The description of the API Key.
akDescription :: Lens' APIKey (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Data.Data.Data Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance GHC.Show.Show Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance GHC.Read.Read Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateAPIKey.CreateAPIKey


-- | <b>Amazon API Gateway</b>
--   
--   Amazon API Gateway helps developers deliver robust, secure, and
--   scalable mobile and web application back ends. Amazon API Gateway
--   allows developers to securely connect mobile and web applications to
--   APIs that run on AWS Lambda, Amazon EC2, or other publicly addressable
--   web services that are hosted outside of AWS.
module Network.AWS.APIGateway

-- | API version <tt>2015-07-09</tt> of the Amazon API Gateway SDK
--   configuration.
apiGateway :: Service

-- | Prism for ConflictException' errors.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for NotFoundException' errors.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for TooManyRequestsException' errors.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for ServiceUnavailableException' errors.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for UnauthorizedException' errors.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for BadRequestException' errors.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Prism for LimitExceededException' errors.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data APIKeysFormat
CSV :: APIKeysFormat

-- | The authorizer type. the current value is <tt>TOKEN</tt> for a Lambda
--   function or <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito Your
--   User Pool.
data AuthorizerType
CognitoUserPools :: AuthorizerType
Token :: AuthorizerType

-- | Returns the size of the <b>CacheCluster</b> .
data CacheClusterSize
D0_5 :: CacheClusterSize
D118 :: CacheClusterSize
D13_5 :: CacheClusterSize
D1_6 :: CacheClusterSize
D237 :: CacheClusterSize
D28_4 :: CacheClusterSize
D58_2 :: CacheClusterSize
D6_1 :: CacheClusterSize

-- | Returns the status of the <b>CacheCluster</b> .
data CacheClusterStatus
Available :: CacheClusterStatus
CreateInProgress :: CacheClusterStatus
DeleteInProgress :: CacheClusterStatus
FlushInProgress :: CacheClusterStatus
NotAvailable :: CacheClusterStatus
data ContentHandlingStrategy
ConvertToBinary :: ContentHandlingStrategy
ConvertToText :: ContentHandlingStrategy
data DocumentationPartType
API :: DocumentationPartType
Authorizer :: DocumentationPartType
Method :: DocumentationPartType
Model :: DocumentationPartType
PathParameter :: DocumentationPartType
QueryParameter :: DocumentationPartType
RequestBody :: DocumentationPartType
RequestHeader :: DocumentationPartType
Resource :: DocumentationPartType
Response :: DocumentationPartType
ResponseBody :: DocumentationPartType
ResponseHeader :: DocumentationPartType

-- | The integration type. The valid value is <tt>HTTP</tt> for integrating
--   with an HTTP back end, <tt>AWS</tt> for any AWS service endpoints,
--   <tt>MOCK</tt> for testing without actually invoking the back end,
--   <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy integration,
--   or <tt>AWS_PROXY</tt> for integrating with the Lambda proxy
--   integration type.
data IntegrationType
AWS :: IntegrationType
AWSProxy :: IntegrationType
HTTP :: IntegrationType
HTTPProxy :: IntegrationType
Mock :: IntegrationType
data Op
Add :: Op
Copy :: Op
Move :: Op
Remove :: Op
Replace :: Op
Test :: Op
data PutMode
Merge :: PutMode
Overwrite :: PutMode
data QuotaPeriodType
Day :: QuotaPeriodType
Month :: QuotaPeriodType
Week :: QuotaPeriodType
data UnauthorizedCacheControlHeaderStrategy
FailWith403 :: UnauthorizedCacheControlHeaderStrategy
SucceedWithResponseHeader :: UnauthorizedCacheControlHeaderStrategy
SucceedWithoutResponseHeader :: UnauthorizedCacheControlHeaderStrategy

-- | A resource that can be distributed to callers for executing
--   <a>Method</a> resources that require an API key. API keys can be
--   mapped to any <a>Stage</a> on any <tt>RestApi</tt> , which indicates
--   that the callers with the API key can make requests to that stage.
--   
--   <a>Use API Keys</a>
--   
--   <i>See:</i> <a>apiKey</a> smart constructor.
data APIKey

-- | Creates a value of <a>APIKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>akEnabled</a> - Specifies whether the API Key can be used by
--   callers.</li>
--   <li><a>akValue</a> - The value of the API Key.</li>
--   <li><a>akCustomerId</a> - An AWS Marketplace customer identifier ,
--   when integrating with the AWS SaaS Marketplace.</li>
--   <li><a>akCreatedDate</a> - The date when the API Key was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>akName</a> - The name of the API Key.</li>
--   <li><a>akId</a> - The identifier of the API Key.</li>
--   <li><a>akStageKeys</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>akLastUpdatedDate</a> - When the API Key was last updated, in
--   ISO 8601 format.</li>
--   <li><a>akDescription</a> - The description of the API Key.</li>
--   </ul>
apiKey :: APIKey

-- | Specifies whether the API Key can be used by callers.
akEnabled :: Lens' APIKey (Maybe Bool)

-- | The value of the API Key.
akValue :: Lens' APIKey (Maybe Text)

-- | An AWS Marketplace customer identifier , when integrating with the AWS
--   SaaS Marketplace.
akCustomerId :: Lens' APIKey (Maybe Text)

-- | The date when the API Key was created, in <a>ISO 8601 format</a> .
akCreatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The name of the API Key.
akName :: Lens' APIKey (Maybe Text)

-- | The identifier of the API Key.
akId :: Lens' APIKey (Maybe Text)

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
akStageKeys :: Lens' APIKey [Text]

-- | When the API Key was last updated, in ISO 8601 format.
akLastUpdatedDate :: Lens' APIKey (Maybe UTCTime)

-- | The description of the API Key.
akDescription :: Lens' APIKey (Maybe Text)

-- | API stage name of the associated API stage in a usage plan.
--   
--   <i>See:</i> <a>apiStage</a> smart constructor.
data APIStage

-- | Creates a value of <a>APIStage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>asStage</a> - API stage name of the associated API stage in a
--   usage plan.</li>
--   <li><a>asApiId</a> - API Id of the associated API stage in a usage
--   plan.</li>
--   </ul>
apiStage :: APIStage

-- | API stage name of the associated API stage in a usage plan.
asStage :: Lens' APIStage (Maybe Text)

-- | API Id of the associated API stage in a usage plan.
asApiId :: Lens' APIStage (Maybe Text)

-- | Represents an AWS account that is associated with Amazon API Gateway.
--   
--   To view the account info, call <tt>GET</tt> on this resource.
--   
--   <b>Error Codes</b> The following exception may be thrown when the
--   request fails.
--   
--   <ul>
--   <li>UnauthorizedException * NotFoundException *
--   TooManyRequestsException</li>
--   </ul>
--   
--   For detailed error code information, including the corresponding HTTP
--   Status Codes, see <a>API Gateway Error Codes</a>
--   
--   <b>Example: Get the information about an account.</b> <b>Request</b>
--   @<tt>GET <i>account HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160531T184618Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns a </tt>200
--   OK@ status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/account-apigateway-{rel}.html"</a>,
--   "name": "account", "templated": true }, "self": { "href": "<i>account"
--   }, "account:update": { "href": "</i>account" } }, "cloudwatchRoleArn":
--   "arn:aws:iam::123456789012:role/apigAwsProxyRole", "throttleSettings":
--   { "rateLimit": 500, "burstLimit": 1000 } } </tt> @ In addition to
--   making the REST API call directly, you can use the AWS CLI and an AWS
--   SDK to access this resource.
--   
--   <a>API Gateway Limits</a> <a>Developer Guide</a> , <a>AWS CLI</a>
--   
--   <i>See:</i> <a>account</a> smart constructor.
data Account

-- | Creates a value of <a>Account</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aApiKeyVersion</a> - The version of the API keys used for the
--   account.</li>
--   <li><a>aCloudwatchRoleARN</a> - The ARN of an Amazon CloudWatch role
--   for the current <a>Account</a> .</li>
--   <li><a>aFeatures</a> - A list of features supported for the account.
--   When usage plans are enabled, the features list will include an entry
--   of <tt><a>UsagePlans</a></tt> .</li>
--   <li><a>aThrottleSettings</a> - Specifies the API request limits
--   configured for the current <a>Account</a> .</li>
--   </ul>
account :: Account

-- | The version of the API keys used for the account.
aApiKeyVersion :: Lens' Account (Maybe Text)

-- | The ARN of an Amazon CloudWatch role for the current <a>Account</a> .
aCloudwatchRoleARN :: Lens' Account (Maybe Text)

-- | A list of features supported for the account. When usage plans are
--   enabled, the features list will include an entry of
--   <tt><a>UsagePlans</a></tt> .
aFeatures :: Lens' Account [Text]

-- | Specifies the API request limits configured for the current
--   <a>Account</a> .
aThrottleSettings :: Lens' Account (Maybe ThrottleSettings)

-- | Represents an authorization layer for methods. If enabled on a method,
--   API Gateway will activate the authorizer when a client calls the
--   method.
--   
--   <a>Enable custom authorization</a>
--   
--   <i>See:</i> <a>authorizer</a> smart constructor.
data Authorizer

-- | Creates a value of <a>Authorizer</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aAuthorizerURI</a> - [Required] Specifies the authorizer's
--   Uniform Resource Identifier (URI). For <tt>TOKEN</tt> authorizers,
--   this must be a well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity. For <tt>TOKEN</tt> authorizers, this value
--   should be a regular expression. The incoming token from the client is
--   matched against this expression, and will proceed if the token
--   matches. If the token doesn't match, the client receives a 401
--   Unauthorized response.</li>
--   <li><a>aProviderARNs</a> - A list of the provider ARNs of the
--   authorizer. For an <tt>TOKEN</tt> authorizer, this is not defined. For
--   authorizers of the <tt>COGNITO_USER_POOLS</tt> type, each element
--   corresponds to a user pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .</li>
--   <li><a>aName</a> - [Required] The name of the authorizer.</li>
--   <li><a>aId</a> - The identifier for the authorizer resource.</li>
--   <li><a>aAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If greater than 0, API Gateway will cache
--   authorizer responses. If this field is not set, the default value is
--   300. The maximum value is 3600, or 1 hour.</li>
--   <li><a>aAuthType</a> - Optional customer-defined field, used in
--   Swagger imports/exports. Has no functional impact.</li>
--   <li><a>aType</a> - [Required] The type of the authorizer. Currently,
--   the valid type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   <li><a>aIdentitySource</a> - [Required] The source of the identity in
--   an incoming request. For a <tt>TOKEN</tt> authorizer, this value is a
--   mapping expression with the same syntax as integration parameter
--   mappings. The only valid source for tokens is <tt>header</tt>, so the
--   expression should match 'method.request.header.[headerName]'. The
--   value of the header '[headerName]' will be interpreted as the incoming
--   token. For <tt>COGNITO_USER_POOLS</tt> authorizers, this property is
--   used.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the credentials required
--   for the authorizer, if any. Two options are available. To specify an
--   IAM role for Amazon API Gateway to assume, use the role's Amazon
--   Resource Name (ARN). To use resource-based permissions on the Lambda
--   function, specify null.</li>
--   </ul>
authorizer :: Authorizer

-- | <ul>
--   <li><i>Required</i> Specifies the authorizer's Uniform Resource
--   Identifier (URI). For <tt>TOKEN</tt> authorizers, this must be a
--   well-formed Lambda function URI, for example,
--   <tt>arn:aws:apigateway:us-west-2:lambda:path<i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}</i>invocations</tt>
--   . In general, the URI has this form
--   <tt>arn:aws:apigateway:{region}:lambda:path/{service_api}</tt> , where
--   <tt>{region}</tt> is the same as the region hosting the Lambda
--   function, <tt>path</tt> indicates that the remaining substring in the
--   URI should be treated as the path to the resource, including the
--   initial <tt>/</tt> . For Lambda functions, this is usually of the form
--   <i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations.</li>
--   </ul>
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity. For <tt>TOKEN</tt>
--   authorizers, this value should be a regular expression. The incoming
--   token from the client is matched against this expression, and will
--   proceed if the token matches. If the token doesn't match, the client
--   receives a 401 Unauthorized response.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the provider ARNs of the authorizer. For an <tt>TOKEN</tt>
--   authorizer, this is not defined. For authorizers of the
--   <tt>COGNITO_USER_POOLS</tt> type, each element corresponds to a user
--   pool ARN of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   .
aProviderARNs :: Lens' Authorizer [Text]

-- | <ul>
--   <li><i>Required</i> The name of the authorizer.</li>
--   </ul>
aName :: Lens' Authorizer (Maybe Text)

-- | The identifier for the authorizer resource.
aId :: Lens' Authorizer (Maybe Text)

-- | The TTL in seconds of cached authorizer results. If greater than 0,
--   API Gateway will cache authorizer responses. If this field is not set,
--   the default value is 300. The maximum value is 3600, or 1 hour.
aAuthorizerResultTtlInSeconds :: Lens' Authorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports/exports. Has
--   no functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The type of the authorizer. Currently, the valid
--   type is <tt>TOKEN</tt> for a Lambda function or
--   <tt>COGNITO_USER_POOLS</tt> for an Amazon Cognito user pool.</li>
--   </ul>
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | <ul>
--   <li><i>Required</i> The source of the identity in an incoming request.
--   For a <tt>TOKEN</tt> authorizer, this value is a mapping expression
--   with the same syntax as integration parameter mappings. The only valid
--   source for tokens is <tt>header</tt>, so the expression should match
--   'method.request.header.[headerName]'. The value of the header
--   '[headerName]' will be interpreted as the incoming token. For
--   <tt>COGNITO_USER_POOLS</tt> authorizers, this property is used.</li>
--   </ul>
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the credentials required for the authorizer, if any. Two
--   options are available. To specify an IAM role for Amazon API Gateway
--   to assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
aAuthorizerCredentials :: Lens' Authorizer (Maybe Text)

-- | Represents the base path that callers of the API must provide as part
--   of the URL after the domain name.
--   
--   A custom domain name plus a <tt>BasePathMapping</tt> specification
--   identifies a deployed <tt>RestApi</tt> in a given stage of the owner
--   <a>Account</a> .<a>Use Custom Domain Names</a>
--   
--   <i>See:</i> <a>basePathMapping</a> smart constructor.
data BasePathMapping

-- | Creates a value of <a>BasePathMapping</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bpmStage</a> - The name of the API's stage.</li>
--   <li><a>bpmBasePath</a> - The base path name that callers of the API
--   must provide as part of the URL after the domain name.</li>
--   <li><a>bpmRestAPIId</a> - The name of the API.</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | The name of the API's stage.
bpmStage :: Lens' BasePathMapping (Maybe Text)

-- | The base path name that callers of the API must provide as part of the
--   URL after the domain name.
bpmBasePath :: Lens' BasePathMapping (Maybe Text)

-- | The name of the API.
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used authenticate an API by the back-end
--   server. To authenticate an API client (or user), use a custom
--   <a>Authorizer</a> .<a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>clientCertificate</a> smart constructor.
data ClientCertificate

-- | Creates a value of <a>ClientCertificate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccPemEncodedCertificate</a> - The PEM-encoded public key of the
--   client certificate, which can be used to configure certificate
--   authentication in the integration endpoint .</li>
--   <li><a>ccClientCertificateId</a> - The identifier of the client
--   certificate.</li>
--   <li><a>ccCreatedDate</a> - The date when the client certificate was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccExpirationDate</a> - The date when the client certificate
--   will expire, in <a>ISO 8601 format</a> .</li>
--   <li><a>ccDescription</a> - The description of the client
--   certificate.</li>
--   </ul>
clientCertificate :: ClientCertificate

-- | The PEM-encoded public key of the client certificate, which can be
--   used to configure certificate authentication in the integration
--   endpoint .
ccPemEncodedCertificate :: Lens' ClientCertificate (Maybe Text)

-- | The identifier of the client certificate.
ccClientCertificateId :: Lens' ClientCertificate (Maybe Text)

-- | The date when the client certificate was created, in <a>ISO 8601
--   format</a> .
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The date when the client certificate will expire, in <a>ISO 8601
--   format</a> .
ccExpirationDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The description of the client certificate.
ccDescription :: Lens' ClientCertificate (Maybe Text)

-- | An immutable representation of a <tt>RestApi</tt> resource that can be
--   called by users using <tt>Stages</tt> . A deployment must be
--   associated with a <a>Stage</a> for it to be callable over the
--   Internet.
--   
--   To create a deployment, call <tt>POST</tt> on the <tt>Deployments</tt>
--   resource of a <tt>RestApi</tt> . To view, update, or delete a
--   deployment, call <tt>GET</tt> , <tt>PATCH</tt> , or <tt>DELETE</tt> on
--   the specified deployment resource
--   (<tt><i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}</tt>
--   ).<tt>RestApi</tt> , <tt>Deployments</tt> , <a>Stage</a> , <a>AWS
--   CLI</a> , <a>AWS SDKs</a>
--   
--   <i>See:</i> <a>deployment</a> smart constructor.
data Deployment

-- | Creates a value of <a>Deployment</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dApiSummary</a> - A summary of the <tt>RestApi</tt> at the date
--   and time that the deployment resource was created.</li>
--   <li><a>dCreatedDate</a> - The date and time that the deployment
--   resource was created.</li>
--   <li><a>dId</a> - The identifier for the deployment resource.</li>
--   <li><a>dDescription</a> - The description for the deployment
--   resource.</li>
--   </ul>
deployment :: Deployment

-- | A summary of the <tt>RestApi</tt> at the date and time that the
--   deployment resource was created.
dApiSummary :: Lens' Deployment (HashMap Text (HashMap Text MethodSnapshot))

-- | The date and time that the deployment resource was created.
dCreatedDate :: Lens' Deployment (Maybe UTCTime)

-- | The identifier for the deployment resource.
dId :: Lens' Deployment (Maybe Text)

-- | The description for the deployment resource.
dDescription :: Lens' Deployment (Maybe Text)

-- | A documentation part for a targeted API entity.
--   
--   A documentation part consists of a content map (<tt>properties</tt> )
--   and a target (<tt>location</tt> ). The target specifies an API entity
--   to which the documentation content applies. The supported API entity
--   types are <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Valid <tt>location</tt> fields depend on
--   the API entity type. All valid fields are not required.
--   
--   The content map is a JSON string of API-specific key-value pairs.
--   Although an API can use any shape for the content map, only the
--   Swagger-compliant documentation fields will be injected into the
--   associated API entity definition in the exported Swagger definition
--   file.
--   
--   <a>Documenting an API</a> , <tt>DocumentationParts</tt>
--   
--   <i>See:</i> <a>documentationPart</a> smart constructor.
data DocumentationPart

-- | Creates a value of <a>DocumentationPart</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dpLocation</a> - The location of the API entity to which the
--   documentation applies. Valid fields depend on the targeted API entity
--   type. All the valid location fields are not required. If not
--   explicitly specified, a valid location field is treated as a wildcard
--   and associated documentation content may be inherited by matching
--   entities, unless overridden.</li>
--   <li><a>dpId</a> - The <a>DocumentationPart</a> identifier, generated
--   by Amazon API Gateway when the <tt>DocumentationPart</tt> is
--   created.</li>
--   <li><a>dpProperties</a> - A content map of API-specific key-value
--   pairs describing the targeted API entity. The map must be encoded as a
--   JSON string, e.g., <tt>"{ "description": "The API does ..." }"</tt> .
--   Only Swagger-compliant documentation-related fields from the
--   <tt>properties</tt> map are exported and, hence, published as part of
--   the API entity definitions, while the original documentation parts are
--   exported in a Swagger extension of
--   <tt>x-amazon-apigateway-documentation</tt> .</li>
--   </ul>
documentationPart :: DocumentationPart

-- | The location of the API entity to which the documentation applies.
--   Valid fields depend on the targeted API entity type. All the valid
--   location fields are not required. If not explicitly specified, a valid
--   location field is treated as a wildcard and associated documentation
--   content may be inherited by matching entities, unless overridden.
dpLocation :: Lens' DocumentationPart (Maybe DocumentationPartLocation)

-- | The <a>DocumentationPart</a> identifier, generated by Amazon API
--   Gateway when the <tt>DocumentationPart</tt> is created.
dpId :: Lens' DocumentationPart (Maybe Text)

-- | A content map of API-specific key-value pairs describing the targeted
--   API entity. The map must be encoded as a JSON string, e.g., <tt>"{
--   "description": "The API does ..." }"</tt> . Only Swagger-compliant
--   documentation-related fields from the <tt>properties</tt> map are
--   exported and, hence, published as part of the API entity definitions,
--   while the original documentation parts are exported in a Swagger
--   extension of <tt>x-amazon-apigateway-documentation</tt> .
dpProperties :: Lens' DocumentationPart (Maybe Text)

-- | Specifies the target API entity to which the documentation applies.
--   
--   <i>See:</i> <a>documentationPartLocation</a> smart constructor.
data DocumentationPartLocation

-- | Creates a value of <a>DocumentationPartLocation</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dplPath</a> - The URL path of the target. It is a valid field
--   for the API entity types of <tt>RESOURCE</tt> , <tt>METHOD</tt> ,
--   <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . The default
--   value is <tt>/</tt> for the root resource. When an applicable child
--   entity inherits the content of another entity of the same type with
--   more general specifications of the other <tt>location</tt> attributes,
--   the child entity's <tt>path</tt> attribute must match that of the
--   parent entity as a prefix.</li>
--   <li><a>dplName</a> - The name of the targeted API entity. It is a
--   valid and required field for the API entity types of
--   <tt>AUTHORIZER</tt> , <tt>MODEL</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> and <tt>RESPONSE_HEADER</tt> . It is an invalid
--   field for any other entity type.</li>
--   <li><a>dplMethod</a> - The HTTP verb of a method. It is a valid field
--   for the API entity types of <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt>
--   , <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   method. When an applicable child entity inherits the content of an
--   entity of the same type with more general specifications of the other
--   <tt>location</tt> attributes, the child entity's <tt>method</tt>
--   attribute must match that of the parent entity exactly.</li>
--   <li><a>dplStatusCode</a> - The HTTP status code of a response. It is a
--   valid field for the API entity types of <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . The default
--   value is <tt>*</tt> for any status code. When an applicable child
--   entity inherits the content of an entity of the same type with more
--   general specifications of the other <tt>location</tt> attributes, the
--   child entity's <tt>statusCode</tt> attribute must match that of the
--   parent entity exactly.</li>
--   <li><a>dplType</a> - The type of API entity to which the documentation
--   content applies. It is a valid and required field for API entity types
--   of <tt>API</tt> , <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . Content inheritance does not apply to any
--   entity of the <tt>API</tt> , <tt>AUTHROZER</tt> , <tt>MODEL</tt> , or
--   <tt>RESOURCE</tt> type.</li>
--   </ul>
documentationPartLocation :: DocumentationPartType -> DocumentationPartLocation

-- | The URL path of the target. It is a valid field for the API entity
--   types of <tt>RESOURCE</tt> , <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt>
--   , <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>/</tt> for the
--   root resource. When an applicable child entity inherits the content of
--   another entity of the same type with more general specifications of
--   the other <tt>location</tt> attributes, the child entity's
--   <tt>path</tt> attribute must match that of the parent entity as a
--   prefix.
dplPath :: Lens' DocumentationPartLocation (Maybe Text)

-- | The name of the targeted API entity. It is a valid and required field
--   for the API entity types of <tt>AUTHORIZER</tt> , <tt>MODEL</tt> ,
--   <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> and
--   <tt>RESPONSE_HEADER</tt> . It is an invalid field for any other entity
--   type.
dplName :: Lens' DocumentationPartLocation (Maybe Text)

-- | The HTTP verb of a method. It is a valid field for the API entity
--   types of <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> ,
--   <tt>QUERY_PARAMETER</tt> , <tt>REQUEST_HEADER</tt> ,
--   <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> ,
--   and <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   method. When an applicable child entity inherits the content of an
--   entity of the same type with more general specifications of the other
--   <tt>location</tt> attributes, the child entity's <tt>method</tt>
--   attribute must match that of the parent entity exactly.
dplMethod :: Lens' DocumentationPartLocation (Maybe Text)

-- | The HTTP status code of a response. It is a valid field for the API
--   entity types of <tt>RESPONSE</tt> , <tt>RESPONSE_HEADER</tt> , and
--   <tt>RESPONSE_BODY</tt> . The default value is <tt>*</tt> for any
--   status code. When an applicable child entity inherits the content of
--   an entity of the same type with more general specifications of the
--   other <tt>location</tt> attributes, the child entity's
--   <tt>statusCode</tt> attribute must match that of the parent entity
--   exactly.
dplStatusCode :: Lens' DocumentationPartLocation (Maybe Text)

-- | The type of API entity to which the documentation content applies. It
--   is a valid and required field for API entity types of <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>MODEL</tt> , <tt>RESOURCE</tt> ,
--   <tt>METHOD</tt> , <tt>PATH_PARAMETER</tt> , <tt>QUERY_PARAMETER</tt> ,
--   <tt>REQUEST_HEADER</tt> , <tt>REQUEST_BODY</tt> , <tt>RESPONSE</tt> ,
--   <tt>RESPONSE_HEADER</tt> , and <tt>RESPONSE_BODY</tt> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHROZER</tt> , <tt>MODEL</tt> , or <tt>RESOURCE</tt> type.
dplType :: Lens' DocumentationPartLocation DocumentationPartType

-- | A snapshot of the documentation of an API.
--   
--   Publishing API documentation involves creating a documentation version
--   associated with an API stage and exporting the versioned documentation
--   to an external (e.g., Swagger) file.
--   
--   <a>Documenting an API</a> , <a>DocumentationPart</a> ,
--   <tt>DocumentationVersions</tt>
--   
--   <i>See:</i> <a>documentationVersion</a> smart constructor.
data DocumentationVersion

-- | Creates a value of <a>DocumentationVersion</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dvCreatedDate</a> - The date when the API documentation
--   snapshot is created.</li>
--   <li><a>dvVersion</a> - The version identifier of the API documentation
--   snapshot.</li>
--   <li><a>dvDescription</a> - The description of the API documentation
--   snapshot.</li>
--   </ul>
documentationVersion :: DocumentationVersion

-- | The date when the API documentation snapshot is created.
dvCreatedDate :: Lens' DocumentationVersion (Maybe UTCTime)

-- | The version identifier of the API documentation snapshot.
dvVersion :: Lens' DocumentationVersion (Maybe Text)

-- | The description of the API documentation snapshot.
dvDescription :: Lens' DocumentationVersion (Maybe Text)

-- | Represents a domain name that is contained in a simpler, more
--   intuitive URL that can be called.
--   
--   <a>Use Client-Side Certificate</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | Creates a value of <a>DomainName</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dnCertificateName</a> - The name of the certificate.</li>
--   <li><a>dnDomainName</a> - The name of the <a>DomainName</a>
--   resource.</li>
--   <li><a>dnCertificateUploadDate</a> - The date when the certificate was
--   uploaded, in <a>ISO 8601 format</a> .</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution. For more information, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   </ul>
domainName :: DomainName

-- | The name of the certificate.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The name of the <a>DomainName</a> resource.
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The date when the certificate was uploaded, in <a>ISO 8601 format</a>
--   .
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution. For more
--   information, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | 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.<a>Creating an API</a> ,
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/.html</a>
--   
--   <i>See:</i> <a>integration</a> smart constructor.
data Integration

-- | Creates a value of <a>Integration</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iHttpMethod</a> - Specifies the integration's HTTP method
--   type.</li>
--   <li><a>iRequestTemplates</a> - 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.</li>
--   <li><a>iCredentials</a> - 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 <tt>arn:aws:iam::*:user/*</tt> . To use resource-based
--   permissions on supported AWS services, specify null.</li>
--   <li><a>iRequestParameters</a> - 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.</li>
--   <li><a>iContentHandling</a> - Specifies how to handle request payload
--   content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a request
--   payload from a Base64-encoded string to the corresponding binary blob.
--   * <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.</li>
--   <li><a>iPassthroughBehavior</a> - 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 <tt>requestTemplates</tt> . There are three valid values:
--   <tt>WHEN_NO_MATCH</tt> , <tt>WHEN_NO_TEMPLATES</tt> , and
--   <tt>NEVER</tt> . * <tt>WHEN_NO_MATCH</tt> 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. * <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415 Unsupported Media Type</tt> response. * <tt>NEVER</tt>
--   rejects the method request with an HTTP <tt>415 Unsupported Media
--   Type</tt> 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.</li>
--   <li><a>iUri</a> - 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 <a>RFC-3986
--   specification</a> . For AWS integrations, the URI should be of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .</li>
--   <li><a>iIntegrationResponses</a> - Specifies the integration's
--   responses. <b>Example: Get integration responses of a method</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a></li>
--   <li><a>iCacheNamespace</a> - Specifies the integration's cache
--   namespace.</li>
--   <li><a>iType</a> - Specifies the integration's type. The valid value
--   is <tt>HTTP</tt> for integrating with an HTTP back end, <tt>AWS</tt>
--   for any AWS service endpoints, <tt>MOCK</tt> for testing without
--   actually invoking the back end, <tt>HTTP_PROXY</tt> for integrating
--   with the HTTP proxy integration, or <tt>AWS_PROXY</tt> for integrating
--   with the Lambda proxy integration type.</li>
--   <li><a>iCacheKeyParameters</a> - Specifies the integration's cache key
--   parameters.</li>
--   </ul>
integration :: Integration

-- | Specifies the integration's HTTP method type.
iHttpMethod :: Lens' Integration (Maybe Text)

-- | 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.
iRequestTemplates :: Lens' Integration (HashMap Text Text)

-- | 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 <tt>arn:aws:iam::*:user/*</tt> . To
--   use resource-based permissions on supported AWS services, specify
--   null.
iCredentials :: Lens' Integration (Maybe Text)

-- | 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
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> must be a valid and unique method request parameter
--   name.
iRequestParameters :: Lens' Integration (HashMap Text Text)

-- | Specifies how to handle request payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a request payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : 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
--   <tt>passthroughBehaviors</tt> is configured to support payload
--   pass-through.
iContentHandling :: Lens' Integration (Maybe ContentHandlingStrategy)

-- | 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 <tt>requestTemplates</tt> .
--   There are three valid values: <tt>WHEN_NO_MATCH</tt> ,
--   <tt>WHEN_NO_TEMPLATES</tt> , and <tt>NEVER</tt> . *
--   <tt>WHEN_NO_MATCH</tt> 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. *
--   <tt>WHEN_NO_TEMPLATES</tt> 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 <tt>415
--   Unsupported Media Type</tt> response. * <tt>NEVER</tt> rejects the
--   method request with an HTTP <tt>415 Unsupported Media Type</tt>
--   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.
iPassthroughBehavior :: Lens' Integration (Maybe Text)

-- | 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 <a>RFC-3986 specification</a> . For AWS integrations,
--   the URI should be of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}</tt>
--   . <tt>Region</tt> , <tt>subdomain</tt> and <tt>service</tt> are used
--   to determine the right endpoint. For AWS services that use the
--   <tt>Action=</tt> query string parameter, <tt>service_api</tt> should
--   be a valid action for the desired service. For RESTful AWS service
--   APIs, <tt>path</tt> is used to indicate that the remaining substring
--   in the URI should be treated as the path to the resource, including
--   the initial <tt>/</tt> .
iUri :: Lens' Integration (Maybe Text)

-- | Specifies the integration's responses. <b>Example: Get integration
--   responses of a method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160607T191449Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160607<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
--   </tt> <tt> <b>Response</b> The successful response returns </tt>200
--   OK<tt> status and a payload as follows: </tt><tt>{ "_links": {
--   "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "title": "200" }, "integrationresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" }</tt> @ <a>Creating an API</a>
iIntegrationResponses :: Lens' Integration (HashMap Text IntegrationResponse)

-- | Specifies the integration's cache namespace.
iCacheNamespace :: Lens' Integration (Maybe Text)

-- | Specifies the integration's type. The valid value is <tt>HTTP</tt> for
--   integrating with an HTTP back end, <tt>AWS</tt> for any AWS service
--   endpoints, <tt>MOCK</tt> for testing without actually invoking the
--   back end, <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration, or <tt>AWS_PROXY</tt> for integrating with the Lambda
--   proxy integration type.
iType :: Lens' Integration (Maybe IntegrationType)

-- | Specifies the integration's cache key parameters.
iCacheKeyParameters :: Lens' Integration [Text]

-- | Represents an integration response. The status code must map to an
--   existing <a>MethodResponse</a> , and parameters and templates can be
--   used to transform the back-end response.
--   
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>integrationResponse</a> smart constructor.
data IntegrationResponse

-- | Creates a value of <a>IntegrationResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>intContentHandling</a> - Specifies how to handle response
--   payload content type conversions. Supported values are
--   <tt>CONVERT_TO_BINARY</tt> and <tt>CONVERT_TO_TEXT</tt> , with the
--   following behaviors: * <tt>CONVERT_TO_BINARY</tt> : Converts a
--   response payload from a Base64-encoded string to the corresponding
--   binary blob. * <tt>CONVERT_TO_TEXT</tt> : Converts a response payload
--   from a binary blob to a Base64-encoded string. If this property is not
--   defined, the response payload will be passed through from the
--   integration response to the method response without modification.</li>
--   <li><a>intResponseTemplates</a> - Specifies the templates used to
--   transform the integration response body. Response templates are
--   represented as a key/value map, with a content-type as the key and a
--   template as the value.</li>
--   <li><a>intSelectionPattern</a> - Specifies the regular expression
--   (regex) pattern used to choose an integration response based on the
--   response from the back end. For example, if the success response
--   returns nothing and the error response returns some string, you could
--   use the <tt>.+</tt> regex to match error response. However, make sure
--   that the error response does not contain any newline (<tt>n</tt> )
--   character in such cases. If the back end is an AWS Lambda function,
--   the AWS Lambda function error header is matched. For all other HTTP
--   and AWS back ends, the HTTP status code is matched.</li>
--   <li><a>intStatusCode</a> - Specifies the status code that is used to
--   map the integration response to an existing <a>MethodResponse</a>
--   .</li>
--   <li><a>intResponseParameters</a> - A key-value map specifying response
--   parameters that are passed to the method response from the back end.
--   The key is a method response header parameter name and the mapped
--   value is an integration response header value, a static value enclosed
--   within a pair of single quotes, or a JSON expression from the
--   integration response body. The mapping key must match the pattern of
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. The mapped non-static value must match
--   the pattern of <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.</li>
--   </ul>
integrationResponse :: IntegrationResponse

-- | Specifies how to handle response payload content type conversions.
--   Supported values are <tt>CONVERT_TO_BINARY</tt> and
--   <tt>CONVERT_TO_TEXT</tt> , with the following behaviors: *
--   <tt>CONVERT_TO_BINARY</tt> : Converts a response payload from a
--   Base64-encoded string to the corresponding binary blob. *
--   <tt>CONVERT_TO_TEXT</tt> : Converts a response payload from a binary
--   blob to a Base64-encoded string. If this property is not defined, the
--   response payload will be passed through from the integration response
--   to the method response without modification.
intContentHandling :: Lens' IntegrationResponse (Maybe ContentHandlingStrategy)

-- | Specifies the templates used to transform the integration response
--   body. Response templates are represented as a key/value map, with a
--   content-type as the key and a template as the value.
intResponseTemplates :: Lens' IntegrationResponse (HashMap Text Text)

-- | Specifies the regular expression (regex) pattern used to choose an
--   integration response based on the response from the back end. For
--   example, if the success response returns nothing and the error
--   response returns some string, you could use the <tt>.+</tt> regex to
--   match error response. However, make sure that the error response does
--   not contain any newline (<tt>n</tt> ) character in such cases. If the
--   back end is an AWS Lambda function, the AWS Lambda function error
--   header is matched. For all other HTTP and AWS back ends, the HTTP
--   status code is matched.
intSelectionPattern :: Lens' IntegrationResponse (Maybe Text)

-- | Specifies the status code that is used to map the integration response
--   to an existing <a>MethodResponse</a> .
intStatusCode :: Lens' IntegrationResponse (Maybe Text)

-- | A key-value map specifying response parameters that are passed to the
--   method response from the back end. The key is a method response header
--   parameter name and the mapped value is an integration response header
--   value, a static value enclosed within a pair of single quotes, or a
--   JSON expression from the integration response body. The mapping key
--   must match the pattern of <tt>method.response.header.{name}</tt> ,
--   where <tt>name</tt> is a valid and unique header name. The mapped
--   non-static value must match the pattern of
--   <tt>integration.response.header.{name}</tt> or
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>name</tt> is a valid and unique response header name and
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.
intResponseParameters :: Lens' IntegrationResponse (HashMap Text Text)

-- | Represents a client-facing interface by which the client calls the API
--   to access back-end resources. A <b>Method</b> resource is integrated
--   with an <a>Integration</a> resource. Both consist of a request and one
--   or more responses. The method request takes the client input that is
--   passed to the back end through the integration request. A method
--   response returns the output from the back end to the client through an
--   integration response. A method request is embodied in a <b>Method</b>
--   resource, whereas an integration request is embodied in an
--   <a>Integration</a> resource. On the other hand, a method response is
--   represented by a <a>MethodResponse</a> resource, whereas an
--   integration response is represented by an <a>IntegrationResponse</a>
--   resource.
--   
--   <b>Example: Retrive the GET method on a specified resource</b>
--   <b>Request</b> The following example request retrieves the information
--   about the GET method on an API resource (<tt>3kzxbg5sa2</tt> ) of an
--   API (<tt>fugvjdxtri</tt> ).
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T210259Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK@
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": true, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E")"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   }, "methodresponse:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>responses<i>200"
--   } }, "responseModels": { "application</i>json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> In the example above, the
--   response template for the </tt>200 OK<tt> response maps the JSON
--   output from the </tt>ListStreams<tt> action in the back end to an XML
--   output. The mapping template is URL-encoded as
--   </tt>%3CkinesisStreams%3E%23foreach(%24stream%20in%20%24input.path(%27%24.StreamNames%27))%3Cstream%3E%3Cname%3E%24stream%3C%2Fname%3E%3C%2Fstream%3E%23end%3C%2FkinesisStreams%3E@
--   and the output is decoded using the
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-templat-reference</a>
--   util.urlDecode()&gt; helper function.
--   
--   <a>MethodResponse</a> , <a>Integration</a> ,
--   <a>IntegrationResponse</a> , <a>Resource</a> , <a>Set up an API's
--   method</a>
--   
--   <i>See:</i> <a>method</a> smart constructor.
data Method

-- | Creates a value of <a>Method</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mMethodResponses</a> - Gets a method response associated with a
--   given HTTP status code. The collection of method responses are
--   encapsulated in a key-value map, where the key is a response's HTTP
--   status code and the value is a <a>MethodResponse</a> resource that
--   specifies the response returned to the caller from the back end
--   through the integration response. <b>Example: Get a 200 OK response of
--   a GET method</b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a></li>
--   <li><a>mHttpMethod</a> - The method's HTTP verb.</li>
--   <li><a>mRequestModels</a> - A key-value map specifying data schemas,
--   represented by <a>Model</a> resources, (as the mapped value) of the
--   request payloads of given content types (as the mapping key).</li>
--   <li><a>mRequestParameters</a> - A key-value map defining required or
--   optional method request parameters that can be accepted by Amazon API
--   Gateway. A key is a method request parameter name matching the pattern
--   of <tt>method.request.{location}.{name}</tt> , where <tt>location</tt>
--   is <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.</li>
--   <li><a>mAuthorizerId</a> - The identifier of an <a>Authorizer</a> to
--   use on this method. The <tt>authorizationType</tt> must be
--   <tt>CUSTOM</tt> .</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type.</li>
--   <li><a>mApiKeyRequired</a> - A boolean flag specifying whether a valid
--   <tt>ApiKey</tt> is required to invoke this method.</li>
--   <li><a>mMethodIntegration</a> - Gets the method's integration
--   responsible for passing the client-submitted request to the back end
--   and performing necessary transformations to make the request compliant
--   with the back end. <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a></li>
--   </ul>
method :: Method

-- | Gets a method response associated with a given HTTP status code. The
--   collection of method responses are encapsulated in a key-value map,
--   where the key is a response's HTTP status code and the value is a
--   <a>MethodResponse</a> resource that specifies the response returned to
--   the caller from the back end through the integration response.
--   <b>Example: Get a 200 OK response of a GET method</b> <b>Request</b>
--   @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T215008Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160613</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.operator": false,
--   "method.response.header.operand_2": false,
--   "method.response.header.operand_1": false }, "statusCode": "200"
--   }</tt> @ <a>AWS CLI</a>
mMethodResponses :: Lens' Method (HashMap Text MethodResponse)

-- | The method's HTTP verb.
mHttpMethod :: Lens' Method (Maybe Text)

-- | A key-value map specifying data schemas, represented by <a>Model</a>
--   resources, (as the mapped value) of the request payloads of given
--   content types (as the mapping key).
mRequestModels :: Lens' Method (HashMap Text Text)

-- | A key-value map defining required or optional method request
--   parameters that can be accepted by Amazon API Gateway. A key is a
--   method request parameter name matching the pattern of
--   <tt>method.request.{location}.{name}</tt> , where <tt>location</tt> is
--   <tt>querystring</tt> , <tt>path</tt> , or <tt>header</tt> and
--   <tt>name</tt> is a valid and unique parameter name. The value
--   associated with the key is a Boolean flag indicating whether the
--   parameter is required (<tt>true</tt> ) or optional (<tt>false</tt> ).
--   The method request parameter names defined here are available in
--   <a>Integration</a> to be mapped to integration request parameters or
--   templates.
mRequestParameters :: Lens' Method (HashMap Text Bool)

-- | The identifier of an <a>Authorizer</a> to use on this method. The
--   <tt>authorizationType</tt> must be <tt>CUSTOM</tt> .
mAuthorizerId :: Lens' Method (Maybe Text)

-- | The method's authorization type.
mAuthorizationType :: Lens' Method (Maybe Text)

-- | A boolean flag specifying whether a valid <tt>ApiKey</tt> is required
--   to invoke this method.
mApiKeyRequired :: Lens' Method (Maybe Bool)

-- | Gets the method's integration responsible for passing the
--   client-submitted request to the back end and performing necessary
--   transformations to make the request compliant with the back end.
--   <b>Example: </b> <b>Request</b> @<tt>GET
--   <i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration
--   HTTP</i>1.1 Content-Type: application<i>json Host:
--   apigateway.us-east-1.amazonaws.com Content-Length: 117 X-Amz-Date:
--   20160613T213210Z Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}</i>20160613<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns a </tt>200 OK<tt>
--   status code and a payload similar to the following: </tt><tt>{
--   "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true } ], "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "0cjtch", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestTemplates": { "application<i>json": "{n "a":
--   "$input.params(<tt>operand1</tt>)",n "b":
--   "$input.params(<tt>operand2</tt>)", n "op":
--   "$input.params(<tt>operator</tt>)" n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-west-2:lambda:path</i><i>2015-03-31</i>functions<i>arn:aws:lambda:us-west-2:123456789012:function:Calc</i>invocations",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>uojnr9hd57</i>resources<i>0cjtch</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>uojnr9hd57<i>resources</i>0cjtch<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.operator":
--   "integration.response.body.op", "method.response.header.operand_2":
--   "integration.response.body.b", "method.response.header.operand_1":
--   "integration.response.body.a" }, "responseTemplates": {
--   "application</i>json": "#set($res = $input.path(<a>$</a>))n{n
--   "result": "$res.a, $res.b, $res.op =&gt; $res.c",n "a" : "$res.a",n
--   "b" : "$res.b",n "op" : "$res.op",n "c" : "$res.c"n}" },
--   "selectionPattern": "", "statusCode": "200" } } }</tt> @ <a>AWS
--   CLI</a>
mMethodIntegration :: Lens' Method (Maybe Integration)

-- | Represents a method response of a given HTTP status code returned to
--   the client. The method response is passed from the back end through
--   the associated integration response that can be transformed using a
--   mapping template.
--   
--   <b>Example: A </b>MethodResponse<b> instance of an API</b>
--   <b>Request</b> The example request retrieves a <b>MethodResponse</b>
--   of the 200 status code.
--   
--   @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160603</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> The successful response returns </tt>200 OK@
--   status and a payload as follows:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" }</tt> @
--   
--   <a>Method</a> , <a>IntegrationResponse</a> , <a>Integration</a>
--   <a>Creating an API</a>
--   
--   <i>See:</i> <a>methodResponse</a> smart constructor.
data MethodResponse

-- | Creates a value of <a>MethodResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mResponseModels</a> - Specifies the <a>Model</a> resources used
--   for the response's content-type. Response models are represented as a
--   key/value map, with a content-type as the key and a <a>Model</a> name
--   as the value.</li>
--   <li><a>mStatusCode</a> - The method response's status code.</li>
--   <li><a>mResponseParameters</a> - A key-value map specifying required
--   or optional response parameters that Amazon API Gateway can send back
--   to the caller. A key defines a method response header and the value
--   specifies whether the associated method response header is required or
--   not. The expression of the key must match the pattern
--   <tt>method.response.header.{name}</tt> , where <tt>name</tt> is a
--   valid and unique header name. Amazon API Gateway passes certain
--   integration response data to the method response headers specified
--   here according to the mapping you prescribe in the API's
--   <a>IntegrationResponse</a> . The integration response data that can be
--   mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)</li>
--   </ul>
methodResponse :: MethodResponse

-- | Specifies the <a>Model</a> resources used for the response's
--   content-type. Response models are represented as a key/value map, with
--   a content-type as the key and a <a>Model</a> name as the value.
mResponseModels :: Lens' MethodResponse (HashMap Text Text)

-- | The method response's status code.
mStatusCode :: Lens' MethodResponse (Maybe Text)

-- | A key-value map specifying required or optional response parameters
--   that Amazon API Gateway can send back to the caller. A key defines a
--   method response header and the value specifies whether the associated
--   method response header is required or not. The expression of the key
--   must match the pattern <tt>method.response.header.{name}</tt> , where
--   <tt>name</tt> is a valid and unique header name. Amazon API Gateway
--   passes certain integration response data to the method response
--   headers specified here according to the mapping you prescribe in the
--   API's <a>IntegrationResponse</a> . The integration response data that
--   can be mapped include an integration response header expressed in
--   <tt>integration.response.header.{name}</tt> , a static value enclosed
--   within a pair of single quotes (e.g., <tt>'application/json'</tt> ),
--   or a JSON expression from the back-end response payload in the form of
--   <tt>integration.response.body.{JSON-expression}</tt> , where
--   <tt>JSON-expression</tt> is a valid JSON expression without the
--   <tt>&gt; </tt> prefix.)
mResponseParameters :: Lens' MethodResponse (HashMap Text Bool)

-- | Specifies the method setting properties.
--   
--   <i>See:</i> <a>methodSetting</a> smart constructor.
data MethodSetting

-- | Creates a value of <a>MethodSetting</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msCacheTtlInSeconds</a> - Specifies the time to live (TTL), in
--   seconds, for cached responses. The higher the TTL, the longer the
--   response will be cached. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/ttlInSeconds</tt> , and the
--   value is an integer.</li>
--   <li><a>msDataTraceEnabled</a> - Specifies whether data trace logging
--   is enabled for this method, which effects the log entries pushed to
--   Amazon CloudWatch Logs. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>logging/dataTrace</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msThrottlingBurstLimit</a> - Specifies the throttling burst
--   limit. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>throttling/burstLimit</tt> , and the
--   value is an integer.</li>
--   <li><a>msCacheDataEncrypted</a> - Specifies whether the cached
--   responses are encrypted. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/dataEncrypted</tt> , and the
--   value is a Boolean.</li>
--   <li><a>msLoggingLevel</a> - Specifies the logging level for this
--   method, which effects the log entries pushed to Amazon CloudWatch
--   Logs. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>logging/loglevel</tt> , and the
--   available levels are <tt>OFF</tt> , <tt>ERROR</tt> , and <tt>INFO</tt>
--   .</li>
--   <li><a>msRequireAuthorizationForCacheControl</a> - Specifies whether
--   authorization is required for a cache invalidation request. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>caching/requireAuthorizationForCacheControl</tt>
--   , and the value is a Boolean.</li>
--   <li><a>msCachingEnabled</a> - Specifies whether responses should be
--   cached and returned for requests. A cache cluster must be enabled on
--   the stage for responses to be cached. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>caching/enabled</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msMetricsEnabled</a> - Specifies whether Amazon CloudWatch
--   metrics are enabled for this method. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>metrics/enabled</tt> , and the value
--   is a Boolean.</li>
--   <li><a>msThrottlingRateLimit</a> - Specifies the throttling rate
--   limit. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>throttling/rateLimit</tt> , and the
--   value is a double.</li>
--   <li><a>msUnauthorizedCacheControlHeaderStrategy</a> - Specifies how to
--   handle unauthorized requests for cache invalidation. The PATCH path
--   for this setting is
--   <tt><i>{method_setting_key}</i>caching/unauthorizedCacheControlHeaderStrategy</tt>
--   , and the available values are <tt>FAIL_WITH_403</tt> ,
--   <tt>SUCCEED_WITH_RESPONSE_HEADER</tt> ,
--   <tt>SUCCEED_WITHOUT_RESPONSE_HEADER</tt> .</li>
--   </ul>
methodSetting :: MethodSetting

-- | Specifies the time to live (TTL), in seconds, for cached responses.
--   The higher the TTL, the longer the response will be cached. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>caching/ttlInSeconds</tt> , and the
--   value is an integer.
msCacheTtlInSeconds :: Lens' MethodSetting (Maybe Int)

-- | Specifies whether data trace logging is enabled for this method, which
--   effects the log entries pushed to Amazon CloudWatch Logs. The PATCH
--   path for this setting is
--   <tt><i>{method_setting_key}</i>logging/dataTrace</tt> , and the value
--   is a Boolean.
msDataTraceEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the throttling burst limit. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>throttling/burstLimit</tt> , and the
--   value is an integer.
msThrottlingBurstLimit :: Lens' MethodSetting (Maybe Int)

-- | Specifies whether the cached responses are encrypted. The PATCH path
--   for this setting is
--   <tt><i>{method_setting_key}</i>caching/dataEncrypted</tt> , and the
--   value is a Boolean.
msCacheDataEncrypted :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the logging level for this method, which effects the log
--   entries pushed to Amazon CloudWatch Logs. The PATCH path for this
--   setting is <tt><i>{method_setting_key}</i>logging/loglevel</tt> , and
--   the available levels are <tt>OFF</tt> , <tt>ERROR</tt> , and
--   <tt>INFO</tt> .
msLoggingLevel :: Lens' MethodSetting (Maybe Text)

-- | Specifies whether authorization is required for a cache invalidation
--   request. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/requireAuthorizationForCacheControl</tt>
--   , and the value is a Boolean.
msRequireAuthorizationForCacheControl :: Lens' MethodSetting (Maybe Bool)

-- | Specifies whether responses should be cached and returned for
--   requests. A cache cluster must be enabled on the stage for responses
--   to be cached. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/enabled</tt> , and the value is
--   a Boolean.
msCachingEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies whether Amazon CloudWatch metrics are enabled for this
--   method. The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>metrics/enabled</tt> , and the value is
--   a Boolean.
msMetricsEnabled :: Lens' MethodSetting (Maybe Bool)

-- | Specifies the throttling rate limit. The PATCH path for this setting
--   is <tt><i>{method_setting_key}</i>throttling/rateLimit</tt> , and the
--   value is a double.
msThrottlingRateLimit :: Lens' MethodSetting (Maybe Double)

-- | Specifies how to handle unauthorized requests for cache invalidation.
--   The PATCH path for this setting is
--   <tt><i>{method_setting_key}</i>caching/unauthorizedCacheControlHeaderStrategy</tt>
--   , and the available values are <tt>FAIL_WITH_403</tt> ,
--   <tt>SUCCEED_WITH_RESPONSE_HEADER</tt> ,
--   <tt>SUCCEED_WITHOUT_RESPONSE_HEADER</tt> .
msUnauthorizedCacheControlHeaderStrategy :: Lens' MethodSetting (Maybe UnauthorizedCacheControlHeaderStrategy)

-- | Represents a summary of a <a>Method</a> resource, given a particular
--   date and time.
--   
--   <i>See:</i> <a>methodSnapshot</a> smart constructor.
data MethodSnapshot

-- | Creates a value of <a>MethodSnapshot</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>msAuthorizationType</a> - Specifies the type of authorization
--   used for the method.</li>
--   <li><a>msApiKeyRequired</a> - Specifies whether the method requires a
--   valid <tt>ApiKey</tt> .</li>
--   </ul>
methodSnapshot :: MethodSnapshot

-- | Specifies the type of authorization used for the method.
msAuthorizationType :: Lens' MethodSnapshot (Maybe Text)

-- | Specifies whether the method requires a valid <tt>ApiKey</tt> .
msApiKeyRequired :: Lens' MethodSnapshot (Maybe Bool)

-- | Represents the data structure of a method's request or response
--   payload.
--   
--   A request model defines the data structure of the client-supplied
--   request payload. A response model defines the data structure of the
--   response payload returned by the back end. Although not required,
--   models are useful for mapping payloads between the front end and back
--   end.
--   
--   A model is used for generating an API's SDK, validating the input
--   request body, and creating a skeletal mapping template.
--   
--   <a>Method</a> , <a>MethodResponse</a> , <a>Models and Mappings</a>
--   
--   <i>See:</i> <a>model</a> smart constructor.
data Model

-- | Creates a value of <a>Model</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mSchema</a> - The schema for the model. For
--   <tt>application/json</tt> models, this should be <a>JSON-schema draft
--   v4</a> model. Do not include "*<i>" characters in the description of
--   any properties because such "*</i>" characters may be interpreted as
--   the closing marker for comments in some languages, such as Java or
--   JavaScript, causing the installation of your API's SDK generated by
--   API Gateway to fail.</li>
--   <li><a>mName</a> - The name of the model.</li>
--   <li><a>mId</a> - The identifier for the model resource.</li>
--   <li><a>mDescription</a> - The description of the model.</li>
--   <li><a>mContentType</a> - The content-type for the model.</li>
--   </ul>
model :: Model

-- | The schema for the model. For <tt>application/json</tt> models, this
--   should be <a>JSON-schema draft v4</a> model. Do not include "*<i>"
--   characters in the description of any properties because such "*</i>"
--   characters may be interpreted as the closing marker for comments in
--   some languages, such as Java or JavaScript, causing the installation
--   of your API's SDK generated by API Gateway to fail.
mSchema :: Lens' Model (Maybe Text)

-- | The name of the model.
mName :: Lens' Model (Maybe Text)

-- | The identifier for the model resource.
mId :: Lens' Model (Maybe Text)

-- | The description of the model.
mDescription :: Lens' Model (Maybe Text)

-- | The content-type for the model.
mContentType :: Lens' Model (Maybe Text)

-- | A single patch operation to apply to the specified resource. Please
--   refer to <a>http://tools.ietf.org/html/rfc6902#section-4</a> for an
--   explanation of how each operation is used.
--   
--   <i>See:</i> <a>patchOperation</a> smart constructor.
data PatchOperation

-- | Creates a value of <a>PatchOperation</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>poOp</a> - An update operation to be performed with this PATCH
--   request. The valid value can be "add", "remove", or "replace". Not all
--   valid operations are supported for a given resource. Support of the
--   operations depends on specific operational contexts. Attempts to apply
--   an unsupported operation on a resource will return an error
--   message.</li>
--   <li><a>poPath</a> - The <tt>op</tt> operation's target, as identified
--   by a <a>JSON Pointer</a> value that references a location within the
--   targeted resource. For example, if the target resource has an
--   updateable property of <tt>{"name":"value"}</tt> , the path for this
--   property is <tt>/name</tt> . If the <tt>name</tt> property value is a
--   JSON object (e.g., <tt>{"name": {"child/name": "child-value"}}</tt> ),
--   the path for the <tt>child/name</tt> property will be
--   <tt><i>name</i>child~1name</tt> . Any slash ("/") character appearing
--   in path names must be escaped with "~1", as shown in the example
--   above. Each <tt>op</tt> operation can have only one <tt>path</tt>
--   associated with it.</li>
--   <li><a>poValue</a> - The new target value of the update
--   operation.</li>
--   <li><a>poFrom</a> - Not supported.</li>
--   </ul>
patchOperation :: PatchOperation

-- | An update operation to be performed with this PATCH request. The valid
--   value can be "add", "remove", or "replace". Not all valid operations
--   are supported for a given resource. Support of the operations depends
--   on specific operational contexts. Attempts to apply an unsupported
--   operation on a resource will return an error message.
poOp :: Lens' PatchOperation (Maybe Op)

-- | The <tt>op</tt> operation's target, as identified by a <a>JSON
--   Pointer</a> value that references a location within the targeted
--   resource. For example, if the target resource has an updateable
--   property of <tt>{"name":"value"}</tt> , the path for this property is
--   <tt>/name</tt> . If the <tt>name</tt> property value is a JSON object
--   (e.g., <tt>{"name": {"child/name": "child-value"}}</tt> ), the path
--   for the <tt>child/name</tt> property will be
--   <tt><i>name</i>child~1name</tt> . Any slash ("/") character appearing
--   in path names must be escaped with "~1", as shown in the example
--   above. Each <tt>op</tt> operation can have only one <tt>path</tt>
--   associated with it.
poPath :: Lens' PatchOperation (Maybe Text)

-- | The new target value of the update operation.
poValue :: Lens' PatchOperation (Maybe Text)

-- | Not supported.
poFrom :: Lens' PatchOperation (Maybe Text)

-- | Quotas configured for a usage plan.
--   
--   <i>See:</i> <a>quotaSettings</a> smart constructor.
data QuotaSettings

-- | Creates a value of <a>QuotaSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>qsOffset</a> - The number of requests subtracted from the given
--   limit in the initial time period.</li>
--   <li><a>qsPeriod</a> - The time period in which the limit applies.
--   Valid values are <a>DAY</a>, <a>WEEK</a> or <a>MONTH</a>.</li>
--   <li><a>qsLimit</a> - The maximum number of requests that can be made
--   in a given time period.</li>
--   </ul>
quotaSettings :: QuotaSettings

-- | The number of requests subtracted from the given limit in the initial
--   time period.
qsOffset :: Lens' QuotaSettings (Maybe Int)

-- | The time period in which the limit applies. Valid values are
--   <a>DAY</a>, <a>WEEK</a> or <a>MONTH</a>.
qsPeriod :: Lens' QuotaSettings (Maybe QuotaPeriodType)

-- | The maximum number of requests that can be made in a given time
--   period.
qsLimit :: Lens' QuotaSettings (Maybe Int)

-- | Represents an API resource.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>resource</a> smart constructor.
data Resource

-- | Creates a value of <a>Resource</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPathPart</a> - The last path segment for this resource.</li>
--   <li><a>rPath</a> - The full path for this resource.</li>
--   <li><a>rId</a> - The resource's identifier.</li>
--   <li><a>rResourceMethods</a> - Gets an API resource's method of a given
--   HTTP verb. The resource methods are a map of methods indexed by
--   methods' HTTP verbs enabled on the resource. This method map is
--   included in the <tt>200 OK</tt> response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .</li>
--   <li><a>rParentId</a> - The parent resource's identifier.</li>
--   </ul>
resource :: Resource

-- | The last path segment for this resource.
rPathPart :: Lens' Resource (Maybe Text)

-- | The full path for this resource.
rPath :: Lens' Resource (Maybe Text)

-- | The resource's identifier.
rId :: Lens' Resource (Maybe Text)

-- | Gets an API resource's method of a given HTTP verb. The resource
--   methods are a map of methods indexed by methods' HTTP verbs enabled on
--   the resource. This method map is included in the <tt>200 OK</tt>
--   response of the <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}</tt> or
--   <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   request. <b>Example: Get the GET method of an API resource</b>
--   <b>Request</b> @<tt>GET
--   <i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET
--   HTTP<i>1.1 Content-Type: application</i>json Host:
--   apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160608T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20160608</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}</tt>
--   <tt> <b>Response</b> </tt><tt>{ "_links": { "curies": [ { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-{rel}.html"</a>,
--   "name": "integration", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-integration-response-{rel}.html"</a>,
--   "name": "integrationresponse", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-{rel}.html"</a>,
--   "name": "method", "templated": true }, { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html"</a>,
--   "name": "methodresponse", "templated": true } ], "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET",
--   "name": <a>GET</a>, "title": <a>GET</a> }, "integration:put": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "method:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET"
--   }, "method:integration": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "method:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "method:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET"
--   }, "methodresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>{status_code}",
--   "templated": true } }, "apiKeyRequired": false, "authorizationType":
--   <a>NONE</a>, "httpMethod": <a>GET</a>, "_embedded": {
--   "method:integration": { "_links": { "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration"
--   }, "integration:delete": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integration:responses": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integration:update": { "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration"
--   }, "integrationresponse:put": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>{status_code}",
--   "templated": true } }, "cacheKeyParameters": [], "cacheNamespace":
--   "3kzxbg5sa2", "credentials":
--   "arn:aws:iam::123456789012:role</i>apigAwsProxyRole", "httpMethod":
--   <a>POST</a>, "passthroughBehavior": <a>WHEN_NO_MATCH</a>,
--   "requestParameters": { "integration.request.header.Content-Type":
--   "'application/x-amz-json-1.1'" }, "requestTemplates": {
--   "application<i>json": "{n}" }, "type": <a>AWS</a>, "uri":
--   "arn:aws:apigateway:us-east-1:kinesis:action</i>ListStreams",
--   "_embedded": { "integration:responses": { "_links": { "self": {
--   "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200",
--   "name": "200", "title": "200" }, "integrationresponse:delete": {
--   "href":
--   "</i>restapis<i>fugvjdxtri</i>resources<i>3kzxbg5sa2</i>methods<i>GET</i>integration<i>responses</i>200"
--   }, "integrationresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>integration</i>responses<i>200"
--   } }, "responseParameters": { "method.response.header.Content-Type":
--   "'application</i>xml'" }, "responseTemplates": { "application<i>json":
--   "$util.urlDecode("%3CkinesisStreams%3E#foreach($stream in
--   $input.path('$.StreamNames'))%3Cstream%3E%3Cname%3E$stream%3C</i>name%3E%3C<i>stream%3E#end%3C</i>kinesisStreams%3E")n"
--   }, "statusCode": "200" } } }, "method:responses": { "_links": {
--   "self": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200",
--   "name": "200", "title": "200" }, "methodresponse:delete": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   }, "methodresponse:update": { "href":
--   "<i>restapis</i>fugvjdxtri<i>resources</i>3kzxbg5sa2<i>methods</i>GET<i>responses</i>200"
--   } }, "responseModels": { "application/json": <a>Empty</a> },
--   "responseParameters": { "method.response.header.Content-Type": false
--   }, "statusCode": "200" } } }</tt> <tt> If the </tt>OPTIONS<tt> is
--   enabled on the resource, you can follow the example here to get that
--   method. Just replace the </tt>GET<tt> of the last path segment in the
--   request URL with </tt>OPTIONS@ .
rResourceMethods :: Lens' Resource (HashMap Text Method)

-- | The parent resource's identifier.
rParentId :: Lens' Resource (Maybe Text)

-- | Represents a REST API.
--   
--   <a>Create an API</a>
--   
--   <i>See:</i> <a>restAPI</a> smart constructor.
data RestAPI

-- | Creates a value of <a>RestAPI</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>raBinaryMediaTypes</a> - The list of binary media types
--   supported by the <tt>RestApi</tt> . By default, the <tt>RestApi</tt>
--   supports only UTF-8-encoded text payloads.</li>
--   <li><a>raWarnings</a> - The warning messages reported when
--   <tt>failonwarnings</tt> is turned on during API import.</li>
--   <li><a>raCreatedDate</a> - The date when the API was created, in
--   <a>ISO 8601 format</a> .</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in Amazon API Gateway.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | The list of binary media types supported by the <tt>RestApi</tt> . By
--   default, the <tt>RestApi</tt> supports only UTF-8-encoded text
--   payloads.
raBinaryMediaTypes :: Lens' RestAPI [Text]

-- | The warning messages reported when <tt>failonwarnings</tt> is turned
--   on during API import.
raWarnings :: Lens' RestAPI [Text]

-- | The date when the API was created, in <a>ISO 8601 format</a> .
raCreatedDate :: Lens' RestAPI (Maybe UTCTime)

-- | The API's name.
raName :: Lens' RestAPI (Maybe Text)

-- | A version identifier for the API.
raVersion :: Lens' RestAPI (Maybe Text)

-- | The API's identifier. This identifier is unique across all of your
--   APIs in Amazon API Gateway.
raId :: Lens' RestAPI (Maybe Text)

-- | The API's description.
raDescription :: Lens' RestAPI (Maybe Text)

-- | Represents a unique identifier for a version of a deployed
--   <tt>RestApi</tt> that is callable by users.
--   
--   <a>Deploy an API</a>
--   
--   <i>See:</i> <a>stage</a> smart constructor.
data Stage

-- | Creates a value of <a>Stage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sDeploymentId</a> - The identifier of the <a>Deployment</a>
--   that the stage points to.</li>
--   <li><a>sVariables</a> - A map that defines the stage variables for a
--   <a>Stage</a> resource. Variable names can have alphanumeric and
--   underscore characters, and the values must match
--   <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .</li>
--   <li><a>sDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>sClientCertificateId</a> - The identifier of a client
--   certificate for an API stage.</li>
--   <li><a>sCreatedDate</a> - The date and time that the stage was
--   created, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterStatus</a> - The status of the cache cluster for
--   the stage, if enabled.</li>
--   <li><a>sMethodSettings</a> - A map that defines the method settings
--   for a <a>Stage</a> resource. Keys (designated as
--   <tt>/{method_setting_key</tt> below) are method paths defined as
--   <tt>{resource_path}/{http_method}</tt> for an individual method
--   override, or <tt><i>*</i>*</tt> for overriding all methods in the
--   stage.</li>
--   <li><a>sLastUpdatedDate</a> - The date and time that information about
--   the stage was last updated, in <a>ISO 8601 format</a> .</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCacheClusterEnabled</a> - Specifies whether a cache cluster is
--   enabled for the stage.</li>
--   <li><a>sStageName</a> - The name of the stage is the first path
--   segment in the Uniform Resource Identifier (URI) of a call to Amazon
--   API Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   </ul>
stage :: Stage

-- | The identifier of the <a>Deployment</a> that the stage points to.
sDeploymentId :: Lens' Stage (Maybe Text)

-- | A map that defines the stage variables for a <a>Stage</a> resource.
--   Variable names can have alphanumeric and underscore characters, and
--   the values must match <tt>[A-Za-z0-9-._~:/?#&amp;=,]+</tt> .
sVariables :: Lens' Stage (HashMap Text Text)

-- | The version of the associated API documentation.
sDocumentationVersion :: Lens' Stage (Maybe Text)

-- | The identifier of a client certificate for an API stage.
sClientCertificateId :: Lens' Stage (Maybe Text)

-- | The date and time that the stage was created, in <a>ISO 8601
--   format</a> .
sCreatedDate :: Lens' Stage (Maybe UTCTime)

-- | The status of the cache cluster for the stage, if enabled.
sCacheClusterStatus :: Lens' Stage (Maybe CacheClusterStatus)

-- | A map that defines the method settings for a <a>Stage</a> resource.
--   Keys (designated as <tt>/{method_setting_key</tt> below) are method
--   paths defined as <tt>{resource_path}/{http_method}</tt> for an
--   individual method override, or <tt><i>*</i>*</tt> for overriding all
--   methods in the stage.
sMethodSettings :: Lens' Stage (HashMap Text MethodSetting)

-- | The date and time that information about the stage was last updated,
--   in <a>ISO 8601 format</a> .
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

-- | The size of the cache cluster for the stage, if enabled.
sCacheClusterSize :: Lens' Stage (Maybe CacheClusterSize)

-- | Specifies whether a cache cluster is enabled for the stage.
sCacheClusterEnabled :: Lens' Stage (Maybe Bool)

-- | The name of the stage is the first path segment in the Uniform
--   Resource Identifier (URI) of a call to Amazon API Gateway.
sStageName :: Lens' Stage (Maybe Text)

-- | The stage's description.
sDescription :: Lens' Stage (Maybe Text)

-- | A reference to a unique stage identified in the format
--   <tt>{restApiId}/{stage}</tt> .
--   
--   <i>See:</i> <a>stageKey</a> smart constructor.
data StageKey

-- | Creates a value of <a>StageKey</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>skRestAPIId</a> - A list of <a>Stage</a> resources that are
--   associated with the <tt>ApiKey</tt> resource.</li>
--   <li><a>skStageName</a> - The stage name in the <tt>RestApi</tt> that
--   the stage key references.</li>
--   </ul>
stageKey :: StageKey

-- | A list of <a>Stage</a> resources that are associated with the
--   <tt>ApiKey</tt> resource.
skRestAPIId :: Lens' StageKey (Maybe Text)

-- | The stage name in the <tt>RestApi</tt> that the stage key references.
skStageName :: Lens' StageKey (Maybe Text)

-- | The API request rate limits.
--   
--   <i>See:</i> <a>throttleSettings</a> smart constructor.
data ThrottleSettings

-- | Creates a value of <a>ThrottleSettings</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tsBurstLimit</a> - The API request burst limit, the maximum
--   rate limit over a time ranging from one to a few seconds, depending
--   upon whether the underlying token bucket is at its full capacity.</li>
--   <li><a>tsRateLimit</a> - The API request steady-state rate limit.</li>
--   </ul>
throttleSettings :: ThrottleSettings

-- | The API request burst limit, the maximum rate limit over a time
--   ranging from one to a few seconds, depending upon whether the
--   underlying token bucket is at its full capacity.
tsBurstLimit :: Lens' ThrottleSettings (Maybe Int)

-- | The API request steady-state rate limit.
tsRateLimit :: Lens' ThrottleSettings (Maybe Double)

-- | Represents the usage data of a usage plan.
--   
--   <a>Create and Use Usage Plans</a> , <a>Manage Usage in a Usage
--   Plan</a>
--   
--   <i>See:</i> <a>usage</a> smart constructor.
data Usage

-- | Creates a value of <a>Usage</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uUsagePlanId</a> - The plan Id associated with this usage
--   data.</li>
--   <li><a>uEndDate</a> - The ending date of the usage data.</li>
--   <li><a>uItems</a> - The usage data, as daily logs of used and
--   remaining quotas, over the specified time interval indexed over the
--   API keys in a usage plan. For example, <tt>{..., "values" : {
--   "{api_key}" : [ [0, 100], [10, 90], [100, 10]]}</tt> , where
--   <tt>{api_key}</tt> stands for an API key value and the daily log entry
--   is of the format <tt>[used quota, remaining quota]</tt> .</li>
--   <li><a>uStartDate</a> - The starting date of the usage data.</li>
--   <li><a>uPosition</a> - Undocumented member.</li>
--   </ul>
usage :: Usage

-- | The plan Id associated with this usage data.
uUsagePlanId :: Lens' Usage (Maybe Text)

-- | The ending date of the usage data.
uEndDate :: Lens' Usage (Maybe Text)

-- | The usage data, as daily logs of used and remaining quotas, over the
--   specified time interval indexed over the API keys in a usage plan. For
--   example, <tt>{..., "values" : { "{api_key}" : [ [0, 100], [10, 90],
--   [100, 10]]}</tt> , where <tt>{api_key}</tt> stands for an API key
--   value and the daily log entry is of the format <tt>[used quota,
--   remaining quota]</tt> .
uItems :: Lens' Usage (HashMap Text [[Integer]])

-- | The starting date of the usage data.
uStartDate :: Lens' Usage (Maybe Text)

-- | Undocumented member.
uPosition :: Lens' Usage (Maybe Text)

-- | Represents a usage plan than can specify who can assess associated API
--   stages with specified request limits and quotas.
--   
--   In a usage plan, you associate an API by specifying the API's Id and a
--   stage name of the specified API. You add plan customers by adding API
--   keys to the plan.
--   
--   <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlan</a> smart constructor.
data UsagePlan

-- | Creates a value of <a>UsagePlan</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upApiStages</a> - The associated API stages of a usage
--   plan.</li>
--   <li><a>upName</a> - The name of a usage plan.</li>
--   <li><a>upId</a> - The identifier of a <a>UsagePlan</a> resource.</li>
--   <li><a>upThrottle</a> - The request throttle limits of a usage
--   plan.</li>
--   <li><a>upQuota</a> - The maximum number of permitted requests per a
--   given unit time interval.</li>
--   <li><a>upDescription</a> - The description of a usage plan.</li>
--   <li><a>upProductCode</a> - The AWS Markeplace product identifier to
--   associate with the usage plan as a SaaS product on AWS
--   Marketplace.</li>
--   </ul>
usagePlan :: UsagePlan

-- | The associated API stages of a usage plan.
upApiStages :: Lens' UsagePlan [APIStage]

-- | The name of a usage plan.
upName :: Lens' UsagePlan (Maybe Text)

-- | The identifier of a <a>UsagePlan</a> resource.
upId :: Lens' UsagePlan (Maybe Text)

-- | The request throttle limits of a usage plan.
upThrottle :: Lens' UsagePlan (Maybe ThrottleSettings)

-- | The maximum number of permitted requests per a given unit time
--   interval.
upQuota :: Lens' UsagePlan (Maybe QuotaSettings)

-- | The description of a usage plan.
upDescription :: Lens' UsagePlan (Maybe Text)

-- | The AWS Markeplace product identifier to associate with the usage plan
--   as a SaaS product on AWS Marketplace.
upProductCode :: Lens' UsagePlan (Maybe Text)

-- | Represents a usage plan key to identify a plan customer.
--   
--   To associate an API stage with a selected API key in a usage plan, you
--   must create a UsagePlanKey resource to represent the selected
--   <tt>ApiKey</tt> .
--   
--   " <a>Create and Use Usage Plans</a>
--   
--   <i>See:</i> <a>usagePlanKey</a> smart constructor.
data UsagePlanKey

-- | Creates a value of <a>UsagePlanKey</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>upkValue</a> - The value of a usage plan key.</li>
--   <li><a>upkName</a> - The name of a usage plan key.</li>
--   <li><a>upkId</a> - The Id of a usage plan key.</li>
--   <li><a>upkType</a> - The type of a usage plan key. Currently, the
--   valid key type is <tt>API_KEY</tt> .</li>
--   </ul>
usagePlanKey :: UsagePlanKey

-- | The value of a usage plan key.
upkValue :: Lens' UsagePlanKey (Maybe Text)

-- | The name of a usage plan key.
upkName :: Lens' UsagePlanKey (Maybe Text)

-- | The Id of a usage plan key.
upkId :: Lens' UsagePlanKey (Maybe Text)

-- | The type of a usage plan key. Currently, the valid key type is
--   <tt>API_KEY</tt> .
upkType :: Lens' UsagePlanKey (Maybe Text)
