-- 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.6.1


module Network.AWS.APIGateway.Types

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

-- | The request configuration has conflicts. For details, see the
--   accompanying error message.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested resource is not found. Make sure that the request URI is
--   correct.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request has reached its throttling limit. Retry after the
--   specified time period.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested service is not available. For details see the
--   accompanying error message. Retry after the specified time period.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request is denied because the caller has insufficient permissions.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The submitted request is not valid, for example, the input is
--   incomplete or incorrect. See the accompanying error message for
--   details.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request exceeded the rate limit. Retry after the specified time
--   period.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data APIKeySourceType
Authorizer :: APIKeySourceType
Header :: APIKeySourceType
data APIKeysFormat
CSV :: APIKeysFormat

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
data AuthorizerType
AuthorizerCognitoUserPools :: AuthorizerType
AuthorizerRequest :: AuthorizerType
AuthorizerToken :: 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 ConnectionType
Internet :: ConnectionType
VPCLink :: ConnectionType
data ContentHandlingStrategy
ConvertToBinary :: ContentHandlingStrategy
ConvertToText :: ContentHandlingStrategy
data DocumentationPartType
DPTAPI :: DocumentationPartType
DPTAuthorizer :: DocumentationPartType
DPTMethod :: DocumentationPartType
DPTModel :: DocumentationPartType
DPTPathParameter :: DocumentationPartType
DPTQueryParameter :: DocumentationPartType
DPTRequestBody :: DocumentationPartType
DPTRequestHeader :: DocumentationPartType
DPTResource :: DocumentationPartType
DPTResponse :: DocumentationPartType
DPTResponseBody :: DocumentationPartType
DPTResponseHeader :: DocumentationPartType

-- | The endpoint type. The valid value is <tt>EDGE</tt> for edge-optimized
--   API setup, most suitable for mobile applications, <tt>REGIONAL</tt>
--   for regional API endpoint setup, most suitable for calling from AWS
--   Region
data EndpointType
Edge :: EndpointType
Regional :: EndpointType
data GatewayResponseType
APIConfigurationError :: GatewayResponseType
AccessDenied :: GatewayResponseType
AuthorizerConfigurationError :: GatewayResponseType
AuthorizerFailure :: GatewayResponseType
BadRequestBody :: GatewayResponseType
BadRequestParameters :: GatewayResponseType
Default4XX :: GatewayResponseType
Default5XX :: GatewayResponseType
ExpiredToken :: GatewayResponseType
IntegrationFailure :: GatewayResponseType
IntegrationTimeout :: GatewayResponseType
InvalidAPIKey :: GatewayResponseType
InvalidSignature :: GatewayResponseType
MissingAuthenticationToken :: GatewayResponseType
QuotaExceeded :: GatewayResponseType
RequestTooLarge :: GatewayResponseType
ResourceNotFound :: GatewayResponseType
Throttled :: GatewayResponseType
Unauthorized :: GatewayResponseType
UnsupportedMediaType :: GatewayResponseType

-- | The integration type. The valid value is <tt>HTTP</tt> for integrating
--   an API method with an HTTP backend; <tt>AWS</tt> with any AWS service
--   endpoints; <tt>MOCK</tt> for testing without actually invoking the
--   backend; <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration; <tt>AWS_PROXY</tt> for integrating with the Lambda proxy
--   integration.
data IntegrationType
AWS :: IntegrationType
AWSProxy :: IntegrationType
HTTP :: IntegrationType
HTTPProxy :: IntegrationType
Mock :: IntegrationType
data LocationStatusType
Documented :: LocationStatusType
Undocumented :: LocationStatusType
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
data VPCLinkStatus
VLSAvailable :: VPCLinkStatus
VLSDeleting :: VPCLinkStatus
VLSFailed :: VPCLinkStatus
VLSPending :: VPCLinkStatus

-- | 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 timestamp when the API Key was
--   created.</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> - The timestamp when the API Key was last
--   updated.</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 timestamp when the API Key was created.
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]

-- | The timestamp when the API Key was last updated.
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)

-- | Access log settings, including the access log format and access log
--   destination ARN.
--   
--   <i>See:</i> <a>accessLogSettings</a> smart constructor.
data AccessLogSettings

-- | Creates a value of <a>AccessLogSettings</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>alsFormat</a> - A single line format of the access logs of
--   data, as specified by selected
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference</a>
--   context variables&gt; . The format must include at least <tt>&gt;
--   context.requestId</tt> .</li>
--   <li><a>alsDestinationARN</a> - The ARN of the CloudWatch Logs log
--   group to receive access logs.</li>
--   </ul>
accessLogSettings :: AccessLogSettings

-- | A single line format of the access logs of data, as specified by
--   selected
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference</a>
--   context variables&gt; . The format must include at least <tt>&gt;
--   context.requestId</tt> .
alsFormat :: Lens' AccessLogSettings (Maybe Text)

-- | The ARN of the CloudWatch Logs log group to receive access logs.
alsDestinationARN :: Lens' AccessLogSettings (Maybe Text)

-- | Represents an AWS account that is associated with 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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>aProviderARNs</a> - A list of the Amazon Cognito user pool ARNs
--   for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of
--   this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</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 it equals 0, authorization caching is
--   disabled. If it is 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 and exports without functional impact.</li>
--   <li><a>aType</a> - The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   <li><a>aIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the required credentials
--   as an IAM role for API Gateway to invoke the authorizer. To specify an
--   IAM role for 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
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 it equals 0,
--   authorization caching is disabled. If it is 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 and exports
--   without functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for 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 associated 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 string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | The name of the associated 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 string identifier of the associated <tt>RestApi</tt> .
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)

-- | Configuration settings of a canary deployment.
--   
--   <i>See:</i> <a>canarySettings</a> smart constructor.
data CanarySettings

-- | Creates a value of <a>CanarySettings</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>csDeploymentId</a> - The ID of the canary deployment.</li>
--   <li><a>csStageVariableOverrides</a> - Stage variables overridden for a
--   canary release deployment, including new stage variables introduced in
--   the canary. These stage variables are represented as a
--   string-to-string map between stage variable names and their
--   values.</li>
--   <li><a>csUseStageCache</a> - A Boolean flag to indicate whether the
--   canary deployment uses the stage cache or not.</li>
--   <li><a>csPercentTraffic</a> - The percent (0-100) of traffic diverted
--   to a canary deployment.</li>
--   </ul>
canarySettings :: CanarySettings

-- | The ID of the canary deployment.
csDeploymentId :: Lens' CanarySettings (Maybe Text)

-- | Stage variables overridden for a canary release deployment, including
--   new stage variables introduced in the canary. These stage variables
--   are represented as a string-to-string map between stage variable names
--   and their values.
csStageVariableOverrides :: Lens' CanarySettings (HashMap Text Text)

-- | A Boolean flag to indicate whether the canary deployment uses the
--   stage cache or not.
csUseStageCache :: Lens' CanarySettings (Maybe Bool)

-- | The percent (0-100) of traffic diverted to a canary deployment.
csPercentTraffic :: Lens' CanarySettings (Maybe Double)

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used to authenticate an API by the backend
--   server. To authenticate an API client (or user), use IAM roles and
--   policies, a custom <a>Authorizer</a> or an Amazon Cognito user
--   pool.<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 timestamp when the client certificate
--   was created.</li>
--   <li><a>ccExpirationDate</a> - The timestamp when the client
--   certificate will expire.</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 timestamp when the client certificate was created.
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The timestamp when the client certificate will expire.
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)

-- | The input configuration for a canary deployment.
--   
--   <i>See:</i> <a>deploymentCanarySettings</a> smart constructor.
data DeploymentCanarySettings

-- | Creates a value of <a>DeploymentCanarySettings</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>dcsStageVariableOverrides</a> - A stage variable overrides used
--   for the canary release deployment. They can override existing stage
--   variables or add new stage variables for the canary release
--   deployment. These stage variables are represented as a
--   string-to-string map between stage variable names and their
--   values.</li>
--   <li><a>dcsUseStageCache</a> - A Boolean flag to indicate whether the
--   canary release deployment uses the stage cache or not.</li>
--   <li><a>dcsPercentTraffic</a> - The percentage (0.0-100.0) of traffic
--   routed to the canary deployment.</li>
--   </ul>
deploymentCanarySettings :: DeploymentCanarySettings

-- | A stage variable overrides used for the canary release deployment.
--   They can override existing stage variables or add new stage variables
--   for the canary release deployment. These stage variables are
--   represented as a string-to-string map between stage variable names and
--   their values.
dcsStageVariableOverrides :: Lens' DeploymentCanarySettings (HashMap Text Text)

-- | A Boolean flag to indicate whether the canary release deployment uses
--   the stage cache or not.
dcsUseStageCache :: Lens' DeploymentCanarySettings (Maybe Bool)

-- | The percentage (0.0-100.0) of traffic routed to the canary deployment.
dcsPercentTraffic :: Lens' DeploymentCanarySettings (Maybe Double)

-- | 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 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 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> - [Required] The type of API entity to which the
--   documentation content applies. Valid values 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> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>METHOD</tt> , <tt>MODEL</tt> ,
--   <tt>REQUEST_BODY</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)

-- | <ul>
--   <li><i>Required</i> The type of API entity to which the documentation
--   content applies. Valid values 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> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>METHOD</tt> , <tt>MODEL</tt> ,
--   <tt>REQUEST_BODY</tt> , or <tt>RESOURCE</tt> type.</li>
--   </ul>
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 custom domain name as a user-friendly host name of an API
--   (<tt>RestApi</tt> ).
--   
--   When you deploy an API, API Gateway creates a default host name for
--   the API. This default API host name is of the
--   <tt>{restapi-id}.execute-api.{region}.amazonaws.com</tt> format. With
--   the default host name, you can access the API's root resource with the
--   URL of
--   <tt><a>https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/</a></tt>
--   . When you set up a custom domain name of <tt>apis.example.com</tt>
--   for this API, you can then access the same resource using the URL of
--   the <tt><a>https://apis.examples.com/myApi</a></tt> , where
--   <tt>myApi</tt> is the base path mapping (<a>BasePathMapping</a> ) of
--   your API under the custom domain name.
--   
--   <a>Set a Custom Host Name for an API</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>dnRegionalHostedZoneId</a> - The region-specific Amazon Route
--   53 Hosted Zone ID of the regional endpoint. For more information, see
--   <a>Set up a Regional Custom Domain Name</a> and <a>AWS Regions and
--   Endpoints for API Gateway</a> .</li>
--   <li><a>dnCertificateName</a> - The name of the certificate that will
--   be used by edge-optimized endpoint for this domain name.</li>
--   <li><a>dnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used for validating the regional domain name.
--   AWS Certificate Manager is the only supported source.</li>
--   <li><a>dnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>dnDistributionHostedZoneId</a> - The region-agnostic Amazon
--   Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid
--   value is <tt>Z2FDTNDATAQYW2</tt> for all the regions. For more
--   information, see <a>Set up a Regional Custom Domain Name</a> and
--   <a>AWS Regions and Endpoints for API Gateway</a> .</li>
--   <li><a>dnDomainName</a> - The custom domain name as an API host name,
--   for example, <tt>my-api.example.com</tt> .</li>
--   <li><a>dnRegionalCertificateName</a> - The name of the certificate
--   that will be used for validating the regional domain name.</li>
--   <li><a>dnRegionalDomainName</a> - The domain name associated with the
--   regional endpoint for this custom domain name. You set up this
--   association by adding a DNS record that points the custom domain name
--   to this regional domain name. The regional domain name is returned by
--   API Gateway when you create a regional endpoint.</li>
--   <li><a>dnCertificateUploadDate</a> - The timestamp when the
--   certificate that was used by edge-optimized endpoint for this domain
--   name was uploaded.</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution associated with this custom domain name for an
--   edge-optimized endpoint. You set up this association when adding a DNS
--   record pointing the custom domain name to this distribution name. For
--   more information about CloudFront distributions, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   <li><a>dnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   </ul>
domainName :: DomainName

-- | The region-specific Amazon Route 53 Hosted Zone ID of the regional
--   endpoint. For more information, see <a>Set up a Regional Custom Domain
--   Name</a> and <a>AWS Regions and Endpoints for API Gateway</a> .
dnRegionalHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used by edge-optimized
--   endpoint for this domain name.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used for
--   validating the regional domain name. AWS Certificate Manager is the
--   only supported source.
dnRegionalCertificateARN :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
dnCertificateARN :: Lens' DomainName (Maybe Text)

-- | The region-agnostic Amazon Route 53 Hosted Zone ID of the
--   edge-optimized endpoint. The valid value is <tt>Z2FDTNDATAQYW2</tt>
--   for all the regions. For more information, see <a>Set up a Regional
--   Custom Domain Name</a> and <a>AWS Regions and Endpoints for API
--   Gateway</a> .
dnDistributionHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The custom domain name as an API host name, for example,
--   <tt>my-api.example.com</tt> .
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used for validating the
--   regional domain name.
dnRegionalCertificateName :: Lens' DomainName (Maybe Text)

-- | The domain name associated with the regional endpoint for this custom
--   domain name. You set up this association by adding a DNS record that
--   points the custom domain name to this regional domain name. The
--   regional domain name is returned by API Gateway when you create a
--   regional endpoint.
dnRegionalDomainName :: Lens' DomainName (Maybe Text)

-- | The timestamp when the certificate that was used by edge-optimized
--   endpoint for this domain name was uploaded.
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution associated with
--   this custom domain name for an edge-optimized endpoint. You set up
--   this association when adding a DNS record pointing the custom domain
--   name to this distribution name. For more information about CloudFront
--   distributions, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
dnEndpointConfiguration :: Lens' DomainName (Maybe EndpointConfiguration)

-- | The endpoint configuration to indicate the types of endpoints an API
--   (<tt>RestApi</tt> ) or its custom domain name (<a>DomainName</a> )
--   has.
--   
--   <i>See:</i> <a>endpointConfiguration</a> smart constructor.
data EndpointConfiguration

-- | Creates a value of <a>EndpointConfiguration</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>ecTypes</a> - A list of endpoint types of an API
--   (<tt>RestApi</tt> ) or its custom domain name (<a>DomainName</a> ).
--   For an edge-optimized API and its custom domain name, the endpoint
--   type is <tt><a>EDGE</a></tt> . For a regional API and its custom
--   domain name, the endpoint type is <tt>REGIONAL</tt> .</li>
--   </ul>
endpointConfiguration :: EndpointConfiguration

-- | A list of endpoint types of an API (<tt>RestApi</tt> ) or its custom
--   domain name (<a>DomainName</a> ). For an edge-optimized API and its
--   custom domain name, the endpoint type is <tt><a>EDGE</a></tt> . For a
--   regional API and its custom domain name, the endpoint type is
--   <tt>REGIONAL</tt> .
ecTypes :: Lens' EndpointConfiguration [EndpointType]

-- | A gateway response of a given response type and status code, with
--   optional response parameters and mapping templates.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   a Gateway Response of a given response type</b> <b>Request</b> This
--   example shows how to get a gateway response of the
--   <tt>MISSING_AUTHENTICATION_TOKEN</tt> type.
--   
--   @<tt>GET
--   <i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN
--   HTTP<i>1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application</i>json X-Amz-Date: 20170503T202516Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}<i>20170503</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
--   Cache-Control: no-cache Postman-Token:
--   3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 </tt> @ The response type is
--   specified as a URL path.
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:delete": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": false, "responseParameters": {
--   "gatewayresponse.header.x-request-path": "method.request.path.petId",
--   "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
--   "gatewayresponse.header.x-request-query":
--   "method.request.querystring.q",
--   "gatewayresponse.header.x-request-header":
--   "method.request.header.Accept" }, "responseTemplates": {
--   "application/json": "{n "message": $context.error.messageString,n
--   "type": "$context.error.responseType",n "stage": "$context.stage",n
--   "resourcePath": "$context.resourcePath",n "stageVariables.a":
--   "$stageVariables.a",n "statusCode": "'404'"n}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "404" }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>gatewayResponse</a> smart constructor.
data GatewayResponse

-- | Creates a value of <a>GatewayResponse</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>gDefaultResponse</a> - A Boolean flag to indicate whether this
--   <a>GatewayResponse</a> is the default gateway response (<tt>true</tt>
--   ) or not (<tt>false</tt> ). A default gateway response is one
--   generated by API Gateway without any customization by an API
--   developer.</li>
--   <li><a>gResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>gResponseType</a> - The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   <li><a>gStatusCode</a> - The HTTP status code for this
--   <a>GatewayResponse</a> .</li>
--   <li><a>gResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   </ul>
gatewayResponse :: GatewayResponse

-- | A Boolean flag to indicate whether this <a>GatewayResponse</a> is the
--   default gateway response (<tt>true</tt> ) or not (<tt>false</tt> ). A
--   default gateway response is one generated by API Gateway without any
--   customization by an API developer.
gDefaultResponse :: Lens' GatewayResponse (Maybe Bool)

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
gResponseTemplates :: Lens' GatewayResponse (HashMap Text Text)

-- | The response type of the associated <a>GatewayResponse</a> . Valid
--   values are * ACCESS_DENIED * API_CONFIGURATION_ERROR *
--   AUTHORIZER_FAILURE * AUTHORIZER_CONFIGURATION_ERROR *
--   BAD_REQUEST_PARAMETERS * BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX
--   * EXPIRED_TOKEN * INVALID_SIGNATURE * INTEGRATION_FAILURE *
--   INTEGRATION_TIMEOUT * INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN *
--   QUOTA_EXCEEDED * REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED *
--   UNAUTHORIZED * UNSUPPORTED_MEDIA_TYPE
gResponseType :: Lens' GatewayResponse (Maybe GatewayResponseType)

-- | The HTTP status code for this <a>GatewayResponse</a> .
gStatusCode :: Lens' GatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
gResponseParameters :: Lens' GatewayResponse (HashMap Text 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>
--   
--   <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 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>iConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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> . The valid value is one of the
--   following: * <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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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>iTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>iType</a> - Specifies an API method integration type. The valid
--   value is one of the following: * <tt>AWS</tt> : for integrating the
--   API method request with an AWS service action, including the Lambda
--   function-invoking action. With the Lambda function-invoking action,
--   this is referred to as the Lambda custom integration. With any other
--   AWS service action, this is known as AWS integration. *
--   <tt>AWS_PROXY</tt> : for integrating the API method request with the
--   Lambda function-invoking action with the client request passed through
--   as-is. This integration is also referred to as the Lambda proxy
--   integration. * <tt>HTTP</tt> : for integrating the API method request
--   with an HTTP endpoint, including a private HTTP endpoint within a VPC.
--   This integration is also referred to as the HTTP custom integration. *
--   <tt>HTTP_PROXY</tt> : for integrating the API method request with an
--   HTTP endpoint, including a private HTTP endpoint within a VPC, with
--   the client request passed through as-is. This is also referred to as
--   the HTTP proxy integration. * <tt>MOCK</tt> : for integrating the API
--   method request with API Gateway as a "loop-back" endpoint without
--   invoking any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.</li>
--   <li><a>iConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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 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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
iConnectionId :: 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> .
--   The valid value is one of the following: * <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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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)

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
iTimeoutInMillis :: Lens' Integration (Maybe Int)

-- | Specifies an API method integration type. The valid value is one of
--   the following: * <tt>AWS</tt> : for integrating the API method request
--   with an AWS service action, including the Lambda function-invoking
--   action. With the Lambda function-invoking action, this is referred to
--   as the Lambda custom integration. With any other AWS service action,
--   this is known as AWS integration. * <tt>AWS_PROXY</tt> : for
--   integrating the API method request with the Lambda function-invoking
--   action with the client request passed through as-is. This integration
--   is also referred to as the Lambda proxy integration. * <tt>HTTP</tt> :
--   for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC. This integration is
--   also referred to as the HTTP custom integration. * <tt>HTTP_PROXY</tt>
--   : for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC, with the client
--   request passed through as-is. This is also referred to as the HTTP
--   proxy integration. * <tt>MOCK</tt> : for integrating the API method
--   request with API Gateway as a "loop-back" endpoint without invoking
--   any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.
iType :: Lens' Integration (Maybe IntegrationType)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
iConnectionType :: Lens' Integration (Maybe ConnectionType)

-- | 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>mAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>mRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for request validation.</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 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>mOperationName</a> - A human-friendly operation identifier for
--   the method. For example, you can assign the <tt>operationName</tt> of
--   <tt>ListPets</tt> for the <tt>GET /pets</tt> method in <a>PetStore</a>
--   example.</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type. Valid
--   values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using
--   AWS IAM permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</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 list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
mAuthorizationScopes :: Lens' Method [Text]

-- | The identifier of a <a>RequestValidator</a> for request validation.
mRequestValidatorId :: 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 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)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
mOperationName :: Lens' Method (Maybe Text)

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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 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. 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 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. 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> - The method's authorization type.
--   Valid values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for
--   using AWS IAM permissions, <tt>CUSTOM</tt> for using a custom
--   authorizer, or <tt>COGNITO_USER_POOLS</tt> for using a Cognito user
--   pool.</li>
--   <li><a>msApiKeyRequired</a> - Specifies whether the method requires a
--   valid <tt>ApiKey</tt> .</li>
--   </ul>
methodSnapshot :: MethodSnapshot

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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
--   4</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. Must be an alphanumeric
--   string.</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 4</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. Must be an alphanumeric string.
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 <tt>add</tt> , <tt>remove</tt> ,
--   <tt>replace</tt> or <tt>copy</tt> . 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. It
--   is applicable for the <tt>add</tt> or <tt>replace</tt> operation. When
--   using AWS CLI to update a property of a JSON value, enclose the JSON
--   object with a pair of single quotes in a Linux shell, e.g., '{"a":
--   ...}'. In a Windows shell, see <a>Using JSON for Parameters</a> .</li>
--   <li><a>poFrom</a> - The <tt>copy</tt> update operation's source as
--   identified by a <tt>JSON-Pointer</tt> value referencing the location
--   within the targeted resource to copy the value from. For example, to
--   promote a canary deployment, you copy the canary deployment ID to the
--   affiliated deployment ID by calling a PATCH request on a <a>Stage</a>
--   resource with <tt>"op":"copy"</tt> ,
--   <tt>"from":"<i>canarySettings</i>deploymentId"</tt> and
--   <tt>"path":"/deploymentId"</tt> .</li>
--   </ul>
patchOperation :: PatchOperation

-- | An update operation to be performed with this PATCH request. The valid
--   value can be <tt>add</tt> , <tt>remove</tt> , <tt>replace</tt> or
--   <tt>copy</tt> . 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. It is applicable for the
--   <tt>add</tt> or <tt>replace</tt> operation. When using AWS CLI to
--   update a property of a JSON value, enclose the JSON object with a pair
--   of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows
--   shell, see <a>Using JSON for Parameters</a> .
poValue :: Lens' PatchOperation (Maybe Text)

-- | The <tt>copy</tt> update operation's source as identified by a
--   <tt>JSON-Pointer</tt> value referencing the location within the
--   targeted resource to copy the value from. For example, to promote a
--   canary deployment, you copy the canary deployment ID to the affiliated
--   deployment ID by calling a PATCH request on a <a>Stage</a> resource
--   with <tt>"op":"copy"</tt> ,
--   <tt>"from":"<i>canarySettings</i>deploymentId"</tt> and
--   <tt>"path":"/deploymentId"</tt> .
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)

-- | A set of validation rules for incoming <a>Method</a> requests.
--   
--   In Swagger, a <a>RequestValidator</a> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators.requestValidator</a> object.
--   It the referenced using the
--   <a>x-amazon-apigateway-request-validator</a> property.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>requestValidator</a> smart constructor.
data RequestValidator

-- | Creates a value of <a>RequestValidator</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>rvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters (<tt>true</tt> ) or not
--   (<tt>false</tt> ).</li>
--   <li><a>rvName</a> - The name of this <a>RequestValidator</a></li>
--   <li><a>rvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate a request body according to the configured <a>Model</a>
--   schema.</li>
--   <li><a>rvId</a> - The identifier of this <a>RequestValidator</a>
--   .</li>
--   </ul>
requestValidator :: RequestValidator

-- | A Boolean flag to indicate whether to validate request parameters
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
rvValidateRequestParameters :: Lens' RequestValidator (Maybe Bool)

-- | The name of this <a>RequestValidator</a>
rvName :: Lens' RequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate a request body
--   according to the configured <a>Model</a> schema.
rvValidateRequestBody :: Lens' RequestValidator (Maybe Bool)

-- | The identifier of this <a>RequestValidator</a> .
rvId :: Lens' RequestValidator (Maybe Text)

-- | 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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

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

-- | A configuration property of an SDK type.
--   
--   <i>See:</i> <a>sdkConfigurationProperty</a> smart constructor.
data SDKConfigurationProperty

-- | Creates a value of <a>SDKConfigurationProperty</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>scpFriendlyName</a> - The user-friendly name of an
--   <tt>SdkType</tt> configuration property.</li>
--   <li><a>scpRequired</a> - A boolean flag of an <tt>SdkType</tt>
--   configuration property to indicate if the associated SDK configuration
--   property is required (<tt>true</tt> ) or not (<tt>false</tt> ).</li>
--   <li><a>scpName</a> - The name of a an <tt>SdkType</tt> configuration
--   property.</li>
--   <li><a>scpDefaultValue</a> - The default value of an <tt>SdkType</tt>
--   configuration property.</li>
--   <li><a>scpDescription</a> - The description of an <tt>SdkType</tt>
--   configuration property.</li>
--   </ul>
sdkConfigurationProperty :: SDKConfigurationProperty

-- | The user-friendly name of an <tt>SdkType</tt> configuration property.
scpFriendlyName :: Lens' SDKConfigurationProperty (Maybe Text)

-- | A boolean flag of an <tt>SdkType</tt> configuration property to
--   indicate if the associated SDK configuration property is required
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
scpRequired :: Lens' SDKConfigurationProperty (Maybe Bool)

-- | The name of a an <tt>SdkType</tt> configuration property.
scpName :: Lens' SDKConfigurationProperty (Maybe Text)

-- | The default value of an <tt>SdkType</tt> configuration property.
scpDefaultValue :: Lens' SDKConfigurationProperty (Maybe Text)

-- | The description of an <tt>SdkType</tt> configuration property.
scpDescription :: Lens' SDKConfigurationProperty (Maybe Text)

-- | A type of SDK that API Gateway can generate.
--   
--   <i>See:</i> <a>sdkType</a> smart constructor.
data SDKType

-- | Creates a value of <a>SDKType</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>stFriendlyName</a> - The user-friendly name of an
--   <tt>SdkType</tt> instance.</li>
--   <li><a>stConfigurationProperties</a> - A list of configuration
--   properties of an <tt>SdkType</tt> .</li>
--   <li><a>stId</a> - The identifier of an <tt>SdkType</tt> instance.</li>
--   <li><a>stDescription</a> - The description of an <tt>SdkType</tt>
--   .</li>
--   </ul>
sdkType :: SDKType

-- | The user-friendly name of an <tt>SdkType</tt> instance.
stFriendlyName :: Lens' SDKType (Maybe Text)

-- | A list of configuration properties of an <tt>SdkType</tt> .
stConfigurationProperties :: Lens' SDKType [SDKConfigurationProperty]

-- | The identifier of an <tt>SdkType</tt> instance.
stId :: Lens' SDKType (Maybe Text)

-- | The description of an <tt>SdkType</tt> .
stDescription :: Lens' SDKType (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>sAccessLogSettings</a> - Settings for logging access in this
--   stage.</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 timestamp when the stage was
--   created.</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 timestamp when the stage last
--   updated.</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCanarySettings</a> - Settings for the canary deployment in
--   this stage.</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 API
--   Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   <li><a>sTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</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)

-- | Settings for logging access in this stage.
sAccessLogSettings :: Lens' Stage (Maybe AccessLogSettings)

-- | 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 timestamp when the stage was created.
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 timestamp when the stage last updated.
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

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

-- | Settings for the canary deployment in this stage.
sCanarySettings :: Lens' Stage (Maybe CanarySettings)

-- | 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 API Gateway.
sStageName :: Lens' Stage (Maybe Text)

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

-- | The collection of tags. Each tag element is associated with a given
--   resource.
sTags :: Lens' Stage (HashMap Text 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> - The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   <li><a>skStageName</a> - The stage name associated with the stage
--   key.</li>
--   </ul>
stageKey :: StageKey

-- | The string identifier of the associated <tt>RestApi</tt> .
skRestAPIId :: Lens' StageKey (Maybe Text)

-- | The stage name associated with the stage key.
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)

-- | A API Gateway VPC link for a <tt>RestApi</tt> to access resources in
--   an Amazon Virtual Private Cloud (VPC).
--   
--   To enable access to a resource in an Amazon Virtual Private Cloud
--   through Amazon API Gateway, you, as an API developer, create a
--   <tt>VpcLink</tt> resource targeted for one or more network load
--   balancers of the VPC and then integrate an API method with a private
--   integration that uses the <tt>VpcLink</tt> . The private integration
--   has an integration type of <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> and
--   has a connection type of <tt>VPC_LINK</tt> . The integration uses the
--   <tt>connectionId</tt> property to identify the <tt>VpcLink</tt> used.
--   
--   <i>See:</i> <a>vpcLink</a> smart constructor.
data VPCLink

-- | Creates a value of <a>VPCLink</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>vlStatus</a> - The status of the VPC link. The valid values are
--   <tt>AVAILABLE</tt> , <tt>PENDING</tt> , <tt>DELETING</tt> , or
--   <tt>FAILED</tt> . Deploying an API will wait if the status is
--   <tt>PENDING</tt> and will fail if the status is <tt>DELETING</tt>
--   .</li>
--   <li><a>vlTargetARNs</a> - The ARNs of network load balancers of the
--   VPC targeted by the VPC link. The network load balancers must be owned
--   by the same AWS account of the API owner.</li>
--   <li><a>vlName</a> - The name used to label and identify the VPC
--   link.</li>
--   <li><a>vlStatusMessage</a> - A description about the VPC link
--   status.</li>
--   <li><a>vlId</a> - The identifier of the <tt>VpcLink</tt> . It is used
--   in an <a>Integration</a> to reference this <tt>VpcLink</tt> .</li>
--   <li><a>vlDescription</a> - The description of the VPC link.</li>
--   </ul>
vpcLink :: VPCLink

-- | The status of the VPC link. The valid values are <tt>AVAILABLE</tt> ,
--   <tt>PENDING</tt> , <tt>DELETING</tt> , or <tt>FAILED</tt> . Deploying
--   an API will wait if the status is <tt>PENDING</tt> and will fail if
--   the status is <tt>DELETING</tt> .
vlStatus :: Lens' VPCLink (Maybe VPCLinkStatus)

-- | The ARNs of network load balancers of the VPC targeted by the VPC
--   link. The network load balancers must be owned by the same AWS account
--   of the API owner.
vlTargetARNs :: Lens' VPCLink [Text]

-- | The name used to label and identify the VPC link.
vlName :: Lens' VPCLink (Maybe Text)

-- | A description about the VPC link status.
vlStatusMessage :: Lens' VPCLink (Maybe Text)

-- | The identifier of the <tt>VpcLink</tt> . It is used in an
--   <a>Integration</a> to reference this <tt>VpcLink</tt> .
vlId :: Lens' VPCLink (Maybe Text)

-- | The description of the VPC link.
vlDescription :: Lens' VPCLink (Maybe Text)


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>timResourceId</a> - [Required] Specifies a test invoke method
--   request's resource ID.</li>
--   <li><a>timHttpMethod</a> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
timRestAPIId :: Lens' TestInvokeMethod Text

-- | <ul>
--   <li><i>Required</i> Specifies a test invoke method request's resource
--   ID.</li>
--   </ul>
timResourceId :: Lens' TestInvokeMethod Text

-- | <ul>
--   <li><i>Required</i> Specifies a test invoke method request's HTTP
--   method.</li>
--   </ul>
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 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 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 Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeMethod.TestInvokeMethodResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>tiaAuthorizerId</a> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
tiaRestAPIId :: Lens' TestInvokeAuthorizer Text

-- | <ul>
--   <li><i>Required</i> Specifies a test invoke authorizer request's
--   <a>Authorizer</a> ID.</li>
--   </ul>
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 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 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 Control.DeepSeq.NFData Network.AWS.APIGateway.TestInvokeAuthorizer.TestInvokeAuthorizerResponse
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


-- | Adds or updates a tag on a given resource.
module Network.AWS.APIGateway.TagResource

-- | Creates a value of <a>TagResource</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>trResourceARN</a> - [Required] The ARN of a resource that can
--   be tagged. The resource ARN must be URL-encoded. At present,
--   <a>Stage</a> is the only taggable resource.</li>
--   <li><a>trTags</a> - [Required] The key-value map of strings. The valid
--   character set is [a-zA-Z+-=._:/]. The tag key can be up to 128
--   characters and must not start with <tt>aws:</tt> . The tag value can
--   be up to 256 characters.</li>
--   </ul>
tagResource :: Text -> TagResource

-- | Adds or updates a tag on a given resource.
--   
--   <i>See:</i> <a>tagResource</a> smart constructor.
data TagResource

-- | <ul>
--   <li><i>Required</i> The ARN of a resource that can be tagged. The
--   resource ARN must be URL-encoded. At present, <a>Stage</a> is the only
--   taggable resource.</li>
--   </ul>
trResourceARN :: Lens' TagResource Text

-- | <ul>
--   <li><i>Required</i> The key-value map of strings. The valid character
--   set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and
--   must not start with <tt>aws:</tt> . The tag value can be up to 256
--   characters.</li>
--   </ul>
trTags :: Lens' TagResource (HashMap Text Text)

-- | Creates a value of <a>TagResourceResponse</a> with the minimum fields
--   required to make a request.
tagResourceResponse :: TagResourceResponse

-- | <i>See:</i> <a>tagResourceResponse</a> smart constructor.
data TagResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.TagResource.TagResourceResponse
instance Data.Data.Data Network.AWS.APIGateway.TagResource.TagResourceResponse
instance GHC.Show.Show Network.AWS.APIGateway.TagResource.TagResourceResponse
instance GHC.Read.Read Network.AWS.APIGateway.TagResource.TagResourceResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.TagResource.TagResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.TagResource.TagResource
instance Data.Data.Data Network.AWS.APIGateway.TagResource.TagResource
instance GHC.Show.Show Network.AWS.APIGateway.TagResource.TagResource
instance GHC.Read.Read Network.AWS.APIGateway.TagResource.TagResource
instance GHC.Classes.Eq Network.AWS.APIGateway.TagResource.TagResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.TagResource.TagResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TagResource.TagResourceResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.TagResource.TagResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.TagResource.TagResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.TagResource.TagResource
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.TagResource.TagResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.TagResource.TagResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.TagResource.TagResource


-- | A feature of the API Gateway control service for updating an existing
--   API with an input of external API definitions. The update can take the
--   form of merging the supplied definition into the existing API or
--   overwriting the existing API.
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 header parameters as part of the
--   request. For example, to exclude <tt>DocumentationParts</tt> from an
--   imported API, set <tt>ignore=documentation</tt> as a
--   <tt>parameters</tt> value, as in the AWS CLI command of <tt>aws
--   apigateway import-rest-api --parameters ignore=documentation --body
--   'file://<i>path</i>to/imported-api-body.json</tt> .</li>
--   <li><a>praRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>praBody</a> - [Required] The PUT request body containing
--   external API definitions. Currently, only Swagger definition JSON
--   files are supported. The maximum size of the API definition file is
--   2MB.</li>
--   </ul>
putRestAPI :: Text -> ByteString -> 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 header parameters as part of the request. For example, to
--   exclude <tt>DocumentationParts</tt> from an imported API, set
--   <tt>ignore=documentation</tt> as a <tt>parameters</tt> value, as in
--   the AWS CLI command of <tt>aws apigateway import-rest-api --parameters
--   ignore=documentation --body
--   'file://<i>path</i>to/imported-api-body.json</tt> .
praParameters :: Lens' PutRestAPI (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
praRestAPIId :: Lens' PutRestAPI Text

-- | <ul>
--   <li><i>Required</i> The PUT request body containing external API
--   definitions. Currently, only Swagger definition JSON files are
--   supported. The maximum size of the API definition file is 2MB.</li>
--   </ul>
praBody :: Lens' PutRestAPI ByteString

-- | 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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

-- | 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 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>pmResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>Method</a> resource.</li>
--   <li><a>pmHttpMethod</a> - [Required] The HTTP verb of the
--   <a>Method</a> resource.</li>
--   <li><a>pmStatusCode</a> - [Required] 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 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
pmRestAPIId :: Lens' PutMethodResponse Text

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

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

-- | <ul>
--   <li><i>Required</i> The method response's status code.</li>
--   </ul>
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 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. 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 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. 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>putAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>putRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for validating the method request.</li>
--   <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 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 or
--   COGNITO_USER_POOLS. The authorizer identifier is generated by API
--   Gateway when you created the authorizer.</li>
--   <li><a>putOperationName</a> - A human-friendly operation identifier
--   for the method. For example, you can assign the <tt>operationName</tt>
--   of <tt>ListPets</tt> for the <tt>GET /pets</tt> method in
--   <a>PetStore</a> example.</li>
--   <li><a>putApiKeyRequired</a> - Specifies whether the method required a
--   valid <tt>ApiKey</tt> .</li>
--   <li><a>putRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>putResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the new <a>Method</a> resource.</li>
--   <li><a>putHttpMethod</a> - [Required] Specifies the method request's
--   HTTP method type.</li>
--   <li><a>putAuthorizationType</a> - [Required] The method's
--   authorization type. Valid values are <tt>NONE</tt> for open access,
--   <tt>AWS_IAM</tt> for using AWS IAM permissions, <tt>CUSTOM</tt> for
--   using a custom authorizer, or <tt>COGNITO_USER_POOLS</tt> for using a
--   Cognito user pool.</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

-- | A list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
putAuthorizationScopes :: Lens' PutMethod [Text]

-- | The identifier of a <a>RequestValidator</a> for validating the method
--   request.
putRequestValidatorId :: Lens' PutMethod (Maybe Text)

-- | 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 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 or COGNITO_USER_POOLS. The authorizer
--   identifier is generated by API Gateway when you created the
--   authorizer.
putAuthorizerId :: Lens' PutMethod (Maybe Text)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
putOperationName :: Lens' PutMethod (Maybe Text)

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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
putRestAPIId :: Lens' PutMethod Text

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

-- | <ul>
--   <li><i>Required</i> Specifies the method request's HTTP method
--   type.</li>
--   </ul>
putHttpMethod :: Lens' PutMethod Text

-- | <ul>
--   <li><i>Required</i> The method's authorization type. Valid values are
--   <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using AWS IAM
--   permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</li>
--   </ul>
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>mAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>mRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for request validation.</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 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>mOperationName</a> - A human-friendly operation identifier for
--   the method. For example, you can assign the <tt>operationName</tt> of
--   <tt>ListPets</tt> for the <tt>GET /pets</tt> method in <a>PetStore</a>
--   example.</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type. Valid
--   values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using
--   AWS IAM permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</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 list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
mAuthorizationScopes :: Lens' Method [Text]

-- | The identifier of a <a>RequestValidator</a> for request validation.
mRequestValidatorId :: 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 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)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
mOperationName :: Lens' Method (Maybe Text)

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>piResourceId</a> - [Required] Specifies a put integration
--   response request's resource identifier.</li>
--   <li><a>piHttpMethod</a> - [Required] Specifies a put integration
--   response request's HTTP method.</li>
--   <li><a>piStatusCode</a> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
piRestAPIId :: Lens' PutIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a put integration response request's
--   resource identifier.</li>
--   </ul>
piResourceId :: Lens' PutIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a put integration response request's
--   HTTP method.</li>
--   </ul>
piHttpMethod :: Lens' PutIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies the status code that is used to map the
--   integration response to an existing <a>MethodResponse</a> .</li>
--   </ul>
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


-- | Sets up a method's 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>pConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</tt></li>
--   <li><a>pCacheNamespace</a> - Specifies a put integration input's cache
--   namespace.</li>
--   <li><a>pTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>pConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>pResourceId</a> - [Required] Specifies a put integration
--   request's resource ID.</li>
--   <li><a>pHttpMethod</a> - [Required] Specifies a put integration
--   request's HTTP method.</li>
--   <li><a>pType</a> - [Required] Specifies a put integration input's
--   type.</li>
--   </ul>
putIntegration :: Text -> Text -> Text -> IntegrationType -> PutIntegration

-- | Sets up a method's integration.
--   
--   <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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
pConnectionId :: 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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</tt>
pUri :: Lens' PutIntegration (Maybe Text)

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

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
pTimeoutInMillis :: Lens' PutIntegration (Maybe Int)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
pConnectionType :: Lens' PutIntegration (Maybe ConnectionType)

-- | 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
pRestAPIId :: Lens' PutIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a put integration request's resource
--   ID.</li>
--   </ul>
pResourceId :: Lens' PutIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a put integration request's HTTP
--   method.</li>
--   </ul>
pHttpMethod :: Lens' PutIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a put integration input's type.</li>
--   </ul>
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 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>iConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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> . The valid value is one of the
--   following: * <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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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>iTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>iType</a> - Specifies an API method integration type. The valid
--   value is one of the following: * <tt>AWS</tt> : for integrating the
--   API method request with an AWS service action, including the Lambda
--   function-invoking action. With the Lambda function-invoking action,
--   this is referred to as the Lambda custom integration. With any other
--   AWS service action, this is known as AWS integration. *
--   <tt>AWS_PROXY</tt> : for integrating the API method request with the
--   Lambda function-invoking action with the client request passed through
--   as-is. This integration is also referred to as the Lambda proxy
--   integration. * <tt>HTTP</tt> : for integrating the API method request
--   with an HTTP endpoint, including a private HTTP endpoint within a VPC.
--   This integration is also referred to as the HTTP custom integration. *
--   <tt>HTTP_PROXY</tt> : for integrating the API method request with an
--   HTTP endpoint, including a private HTTP endpoint within a VPC, with
--   the client request passed through as-is. This is also referred to as
--   the HTTP proxy integration. * <tt>MOCK</tt> : for integrating the API
--   method request with API Gateway as a "loop-back" endpoint without
--   invoking any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.</li>
--   <li><a>iConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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>
--   
--   <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 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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
iConnectionId :: 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> .
--   The valid value is one of the following: * <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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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)

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
iTimeoutInMillis :: Lens' Integration (Maybe Int)

-- | Specifies an API method integration type. The valid value is one of
--   the following: * <tt>AWS</tt> : for integrating the API method request
--   with an AWS service action, including the Lambda function-invoking
--   action. With the Lambda function-invoking action, this is referred to
--   as the Lambda custom integration. With any other AWS service action,
--   this is known as AWS integration. * <tt>AWS_PROXY</tt> : for
--   integrating the API method request with the Lambda function-invoking
--   action with the client request passed through as-is. This integration
--   is also referred to as the Lambda proxy integration. * <tt>HTTP</tt> :
--   for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC. This integration is
--   also referred to as the HTTP custom integration. * <tt>HTTP_PROXY</tt>
--   : for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC, with the client
--   request passed through as-is. This is also referred to as the HTTP
--   proxy integration. * <tt>MOCK</tt> : for integrating the API method
--   request with API Gateway as a "loop-back" endpoint without invoking
--   any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.
iType :: Lens' Integration (Maybe IntegrationType)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
iConnectionType :: Lens' Integration (Maybe ConnectionType)

-- | 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


-- | Creates a customization of a <a>GatewayResponse</a> of a specified
--   response type and status code on the given <tt>RestApi</tt> .
module Network.AWS.APIGateway.PutGatewayResponse

-- | Creates a value of <a>PutGatewayResponse</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>pgResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>pgStatusCode</a> - <a>GatewayResponse</a></li>
--   <li><a>pgResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   <li><a>pgRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>pgResponseType</a> - [Required] The response type of the
--   associated <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
putGatewayResponse :: Text -> GatewayResponseType -> PutGatewayResponse

-- | Creates a customization of a <a>GatewayResponse</a> of a specified
--   response type and status code on the given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>putGatewayResponse</a> smart constructor.
data PutGatewayResponse

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
pgResponseTemplates :: Lens' PutGatewayResponse (HashMap Text Text)

-- | <a>GatewayResponse</a>
pgStatusCode :: Lens' PutGatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
pgResponseParameters :: Lens' PutGatewayResponse (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
pgRestAPIId :: Lens' PutGatewayResponse Text

-- | <ul>
--   <li><i>Required</i> The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
pgResponseType :: Lens' PutGatewayResponse GatewayResponseType

-- | Creates a value of <a>GatewayResponse</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>gDefaultResponse</a> - A Boolean flag to indicate whether this
--   <a>GatewayResponse</a> is the default gateway response (<tt>true</tt>
--   ) or not (<tt>false</tt> ). A default gateway response is one
--   generated by API Gateway without any customization by an API
--   developer.</li>
--   <li><a>gResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>gResponseType</a> - The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   <li><a>gStatusCode</a> - The HTTP status code for this
--   <a>GatewayResponse</a> .</li>
--   <li><a>gResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   </ul>
gatewayResponse :: GatewayResponse

-- | A gateway response of a given response type and status code, with
--   optional response parameters and mapping templates.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   a Gateway Response of a given response type</b> <b>Request</b> This
--   example shows how to get a gateway response of the
--   <tt>MISSING_AUTHENTICATION_TOKEN</tt> type.
--   
--   @<tt>GET
--   <i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN
--   HTTP<i>1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application</i>json X-Amz-Date: 20170503T202516Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}<i>20170503</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
--   Cache-Control: no-cache Postman-Token:
--   3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 </tt> @ The response type is
--   specified as a URL path.
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:delete": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": false, "responseParameters": {
--   "gatewayresponse.header.x-request-path": "method.request.path.petId",
--   "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
--   "gatewayresponse.header.x-request-query":
--   "method.request.querystring.q",
--   "gatewayresponse.header.x-request-header":
--   "method.request.header.Accept" }, "responseTemplates": {
--   "application/json": "{n "message": $context.error.messageString,n
--   "type": "$context.error.responseType",n "stage": "$context.stage",n
--   "resourcePath": "$context.resourcePath",n "stageVariables.a":
--   "$stageVariables.a",n "statusCode": "'404'"n}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "404" }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>gatewayResponse</a> smart constructor.
data GatewayResponse

-- | A Boolean flag to indicate whether this <a>GatewayResponse</a> is the
--   default gateway response (<tt>true</tt> ) or not (<tt>false</tt> ). A
--   default gateway response is one generated by API Gateway without any
--   customization by an API developer.
gDefaultResponse :: Lens' GatewayResponse (Maybe Bool)

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
gResponseTemplates :: Lens' GatewayResponse (HashMap Text Text)

-- | The response type of the associated <a>GatewayResponse</a> . Valid
--   values are * ACCESS_DENIED * API_CONFIGURATION_ERROR *
--   AUTHORIZER_FAILURE * AUTHORIZER_CONFIGURATION_ERROR *
--   BAD_REQUEST_PARAMETERS * BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX
--   * EXPIRED_TOKEN * INVALID_SIGNATURE * INTEGRATION_FAILURE *
--   INTEGRATION_TIMEOUT * INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN *
--   QUOTA_EXCEEDED * REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED *
--   UNAUTHORIZED * UNSUPPORTED_MEDIA_TYPE
gResponseType :: Lens' GatewayResponse (Maybe GatewayResponseType)

-- | The HTTP status code for this <a>GatewayResponse</a> .
gStatusCode :: Lens' GatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
gResponseParameters :: Lens' GatewayResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Data.Data.Data Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance GHC.Show.Show Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance GHC.Read.Read Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.PutGatewayResponse.PutGatewayResponse


-- | A feature of the 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> - A key-value map of context-specific query
--   string parameters specifying the behavior of different API importing
--   operations. The following shows operation-specific parameters and
--   their supported values. To exclude <tt>DocumentationParts</tt> from
--   the import, set <tt>parameters</tt> as <tt>ignore=documentation</tt> .
--   To configure the endpoint type, set <tt>parameters</tt> as
--   <tt>endpointConfigurationTypes=EDGE</tt>
--   or<tt>endpointConfigurationTypes=REGIONAL</tt> . The default endpoint
--   type is <tt>EDGE</tt> . To handle imported <tt>basePath</tt> , set
--   <tt>parameters</tt> as <tt>basePath=ignore</tt> ,
--   <tt>basePath=prepend</tt> or <tt>basePath=split</tt> . For example,
--   the AWS CLI command to exclude documentation from the imported API is:
--   @<tt>aws apigateway import-rest-api --parameters ignore=documentation
--   --body 'file://<i>path</i>to/imported-api-body.json</tt> <tt> The AWS
--   CLI command to set the regional endpoint on the imported API is:
--   </tt><tt>aws apigateway import-rest-api --parameters
--   endpointConfigurationTypes=REGIONAL --body
--   'file://<i>path</i>to/imported-api-body.json</tt> @</li>
--   <li><a>iraBody</a> - [Required] The POST request body containing
--   external API definitions. Currently, only Swagger definition JSON
--   files are supported. The maximum size of the API definition file is
--   2MB.</li>
--   </ul>
importRestAPI :: ByteString -> ImportRestAPI

-- | A POST request to import an API to 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)

-- | A key-value map of context-specific query string parameters specifying
--   the behavior of different API importing operations. The following
--   shows operation-specific parameters and their supported values. To
--   exclude <tt>DocumentationParts</tt> from the import, set
--   <tt>parameters</tt> as <tt>ignore=documentation</tt> . To configure
--   the endpoint type, set <tt>parameters</tt> as
--   <tt>endpointConfigurationTypes=EDGE</tt>
--   or<tt>endpointConfigurationTypes=REGIONAL</tt> . The default endpoint
--   type is <tt>EDGE</tt> . To handle imported <tt>basePath</tt> , set
--   <tt>parameters</tt> as <tt>basePath=ignore</tt> ,
--   <tt>basePath=prepend</tt> or <tt>basePath=split</tt> . For example,
--   the AWS CLI command to exclude documentation from the imported API is:
--   @<tt>aws apigateway import-rest-api --parameters ignore=documentation
--   --body 'file://<i>path</i>to/imported-api-body.json</tt> <tt> The AWS
--   CLI command to set the regional endpoint on the imported API is:
--   </tt><tt>aws apigateway import-rest-api --parameters
--   endpointConfigurationTypes=REGIONAL --body
--   'file://<i>path</i>to/imported-api-body.json</tt> @
iraParameters :: Lens' ImportRestAPI (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> The POST request body containing external API
--   definitions. Currently, only Swagger definition JSON files are
--   supported. The maximum size of the API definition file is 2MB.</li>
--   </ul>
iraBody :: Lens' ImportRestAPI ByteString

-- | 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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

-- | 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 string identifier of the
--   associated <tt>RestApi</tt> .</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 -> ByteString -> 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 string identifier of the associated
--   <tt>RestApi</tt> .</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 ByteString

-- | 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 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 Control.DeepSeq.NFData Network.AWS.APIGateway.ImportDocumentationParts.ImportDocumentationPartsResponse
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


-- | 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 :: ByteString -> 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 ByteString

-- | 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 Control.DeepSeq.NFData Network.AWS.APIGateway.ImportAPIKeys.ImportAPIKeysResponse
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


-- | Gets the <tt>VpcLinks</tt> collection under the caller's account in a
--   selected region.
--   
--   This operation returns paginated results.
module Network.AWS.APIGateway.GetVPCLinks

-- | Creates a value of <a>GetVPCLinks</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>gvlLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gvlPosition</a> - The current pagination position in the paged
--   result set.</li>
--   </ul>
getVPCLinks :: GetVPCLinks

-- | Gets the <tt>VpcLinks</tt> collection under the caller's account in a
--   selected region.
--   
--   <i>See:</i> <a>getVPCLinks</a> smart constructor.
data GetVPCLinks

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gvlLimit :: Lens' GetVPCLinks (Maybe Int)

-- | The current pagination position in the paged result set.
gvlPosition :: Lens' GetVPCLinks (Maybe Text)

-- | Creates a value of <a>GetVPCLinksResponse</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>gvlrsItems</a> - The current page of elements from this
--   collection.</li>
--   <li><a>gvlrsPosition</a> - Undocumented member.</li>
--   <li><a>gvlrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getVPCLinksResponse :: Int -> GetVPCLinksResponse

-- | The collection of VPC links under the caller's account in a region.
--   
--   <a>Getting Started with Private Integrations</a> , <a>Set up Private
--   Integrations</a>
--   
--   <i>See:</i> <a>getVPCLinksResponse</a> smart constructor.
data GetVPCLinksResponse

-- | The current page of elements from this collection.
gvlrsItems :: Lens' GetVPCLinksResponse [VPCLink]

-- | Undocumented member.
gvlrsPosition :: Lens' GetVPCLinksResponse (Maybe Text)

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


-- | Gets a specified VPC link under the caller's account in a region.
module Network.AWS.APIGateway.GetVPCLink

-- | Creates a value of <a>GetVPCLink</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>gvlVpcLinkId</a> - [Required] The identifier of the
--   <tt>VpcLink</tt> . It is used in an <a>Integration</a> to reference
--   this <tt>VpcLink</tt> .</li>
--   </ul>
getVPCLink :: Text -> GetVPCLink

-- | Gets a specified VPC link under the caller's account in a region.
--   
--   <i>See:</i> <a>getVPCLink</a> smart constructor.
data GetVPCLink

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>VpcLink</tt> . It is
--   used in an <a>Integration</a> to reference this <tt>VpcLink</tt>
--   .</li>
--   </ul>
gvlVpcLinkId :: Lens' GetVPCLink Text

-- | Creates a value of <a>VPCLink</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>vlStatus</a> - The status of the VPC link. The valid values are
--   <tt>AVAILABLE</tt> , <tt>PENDING</tt> , <tt>DELETING</tt> , or
--   <tt>FAILED</tt> . Deploying an API will wait if the status is
--   <tt>PENDING</tt> and will fail if the status is <tt>DELETING</tt>
--   .</li>
--   <li><a>vlTargetARNs</a> - The ARNs of network load balancers of the
--   VPC targeted by the VPC link. The network load balancers must be owned
--   by the same AWS account of the API owner.</li>
--   <li><a>vlName</a> - The name used to label and identify the VPC
--   link.</li>
--   <li><a>vlStatusMessage</a> - A description about the VPC link
--   status.</li>
--   <li><a>vlId</a> - The identifier of the <tt>VpcLink</tt> . It is used
--   in an <a>Integration</a> to reference this <tt>VpcLink</tt> .</li>
--   <li><a>vlDescription</a> - The description of the VPC link.</li>
--   </ul>
vpcLink :: VPCLink

-- | A API Gateway VPC link for a <tt>RestApi</tt> to access resources in
--   an Amazon Virtual Private Cloud (VPC).
--   
--   To enable access to a resource in an Amazon Virtual Private Cloud
--   through Amazon API Gateway, you, as an API developer, create a
--   <tt>VpcLink</tt> resource targeted for one or more network load
--   balancers of the VPC and then integrate an API method with a private
--   integration that uses the <tt>VpcLink</tt> . The private integration
--   has an integration type of <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> and
--   has a connection type of <tt>VPC_LINK</tt> . The integration uses the
--   <tt>connectionId</tt> property to identify the <tt>VpcLink</tt> used.
--   
--   <i>See:</i> <a>vpcLink</a> smart constructor.
data VPCLink

-- | The status of the VPC link. The valid values are <tt>AVAILABLE</tt> ,
--   <tt>PENDING</tt> , <tt>DELETING</tt> , or <tt>FAILED</tt> . Deploying
--   an API will wait if the status is <tt>PENDING</tt> and will fail if
--   the status is <tt>DELETING</tt> .
vlStatus :: Lens' VPCLink (Maybe VPCLinkStatus)

-- | The ARNs of network load balancers of the VPC targeted by the VPC
--   link. The network load balancers must be owned by the same AWS account
--   of the API owner.
vlTargetARNs :: Lens' VPCLink [Text]

-- | The name used to label and identify the VPC link.
vlName :: Lens' VPCLink (Maybe Text)

-- | A description about the VPC link status.
vlStatusMessage :: Lens' VPCLink (Maybe Text)

-- | The identifier of the <tt>VpcLink</tt> . It is used in an
--   <a>Integration</a> to reference this <tt>VpcLink</tt> .
vlId :: Lens' VPCLink (Maybe Text)

-- | The description of the VPC link.
vlDescription :: Lens' VPCLink (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Data.Data.Data Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance GHC.Show.Show Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance GHC.Read.Read Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance GHC.Classes.Eq Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetVPCLink.GetVPCLink
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetVPCLink.GetVPCLink


-- | Gets all the usage plans of the caller's account.
--   
--   This operation returns paginated results.
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 maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gupPosition</a> - The current pagination position in the paged
--   result set.</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 maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gupLimit :: Lens' GetUsagePlans (Maybe Int)

-- | The current pagination position in the paged result set.
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> - The current page of elements from this
--   collection.</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

-- | The current page of elements from this collection.
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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlans.GetUsagePlansResponse
instance Network.AWS.Pager.AWSPager 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


-- | Gets all the usage plan keys representing the API keys added to a
--   specified usage plan.
--   
--   This operation returns paginated results.
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> - The maximum number of returned results per
--   page. The default value is 25 and the maximum value is 500.</li>
--   <li><a>gupkPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gupkUsagePlanId</a> - [Required] 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)

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gupkLimit :: Lens' GetUsagePlanKeys (Maybe Int)

-- | The current pagination position in the paged result set.
gupkPosition :: Lens' GetUsagePlanKeys (Maybe Text)

-- | <ul>
--   <li><i>Required</i> 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>
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> - The current page of elements from this
--   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

-- | The current page of elements from this 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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetUsagePlanKeys.GetUsagePlanKeysResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> 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>
gUsagePlanId :: Lens' GetUsagePlanKey Text

-- | <ul>
--   <li><i>Required</i> The key Id of the to-be-retrieved
--   <a>UsagePlanKey</a> resource representing a plan customer.</li>
--   </ul>
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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>UsagePlan</a> resource to
--   be retrieved.</li>
--   </ul>
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.
--   
--   This operation returns paginated results.
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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>guPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>guUsagePlanId</a> - [Required] The Id of the usage plan
--   associated with the usage data.</li>
--   <li><a>guStartDate</a> - [Required] The starting date (e.g.,
--   2016-01-01) of the usage data.</li>
--   <li><a>guEndDate</a> - [Required] 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 returned results per page. The default value is
--   25 and the maximum value is 500.
guLimit :: Lens' GetUsage (Maybe Int)

-- | The current pagination position in the paged result set.
guPosition :: Lens' GetUsage (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The Id of the usage plan associated with the usage
--   data.</li>
--   </ul>
guUsagePlanId :: Lens' GetUsage Text

-- | <ul>
--   <li><i>Required</i> The starting date (e.g., 2016-01-01) of the usage
--   data.</li>
--   </ul>
guStartDate :: Lens' GetUsage Text

-- | <ul>
--   <li><i>Required</i> The ending date (e.g., 2016-12-31) of the usage
--   data.</li>
--   </ul>
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.Pager.AWSPager 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 the <tt>Tags</tt> collection for a given resource.
module Network.AWS.APIGateway.GetTags

-- | Creates a value of <a>GetTags</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>gtLimit</a> - (Not currently supported) The maximum number of
--   returned results per page. The default value is 25 and the maximum
--   value is 500.</li>
--   <li><a>gtPosition</a> - (Not currently supported) The current
--   pagination position in the paged result set.</li>
--   <li><a>gtResourceARN</a> - [Required] The ARN of a resource that can
--   be tagged. The resource ARN must be URL-encoded. At present,
--   <a>Stage</a> is the only taggable resource.</li>
--   </ul>
getTags :: Text -> GetTags

-- | Gets the <tt>Tags</tt> collection for a given resource.
--   
--   <i>See:</i> <a>getTags</a> smart constructor.
data GetTags

-- | (Not currently supported) The maximum number of returned results per
--   page. The default value is 25 and the maximum value is 500.
gtLimit :: Lens' GetTags (Maybe Int)

-- | (Not currently supported) The current pagination position in the paged
--   result set.
gtPosition :: Lens' GetTags (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The ARN of a resource that can be tagged. The
--   resource ARN must be URL-encoded. At present, <a>Stage</a> is the only
--   taggable resource.</li>
--   </ul>
gtResourceARN :: Lens' GetTags Text

-- | Creates a value of <a>GetTagsResponse</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>gtrsTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</li>
--   <li><a>gtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getTagsResponse :: Int -> GetTagsResponse

-- | The collection of tags. Each tag element is associated with a given
--   resource.
--   
--   <i>See:</i> <a>getTagsResponse</a> smart constructor.
data GetTagsResponse

-- | The collection of tags. Each tag element is associated with a given
--   resource.
gtrsTags :: Lens' GetTagsResponse (HashMap Text Text)

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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getStages :: Text -> GetStages

-- | Requests 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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> - The current page of elements from this
--   collection.</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

-- | The current page of elements from this collection.
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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetStages.GetStagesResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gssStageName</a> - [Required] The name of the <a>Stage</a>
--   resource to get information about.</li>
--   </ul>
getStage :: Text -> Text -> GetStage

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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gssRestAPIId :: Lens' GetStage Text

-- | <ul>
--   <li><i>Required</i> The name of the <a>Stage</a> resource to get
--   information about.</li>
--   </ul>
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>sAccessLogSettings</a> - Settings for logging access in this
--   stage.</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 timestamp when the stage was
--   created.</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 timestamp when the stage last
--   updated.</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCanarySettings</a> - Settings for the canary deployment in
--   this stage.</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 API
--   Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   <li><a>sTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</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)

-- | Settings for logging access in this stage.
sAccessLogSettings :: Lens' Stage (Maybe AccessLogSettings)

-- | 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 timestamp when the stage was created.
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 timestamp when the stage last updated.
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

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

-- | Settings for the canary deployment in this stage.
sCanarySettings :: Lens' Stage (Maybe CanarySettings)

-- | 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 API Gateway.
sStageName :: Lens' Stage (Maybe Text)

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

-- | The collection of tags. Each tag element is associated with a given
--   resource.
sTags :: Lens' Stage (HashMap Text 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


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

-- | Creates a value of <a>GetSDKTypes</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>gstLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gstPosition</a> - The current pagination position in the paged
--   result set.</li>
--   </ul>
getSDKTypes :: GetSDKTypes

-- | Get the <tt>SdkTypes</tt> collection.
--   
--   <i>See:</i> <a>getSDKTypes</a> smart constructor.
data GetSDKTypes

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gstLimit :: Lens' GetSDKTypes (Maybe Int)

-- | The current pagination position in the paged result set.
gstPosition :: Lens' GetSDKTypes (Maybe Text)

-- | Creates a value of <a>GetSDKTypesResponse</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>gstrsItems</a> - The current page of elements from this
--   collection.</li>
--   <li><a>gstrsPosition</a> - Undocumented member.</li>
--   <li><a>gstrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSDKTypesResponse :: Int -> GetSDKTypesResponse

-- | The collection of <tt>SdkType</tt> instances.
--   
--   <i>See:</i> <a>getSDKTypesResponse</a> smart constructor.
data GetSDKTypesResponse

-- | The current page of elements from this collection.
gstrsItems :: Lens' GetSDKTypesResponse [SDKType]

-- | Undocumented member.
gstrsPosition :: Lens' GetSDKTypesResponse (Maybe Text)

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


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

-- | Creates a value of <a>GetSDKType</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>gstId</a> - [Required] The identifier of the queried
--   <tt>SdkType</tt> instance.</li>
--   </ul>
getSDKType :: Text -> GetSDKType

-- | Get an <tt>SdkType</tt> instance.
--   
--   <i>See:</i> <a>getSDKType</a> smart constructor.
data GetSDKType

-- | <ul>
--   <li><i>Required</i> The identifier of the queried <tt>SdkType</tt>
--   instance.</li>
--   </ul>
gstId :: Lens' GetSDKType Text

-- | Creates a value of <a>SDKType</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>stFriendlyName</a> - The user-friendly name of an
--   <tt>SdkType</tt> instance.</li>
--   <li><a>stConfigurationProperties</a> - A list of configuration
--   properties of an <tt>SdkType</tt> .</li>
--   <li><a>stId</a> - The identifier of an <tt>SdkType</tt> instance.</li>
--   <li><a>stDescription</a> - The description of an <tt>SdkType</tt>
--   .</li>
--   </ul>
sdkType :: SDKType

-- | A type of SDK that API Gateway can generate.
--   
--   <i>See:</i> <a>sdkType</a> smart constructor.
data SDKType

-- | The user-friendly name of an <tt>SdkType</tt> instance.
stFriendlyName :: Lens' SDKType (Maybe Text)

-- | A list of configuration properties of an <tt>SdkType</tt> .
stConfigurationProperties :: Lens' SDKType [SDKConfigurationProperty]

-- | The identifier of an <tt>SdkType</tt> instance.
stId :: Lens' SDKType (Maybe Text)

-- | The description of an <tt>SdkType</tt> .
stDescription :: Lens' SDKType (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Data.Data.Data Network.AWS.APIGateway.GetSDKType.GetSDKType
instance GHC.Show.Show Network.AWS.APIGateway.GetSDKType.GetSDKType
instance GHC.Read.Read Network.AWS.APIGateway.GetSDKType.GetSDKType
instance GHC.Classes.Eq Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetSDKType.GetSDKType
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetSDKType.GetSDKType


-- | 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 string-to-string key-value map of query
--   parameters <tt>sdkType</tt> -dependent properties of the SDK. For
--   <tt>sdkType</tt> of <tt>objectivec</tt> or <tt>swift</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. For <tt>sdkType</tt> of
--   <tt>java</tt> , parameters named <tt>serviceName</tt> and
--   <tt>javaPackageName</tt> are required.</li>
--   <li><a>gsdkRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gsdkStageName</a> - [Required] The name of the <a>Stage</a>
--   that the SDK will use.</li>
--   <li><a>gsdkSdkType</a> - [Required] The language for the generated
--   SDK. Currently <tt>java</tt> , <tt>javascript</tt> , <tt>android</tt>
--   , <tt>objectivec</tt> (for iOS), <tt>swift</tt> (for iOS), and
--   <tt>ruby</tt> 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 string-to-string key-value map of query parameters <tt>sdkType</tt>
--   -dependent properties of the SDK. For <tt>sdkType</tt> of
--   <tt>objectivec</tt> or <tt>swift</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. For <tt>sdkType</tt> of
--   <tt>java</tt> , parameters named <tt>serviceName</tt> and
--   <tt>javaPackageName</tt> are required.
gsdkParameters :: Lens' GetSDK (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gsdkRestAPIId :: Lens' GetSDK Text

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

-- | <ul>
--   <li><i>Required</i> The language for the generated SDK. Currently
--   <tt>java</tt> , <tt>javascript</tt> , <tt>android</tt> ,
--   <tt>objectivec</tt> (for iOS), <tt>swift</tt> (for iOS), and
--   <tt>ruby</tt> are supported.</li>
--   </ul>
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 ByteString)

-- | 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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetSDK.GetSDKResponse
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


-- | 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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>graPosition</a> - The current pagination position in the paged
--   result set.</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 returned results per page. The default value is
--   25 and the maximum value is 500.
graLimit :: Lens' GetRestAPIs (Maybe Int)

-- | The current pagination position in the paged result set.
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> - The current page of elements from this
--   collection.</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

-- | The current page of elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetRestAPIs.GetRestAPIs
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetRestAPIs.GetRestAPIsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

-- | 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>grsEmbed</a> - A query parameter used to retrieve the specified
--   resources embedded in the returned <tt>Resources</tt> resource in the
--   response. This <tt>embed</tt> parameter value is a list of
--   comma-separated strings. Currently, the request supports only
--   retrieval of the embedded <a>Method</a> resources this way. The query
--   parameter value must be a single-valued list and contain the
--   <tt>"methods"</tt> string. For example, <tt>GET
--   <i>restapis</i>{restapi_id}/resources?embed=methods</tt> .</li>
--   <li><a>grsLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>grsPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>grsRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getResources :: Text -> GetResources

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

-- | A query parameter used to retrieve the specified resources embedded in
--   the returned <tt>Resources</tt> resource in the response. This
--   <tt>embed</tt> parameter value is a list of comma-separated strings.
--   Currently, the request supports only retrieval of the embedded
--   <a>Method</a> resources this way. The query parameter value must be a
--   single-valued list and contain the <tt>"methods"</tt> string. For
--   example, <tt>GET
--   <i>restapis</i>{restapi_id}/resources?embed=methods</tt> .
grsEmbed :: Lens' GetResources [Text]

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
grsLimit :: Lens' GetResources (Maybe Int)

-- | The current pagination position in the paged result set.
grsPosition :: Lens' GetResources (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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> - The current page of elements from this
--   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

-- | The current page of elements from this 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.Types.AWSRequest Network.AWS.APIGateway.GetResources.GetResources
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetResources.GetResourcesResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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>grEmbed</a> - A query parameter to retrieve the specified
--   resources embedded in the returned <a>Resource</a> representation in
--   the response. This <tt>embed</tt> parameter value is a list of
--   comma-separated strings. Currently, the request supports only
--   retrieval of the embedded <a>Method</a> resources this way. The query
--   parameter value must be a single-valued list and contain the
--   <tt>"methods"</tt> string. For example, <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   .</li>
--   <li><a>grRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>grResourceId</a> - [Required] 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

-- | A query parameter to retrieve the specified resources embedded in the
--   returned <a>Resource</a> representation in the response. This
--   <tt>embed</tt> parameter value is a list of comma-separated strings.
--   Currently, the request supports only retrieval of the embedded
--   <a>Method</a> resources this way. The query parameter value must be a
--   single-valued list and contain the <tt>"methods"</tt> string. For
--   example, <tt>GET
--   <i>restapis</i>{restapi_id}<i>resources</i>{resource_id}?embed=methods</tt>
--   .
grEmbed :: Lens' GetResource [Text]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
grRestAPIId :: Lens' GetResource Text

-- | <ul>
--   <li><i>Required</i> The identifier for the <a>Resource</a>
--   resource.</li>
--   </ul>
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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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


-- | Gets the <tt>RequestValidators</tt> collection of a given
--   <tt>RestApi</tt> .
module Network.AWS.APIGateway.GetRequestValidators

-- | Creates a value of <a>GetRequestValidators</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>grvLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>grvPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>grvRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getRequestValidators :: Text -> GetRequestValidators

-- | Gets the <tt>RequestValidators</tt> collection of a given
--   <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>getRequestValidators</a> smart constructor.
data GetRequestValidators

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
grvLimit :: Lens' GetRequestValidators (Maybe Int)

-- | The current pagination position in the paged result set.
grvPosition :: Lens' GetRequestValidators (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
grvRestAPIId :: Lens' GetRequestValidators Text

-- | Creates a value of <a>GetRequestValidatorsResponse</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>grvrsItems</a> - The current page of elements from this
--   collection.</li>
--   <li><a>grvrsPosition</a> - Undocumented member.</li>
--   <li><a>grvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getRequestValidatorsResponse :: Int -> GetRequestValidatorsResponse

-- | A collection of <a>RequestValidator</a> resources of a given
--   <tt>RestApi</tt> .
--   
--   In Swagger, the <tt>RequestValidators</tt> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators</a> extension.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>getRequestValidatorsResponse</a> smart constructor.
data GetRequestValidatorsResponse

-- | The current page of elements from this collection.
grvrsItems :: Lens' GetRequestValidatorsResponse [RequestValidator]

-- | Undocumented member.
grvrsPosition :: Lens' GetRequestValidatorsResponse (Maybe Text)

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


-- | Gets a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
module Network.AWS.APIGateway.GetRequestValidator

-- | Creates a value of <a>GetRequestValidator</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>grvrRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>grvrRequestValidatorId</a> - [Required] The identifier of the
--   <a>RequestValidator</a> to be retrieved.</li>
--   </ul>
getRequestValidator :: Text -> Text -> GetRequestValidator

-- | Gets a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>getRequestValidator</a> smart constructor.
data GetRequestValidator

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
grvrRestAPIId :: Lens' GetRequestValidator Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>RequestValidator</a> to
--   be retrieved.</li>
--   </ul>
grvrRequestValidatorId :: Lens' GetRequestValidator Text

-- | Creates a value of <a>RequestValidator</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>rvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters (<tt>true</tt> ) or not
--   (<tt>false</tt> ).</li>
--   <li><a>rvName</a> - The name of this <a>RequestValidator</a></li>
--   <li><a>rvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate a request body according to the configured <a>Model</a>
--   schema.</li>
--   <li><a>rvId</a> - The identifier of this <a>RequestValidator</a>
--   .</li>
--   </ul>
requestValidator :: RequestValidator

-- | A set of validation rules for incoming <a>Method</a> requests.
--   
--   In Swagger, a <a>RequestValidator</a> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators.requestValidator</a> object.
--   It the referenced using the
--   <a>x-amazon-apigateway-request-validator</a> property.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>requestValidator</a> smart constructor.
data RequestValidator

-- | A Boolean flag to indicate whether to validate request parameters
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
rvValidateRequestParameters :: Lens' RequestValidator (Maybe Bool)

-- | The name of this <a>RequestValidator</a>
rvName :: Lens' RequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate a request body
--   according to the configured <a>Model</a> schema.
rvValidateRequestBody :: Lens' RequestValidator (Maybe Bool)

-- | The identifier of this <a>RequestValidator</a> .
rvId :: Lens' RequestValidator (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Data.Data.Data Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance GHC.Show.Show Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance GHC.Read.Read Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance GHC.Classes.Eq Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetRequestValidator.GetRequestValidator


-- | 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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gmsPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gmsRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</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 returned results per page. The default value is
--   25 and the maximum value is 500.
gmsLimit :: Lens' GetModels (Maybe Int)

-- | The current pagination position in the paged result set.
gmsPosition :: Lens' GetModels (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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> - The current page of elements from this
--   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

-- | The current page of elements from this 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.Types.AWSRequest Network.AWS.APIGateway.GetModels.GetModels
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetModels.GetModelsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gmtModelName</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gmtRestAPIId :: Lens' GetModelTemplate Text

-- | <ul>
--   <li><i>Required</i> The name of the model for which to generate a
--   template.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetModelTemplate.GetModelTemplateResponse
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


-- | 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> - [Required] The <tt>RestApi</tt> identifier
--   under which the <a>Model</a> exists.</li>
--   <li><a>ggModelName</a> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The <tt>RestApi</tt> identifier under which the
--   <a>Model</a> exists.</li>
--   </ul>
ggRestAPIId :: Lens' GetModel Text

-- | <ul>
--   <li><i>Required</i> The name of the model as an identifier.</li>
--   </ul>
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
--   4</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. Must be an alphanumeric
--   string.</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 4</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. Must be an alphanumeric string.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gmResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>MethodResponse</a> resource.</li>
--   <li><a>gmHttpMethod</a> - [Required] The HTTP verb of the
--   <a>Method</a> resource.</li>
--   <li><a>gmStatusCode</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gmRestAPIId :: Lens' GetMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The <a>Resource</a> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
gmResourceId :: Lens' GetMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The HTTP verb of the <a>Method</a> resource.</li>
--   </ul>
gmHttpMethod :: Lens' GetMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The status code for the <a>MethodResponse</a>
--   resource.</li>
--   </ul>
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 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. 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 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. 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gmmResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>Method</a> resource.</li>
--   <li><a>gmmHttpMethod</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gmmRestAPIId :: Lens' GetMethod Text

-- | <ul>
--   <li><i>Required</i> The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   </ul>
gmmResourceId :: Lens' GetMethod Text

-- | <ul>
--   <li><i>Required</i> Specifies the method request's HTTP method
--   type.</li>
--   </ul>
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>mAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>mRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for request validation.</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 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>mOperationName</a> - A human-friendly operation identifier for
--   the method. For example, you can assign the <tt>operationName</tt> of
--   <tt>ListPets</tt> for the <tt>GET /pets</tt> method in <a>PetStore</a>
--   example.</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type. Valid
--   values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using
--   AWS IAM permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</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 list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
mAuthorizationScopes :: Lens' Method [Text]

-- | The identifier of a <a>RequestValidator</a> for request validation.
mRequestValidatorId :: 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 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)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
mOperationName :: Lens' Method (Maybe Text)

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>giiResourceId</a> - [Required] Specifies a get integration
--   response request's resource identifier.</li>
--   <li><a>giiHttpMethod</a> - [Required] Specifies a get integration
--   response request's HTTP method.</li>
--   <li><a>giiStatusCode</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
giiRestAPIId :: Lens' GetIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a get integration response request's
--   resource identifier.</li>
--   </ul>
giiResourceId :: Lens' GetIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a get integration response request's
--   HTTP method.</li>
--   </ul>
giiHttpMethod :: Lens' GetIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a get integration response request's
--   status code.</li>
--   </ul>
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


-- | Get the integration settings.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>giResourceId</a> - [Required] Specifies a get integration
--   request's resource identifier</li>
--   <li><a>giHttpMethod</a> - [Required] Specifies a get integration
--   request's HTTP method.</li>
--   </ul>
getIntegration :: Text -> Text -> Text -> GetIntegration

-- | Represents a request to get the integration configuration.
--   
--   <i>See:</i> <a>getIntegration</a> smart constructor.
data GetIntegration

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
giRestAPIId :: Lens' GetIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a get integration request's resource
--   identifier</li>
--   </ul>
giResourceId :: Lens' GetIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a get integration request's HTTP
--   method.</li>
--   </ul>
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 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>iConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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> . The valid value is one of the
--   following: * <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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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>iTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>iType</a> - Specifies an API method integration type. The valid
--   value is one of the following: * <tt>AWS</tt> : for integrating the
--   API method request with an AWS service action, including the Lambda
--   function-invoking action. With the Lambda function-invoking action,
--   this is referred to as the Lambda custom integration. With any other
--   AWS service action, this is known as AWS integration. *
--   <tt>AWS_PROXY</tt> : for integrating the API method request with the
--   Lambda function-invoking action with the client request passed through
--   as-is. This integration is also referred to as the Lambda proxy
--   integration. * <tt>HTTP</tt> : for integrating the API method request
--   with an HTTP endpoint, including a private HTTP endpoint within a VPC.
--   This integration is also referred to as the HTTP custom integration. *
--   <tt>HTTP_PROXY</tt> : for integrating the API method request with an
--   HTTP endpoint, including a private HTTP endpoint within a VPC, with
--   the client request passed through as-is. This is also referred to as
--   the HTTP proxy integration. * <tt>MOCK</tt> : for integrating the API
--   method request with API Gateway as a "loop-back" endpoint without
--   invoking any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.</li>
--   <li><a>iConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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>
--   
--   <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 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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
iConnectionId :: 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> .
--   The valid value is one of the following: * <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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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)

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
iTimeoutInMillis :: Lens' Integration (Maybe Int)

-- | Specifies an API method integration type. The valid value is one of
--   the following: * <tt>AWS</tt> : for integrating the API method request
--   with an AWS service action, including the Lambda function-invoking
--   action. With the Lambda function-invoking action, this is referred to
--   as the Lambda custom integration. With any other AWS service action,
--   this is known as AWS integration. * <tt>AWS_PROXY</tt> : for
--   integrating the API method request with the Lambda function-invoking
--   action with the client request passed through as-is. This integration
--   is also referred to as the Lambda proxy integration. * <tt>HTTP</tt> :
--   for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC. This integration is
--   also referred to as the HTTP custom integration. * <tt>HTTP_PROXY</tt>
--   : for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC, with the client
--   request passed through as-is. This is also referred to as the HTTP
--   proxy integration. * <tt>MOCK</tt> : for integrating the API method
--   request with API Gateway as a "loop-back" endpoint without invoking
--   any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.
iType :: Lens' Integration (Maybe IntegrationType)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
iConnectionType :: Lens' Integration (Maybe ConnectionType)

-- | 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


-- | Gets the <tt>GatewayResponses</tt> collection on the given
--   <tt>RestApi</tt> . If an API developer has not added any definitions
--   for gateway responses, the result will be the API Gateway-generated
--   default <tt>GatewayResponses</tt> collection for the supported
--   response types.
module Network.AWS.APIGateway.GetGatewayResponses

-- | Creates a value of <a>GetGatewayResponses</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>ggrLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500. The
--   <tt>GatewayResponses</tt> collection does not support pagination and
--   the limit does not apply here.</li>
--   <li><a>ggrPosition</a> - The current pagination position in the paged
--   result set. The <a>GatewayResponse</a> collection does not support
--   pagination and the position does not apply here.</li>
--   <li><a>ggrRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getGatewayResponses :: Text -> GetGatewayResponses

-- | Gets the <tt>GatewayResponses</tt> collection on the given
--   <tt>RestApi</tt> . If an API developer has not added any definitions
--   for gateway responses, the result will be the API Gateway-generated
--   default <tt>GatewayResponses</tt> collection for the supported
--   response types.
--   
--   <i>See:</i> <a>getGatewayResponses</a> smart constructor.
data GetGatewayResponses

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500. The <tt>GatewayResponses</tt>
--   collection does not support pagination and the limit does not apply
--   here.
ggrLimit :: Lens' GetGatewayResponses (Maybe Int)

-- | The current pagination position in the paged result set. The
--   <a>GatewayResponse</a> collection does not support pagination and the
--   position does not apply here.
ggrPosition :: Lens' GetGatewayResponses (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
ggrRestAPIId :: Lens' GetGatewayResponses Text

-- | Creates a value of <a>GetGatewayResponsesResponse</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>ggrrsItems</a> - Returns the entire collection, because of no
--   pagination support.</li>
--   <li><a>ggrrsPosition</a> - Undocumented member.</li>
--   <li><a>ggrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getGatewayResponsesResponse :: Int -> GetGatewayResponsesResponse

-- | The collection of the <a>GatewayResponse</a> instances of a
--   <tt>RestApi</tt> as a <tt>responseType</tt> -to-<a>GatewayResponse</a>
--   object map of key-value pairs. As such, pagination is not supported
--   for querying this collection.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   the collection of gateway responses of an API</b> <b>Request</b> This
--   example request shows how to retrieve the <tt>GatewayResponses</tt>
--   collection from an API.
--   
--   @<tt>GET <i>restapis</i>o81lxisefl<i>gatewayresponses HTTP</i>1.1
--   Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application<i>json X-Amz-Date: 20170503T220604Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}</i>20170503<i>us-east-1</i>apigateway/aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=59b42fe54a76a5de8adf2c67baa6d39206f8e9ad49a1d77ccc6a5da3103a398a
--   Cache-Control: no-cache Postman-Token:
--   5637af27-dc29-fc5c-9dfe-0645d52cb515 </tt> @
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses" }, "first": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses" },
--   "gatewayresponse:by-type": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "item": [ { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_FAILURE"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>RESOURCE_NOT_FOUND"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>REQUEST_TOO_LARGE" },
--   { "href": "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>THROTTLED"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>UNSUPPORTED_MEDIA_TYPE"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>AUTHORIZER_CONFIGURATION_ERROR"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>DEFAULT_5XX" }, {
--   "href": "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>DEFAULT_4XX"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>BAD_REQUEST_PARAMETERS"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>BAD_REQUEST_BODY" },
--   { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>EXPIRED_TOKEN" }, {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>ACCESS_DENIED" }, {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_API_KEY" }, {
--   "href": "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>UNAUTHORIZED"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>API_CONFIGURATION_ERROR"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>QUOTA_EXCEEDED" }, {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_TIMEOUT"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_SIGNATURE" },
--   { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>AUTHORIZER_FAILURE" }
--   ] }, "_embedded": { "item": [ { "_links": { "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_FAILURE"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_FAILURE"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>INTEGRATION_FAILURE</a>, "statusCode": "504" }, { "_links": {
--   "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>RESOURCE_NOT_FOUND"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>RESOURCE_NOT_FOUND" }
--   }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>RESOURCE_NOT_FOUND</a>, "statusCode": "404" }, { "_links": {
--   "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>REQUEST_TOO_LARGE" },
--   "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>REQUEST_TOO_LARGE" }
--   }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>REQUEST_TOO_LARGE</a>, "statusCode": "413" }, { "_links": { "self":
--   { "href": "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>THROTTLED"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>THROTTLED" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>THROTTLED</a>, "statusCode": "429" }, { "_links": { "self": {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>UNSUPPORTED_MEDIA_TYPE"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>UNSUPPORTED_MEDIA_TYPE"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>UNSUPPORTED_MEDIA_TYPE</a>, "statusCode": "415" }, { "_links": {
--   "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>AUTHORIZER_CONFIGURATION_ERROR"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>AUTHORIZER_CONFIGURATION_ERROR"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>AUTHORIZER_CONFIGURATION_ERROR</a>, "statusCode": "500" }, {
--   "_links": { "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>DEFAULT_5XX" },
--   "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>DEFAULT_5XX" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>DEFAULT_5XX</a> }, { "_links": { "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>DEFAULT_4XX" },
--   "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>DEFAULT_4XX" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>DEFAULT_4XX</a> }, { "_links": { "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>BAD_REQUEST_PARAMETERS"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>BAD_REQUEST_PARAMETERS"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>BAD_REQUEST_PARAMETERS</a>, "statusCode": "400" }, { "_links": {
--   "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>BAD_REQUEST_BODY" },
--   "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>BAD_REQUEST_BODY" }
--   }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>BAD_REQUEST_BODY</a>, "statusCode": "400" }, { "_links": { "self":
--   { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>EXPIRED_TOKEN" },
--   "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>EXPIRED_TOKEN" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>EXPIRED_TOKEN</a>, "statusCode": "403" }, { "_links": { "self": {
--   "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>ACCESS_DENIED" },
--   "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>ACCESS_DENIED" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>ACCESS_DENIED</a>, "statusCode": "403" }, { "_links": { "self": {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_API_KEY" },
--   "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_API_KEY" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>INVALID_API_KEY</a>, "statusCode": "403" }, { "_links": { "self": {
--   "href": "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>UNAUTHORIZED"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>UNAUTHORIZED" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>UNAUTHORIZED</a>, "statusCode": "401" }, { "_links": { "self": {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>API_CONFIGURATION_ERROR"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>API_CONFIGURATION_ERROR"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>API_CONFIGURATION_ERROR</a>, "statusCode": "500" }, { "_links": {
--   "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>QUOTA_EXCEEDED" },
--   "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>QUOTA_EXCEEDED" } },
--   "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>QUOTA_EXCEEDED</a>, "statusCode": "429" }, { "_links": { "self": {
--   "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_TIMEOUT"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INTEGRATION_TIMEOUT"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>INTEGRATION_TIMEOUT</a>, "statusCode": "504" }, { "_links": {
--   "self": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "403" }, {
--   "_links": { "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_SIGNATURE" },
--   "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>INVALID_SIGNATURE" }
--   }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application<i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>INVALID_SIGNATURE</a>, "statusCode": "403" }, { "_links": { "self":
--   { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>AUTHORIZER_FAILURE"
--   }, "gatewayresponse:put": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "</i>restapis<i>o81lxisefl</i>gatewayresponses<i>AUTHORIZER_FAILURE" }
--   }, "defaultResponse": true, "responseParameters": {},
--   "responseTemplates": { "application</i>json":
--   "{"message":$context.error.messageString}" }, "responseType":
--   <a>AUTHORIZER_FAILURE</a>, "statusCode": "500" } ] } }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>getGatewayResponsesResponse</a> smart constructor.
data GetGatewayResponsesResponse

-- | Returns the entire collection, because of no pagination support.
ggrrsItems :: Lens' GetGatewayResponsesResponse [GatewayResponse]

-- | Undocumented member.
ggrrsPosition :: Lens' GetGatewayResponsesResponse (Maybe Text)

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


-- | Gets a <a>GatewayResponse</a> of a specified response type on the
--   given <tt>RestApi</tt> .
module Network.AWS.APIGateway.GetGatewayResponse

-- | Creates a value of <a>GetGatewayResponse</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>gggRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gggResponseType</a> - [Required] The response type of the
--   associated <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
getGatewayResponse :: Text -> GatewayResponseType -> GetGatewayResponse

-- | Gets a <a>GatewayResponse</a> of a specified response type on the
--   given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>getGatewayResponse</a> smart constructor.
data GetGatewayResponse

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gggRestAPIId :: Lens' GetGatewayResponse Text

-- | <ul>
--   <li><i>Required</i> The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
gggResponseType :: Lens' GetGatewayResponse GatewayResponseType

-- | Creates a value of <a>GatewayResponse</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>gDefaultResponse</a> - A Boolean flag to indicate whether this
--   <a>GatewayResponse</a> is the default gateway response (<tt>true</tt>
--   ) or not (<tt>false</tt> ). A default gateway response is one
--   generated by API Gateway without any customization by an API
--   developer.</li>
--   <li><a>gResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>gResponseType</a> - The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   <li><a>gStatusCode</a> - The HTTP status code for this
--   <a>GatewayResponse</a> .</li>
--   <li><a>gResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   </ul>
gatewayResponse :: GatewayResponse

-- | A gateway response of a given response type and status code, with
--   optional response parameters and mapping templates.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   a Gateway Response of a given response type</b> <b>Request</b> This
--   example shows how to get a gateway response of the
--   <tt>MISSING_AUTHENTICATION_TOKEN</tt> type.
--   
--   @<tt>GET
--   <i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN
--   HTTP<i>1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application</i>json X-Amz-Date: 20170503T202516Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}<i>20170503</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
--   Cache-Control: no-cache Postman-Token:
--   3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 </tt> @ The response type is
--   specified as a URL path.
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:delete": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": false, "responseParameters": {
--   "gatewayresponse.header.x-request-path": "method.request.path.petId",
--   "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
--   "gatewayresponse.header.x-request-query":
--   "method.request.querystring.q",
--   "gatewayresponse.header.x-request-header":
--   "method.request.header.Accept" }, "responseTemplates": {
--   "application/json": "{n "message": $context.error.messageString,n
--   "type": "$context.error.responseType",n "stage": "$context.stage",n
--   "resourcePath": "$context.resourcePath",n "stageVariables.a":
--   "$stageVariables.a",n "statusCode": "'404'"n}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "404" }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>gatewayResponse</a> smart constructor.
data GatewayResponse

-- | A Boolean flag to indicate whether this <a>GatewayResponse</a> is the
--   default gateway response (<tt>true</tt> ) or not (<tt>false</tt> ). A
--   default gateway response is one generated by API Gateway without any
--   customization by an API developer.
gDefaultResponse :: Lens' GatewayResponse (Maybe Bool)

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
gResponseTemplates :: Lens' GatewayResponse (HashMap Text Text)

-- | The response type of the associated <a>GatewayResponse</a> . Valid
--   values are * ACCESS_DENIED * API_CONFIGURATION_ERROR *
--   AUTHORIZER_FAILURE * AUTHORIZER_CONFIGURATION_ERROR *
--   BAD_REQUEST_PARAMETERS * BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX
--   * EXPIRED_TOKEN * INVALID_SIGNATURE * INTEGRATION_FAILURE *
--   INTEGRATION_TIMEOUT * INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN *
--   QUOTA_EXCEEDED * REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED *
--   UNAUTHORIZED * UNSUPPORTED_MEDIA_TYPE
gResponseType :: Lens' GatewayResponse (Maybe GatewayResponseType)

-- | The HTTP status code for this <a>GatewayResponse</a> .
gStatusCode :: Lens' GatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
gResponseParameters :: Lens' GatewayResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Data.Data.Data Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance GHC.Show.Show Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance GHC.Read.Read Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.GetGatewayResponse.GetGatewayResponse


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>geStageName</a> - [Required] The name of the <a>Stage</a> that
--   will be exported.</li>
--   <li><a>geExportType</a> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
geRestAPIId :: Lens' GetExport Text

-- | <ul>
--   <li><i>Required</i> The name of the <a>Stage</a> that will be
--   exported.</li>
--   </ul>
geStageName :: Lens' GetExport Text

-- | <ul>
--   <li><i>Required</i> The type of export. Currently only
--   <tt>swagger</tt> is supported.</li>
--   </ul>
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 ByteString)

-- | 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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetExport.GetExportResponse
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


-- | 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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gdnPosition</a> - The current pagination position in the paged
--   result set.</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 returned results per page. The default value is
--   25 and the maximum value is 500.
gdnLimit :: Lens' GetDomainNames (Maybe Int)

-- | The current pagination position in the paged result set.
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 elements from this
--   collection.</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 elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetDomainNames.GetDomainNames
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDomainNames.GetDomainNamesResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The name of the <a>DomainName</a> resource.</li>
--   </ul>
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>dnRegionalHostedZoneId</a> - The region-specific Amazon Route
--   53 Hosted Zone ID of the regional endpoint. For more information, see
--   <a>Set up a Regional Custom Domain Name</a> and <a>AWS Regions and
--   Endpoints for API Gateway</a> .</li>
--   <li><a>dnCertificateName</a> - The name of the certificate that will
--   be used by edge-optimized endpoint for this domain name.</li>
--   <li><a>dnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used for validating the regional domain name.
--   AWS Certificate Manager is the only supported source.</li>
--   <li><a>dnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>dnDistributionHostedZoneId</a> - The region-agnostic Amazon
--   Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid
--   value is <tt>Z2FDTNDATAQYW2</tt> for all the regions. For more
--   information, see <a>Set up a Regional Custom Domain Name</a> and
--   <a>AWS Regions and Endpoints for API Gateway</a> .</li>
--   <li><a>dnDomainName</a> - The custom domain name as an API host name,
--   for example, <tt>my-api.example.com</tt> .</li>
--   <li><a>dnRegionalCertificateName</a> - The name of the certificate
--   that will be used for validating the regional domain name.</li>
--   <li><a>dnRegionalDomainName</a> - The domain name associated with the
--   regional endpoint for this custom domain name. You set up this
--   association by adding a DNS record that points the custom domain name
--   to this regional domain name. The regional domain name is returned by
--   API Gateway when you create a regional endpoint.</li>
--   <li><a>dnCertificateUploadDate</a> - The timestamp when the
--   certificate that was used by edge-optimized endpoint for this domain
--   name was uploaded.</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution associated with this custom domain name for an
--   edge-optimized endpoint. You set up this association when adding a DNS
--   record pointing the custom domain name to this distribution name. For
--   more information about CloudFront distributions, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   <li><a>dnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   </ul>
domainName :: DomainName

-- | Represents a custom domain name as a user-friendly host name of an API
--   (<tt>RestApi</tt> ).
--   
--   When you deploy an API, API Gateway creates a default host name for
--   the API. This default API host name is of the
--   <tt>{restapi-id}.execute-api.{region}.amazonaws.com</tt> format. With
--   the default host name, you can access the API's root resource with the
--   URL of
--   <tt><a>https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/</a></tt>
--   . When you set up a custom domain name of <tt>apis.example.com</tt>
--   for this API, you can then access the same resource using the URL of
--   the <tt><a>https://apis.examples.com/myApi</a></tt> , where
--   <tt>myApi</tt> is the base path mapping (<a>BasePathMapping</a> ) of
--   your API under the custom domain name.
--   
--   <a>Set a Custom Host Name for an API</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The region-specific Amazon Route 53 Hosted Zone ID of the regional
--   endpoint. For more information, see <a>Set up a Regional Custom Domain
--   Name</a> and <a>AWS Regions and Endpoints for API Gateway</a> .
dnRegionalHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used by edge-optimized
--   endpoint for this domain name.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used for
--   validating the regional domain name. AWS Certificate Manager is the
--   only supported source.
dnRegionalCertificateARN :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
dnCertificateARN :: Lens' DomainName (Maybe Text)

-- | The region-agnostic Amazon Route 53 Hosted Zone ID of the
--   edge-optimized endpoint. The valid value is <tt>Z2FDTNDATAQYW2</tt>
--   for all the regions. For more information, see <a>Set up a Regional
--   Custom Domain Name</a> and <a>AWS Regions and Endpoints for API
--   Gateway</a> .
dnDistributionHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The custom domain name as an API host name, for example,
--   <tt>my-api.example.com</tt> .
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used for validating the
--   regional domain name.
dnRegionalCertificateName :: Lens' DomainName (Maybe Text)

-- | The domain name associated with the regional endpoint for this custom
--   domain name. You set up this association by adding a DNS record that
--   points the custom domain name to this regional domain name. The
--   regional domain name is returned by API Gateway when you create a
--   regional endpoint.
dnRegionalDomainName :: Lens' DomainName (Maybe Text)

-- | The timestamp when the certificate that was used by edge-optimized
--   endpoint for this domain name was uploaded.
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution associated with
--   this custom domain name for an edge-optimized endpoint. You set up
--   this association when adding a DNS record pointing the custom domain
--   name to this distribution name. For more information about CloudFront
--   distributions, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
dnEndpointConfiguration :: Lens' DomainName (Maybe EndpointConfiguration)
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 maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gdvPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gdvRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getDocumentationVersions :: Text -> GetDocumentationVersions

-- | Gets the documentation versions of an API.
--   
--   <i>See:</i> <a>getDocumentationVersions</a> smart constructor.
data GetDocumentationVersions

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gdvLimit :: Lens' GetDocumentationVersions (Maybe Int)

-- | The current pagination position in the paged result set.
gdvPosition :: Lens' GetDocumentationVersions (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</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 elements from this
--   collection.</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 elements from this collection.
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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationVersions.GetDocumentationVersionsResponse
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


-- | 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 string identifier of the
--   associated <tt>RestApi</tt> .</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 string identifier of the associated
--   <tt>RestApi</tt> .</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>gdpLocationStatus</a> - The status of the API documentation
--   parts to retrieve. Valid values are <tt>DOCUMENTED</tt> for retrieving
--   <a>DocumentationPart</a> resources with content and
--   <tt>UNDOCUMENTED</tt> for <a>DocumentationPart</a> resources without
--   content.</li>
--   <li><a>gdpNameQuery</a> - The name of API entities of the
--   to-be-retrieved documentation parts.</li>
--   <li><a>gdpLimit</a> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gdpType</a> - The type of API entities of the to-be-retrieved
--   documentation parts.</li>
--   <li><a>gdpPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gdpRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</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 status of the API documentation parts to retrieve. Valid values
--   are <tt>DOCUMENTED</tt> for retrieving <a>DocumentationPart</a>
--   resources with content and <tt>UNDOCUMENTED</tt> for
--   <a>DocumentationPart</a> resources without content.
gdpLocationStatus :: Lens' GetDocumentationParts (Maybe LocationStatusType)

-- | The name of API entities of the to-be-retrieved documentation parts.
gdpNameQuery :: Lens' GetDocumentationParts (Maybe Text)

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gdpLimit :: Lens' GetDocumentationParts (Maybe Int)

-- | The type of API entities of the to-be-retrieved documentation parts.
gdpType :: Lens' GetDocumentationParts (Maybe DocumentationPartType)

-- | The current pagination position in the paged result set.
gdpPosition :: Lens' GetDocumentationParts (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</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 elements from this
--   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 elements from this 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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetDocumentationParts.GetDocumentationPartsResponse
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


-- | 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 string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>getDocumentationPartId</a> - [Required] The string identifier
--   of the associated <tt>RestApi</tt> .</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 string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
getRestAPIId :: Lens' GetDocumentationPart Text

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</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 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 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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gdPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gdRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getDeployments :: Text -> GetDeployments

-- | Requests 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 returned results per page. The default value is
--   25 and the maximum value is 500.
gdLimit :: Lens' GetDeployments (Maybe Int)

-- | The current pagination position in the paged result set.
gdPosition :: Lens' GetDeployments (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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 elements from this
--   collection.</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 elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetDeployments.GetDeployments
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetDeployments.GetDeploymentsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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>gEmbed</a> - A query parameter to retrieve the specified
--   embedded resources of the returned <a>Deployment</a> resource in the
--   response. In a REST API call, this <tt>embed</tt> parameter value is a
--   list of comma-separated strings, as in <tt>GET
--   <i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}?embed=var1,var2</tt>
--   . The SDK and other platform-dependent libraries might use a different
--   format for the list. Currently, this request supports only retrieval
--   of the embedded API summary this way. Hence, the parameter value must
--   be a single-valued list containing only the <tt>"apisummary"</tt>
--   string. For example, <tt>GET
--   <i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}?embed=apisummary</tt>
--   .</li>
--   <li><a>gRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gDeploymentId</a> - [Required] The identifier of the
--   <a>Deployment</a> resource to get information about.</li>
--   </ul>
getDeployment :: Text -> Text -> GetDeployment

-- | Requests API Gateway to get information about a <a>Deployment</a>
--   resource.
--   
--   <i>See:</i> <a>getDeployment</a> smart constructor.
data GetDeployment

-- | A query parameter to retrieve the specified embedded resources of the
--   returned <a>Deployment</a> resource in the response. In a REST API
--   call, this <tt>embed</tt> parameter value is a list of comma-separated
--   strings, as in <tt>GET
--   <i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}?embed=var1,var2</tt>
--   . The SDK and other platform-dependent libraries might use a different
--   format for the list. Currently, this request supports only retrieval
--   of the embedded API summary this way. Hence, the parameter value must
--   be a single-valued list containing only the <tt>"apisummary"</tt>
--   string. For example, <tt>GET
--   <i>restapis</i>{restapi_id}<i>deployments</i>{deployment_id}?embed=apisummary</tt>
--   .
gEmbed :: Lens' GetDeployment [Text]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gRestAPIId :: Lens' GetDeployment Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Deployment</a> resource
--   to get information about.</li>
--   </ul>
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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gccPosition</a> - The current pagination position in the paged
--   result set.</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 returned results per page. The default value is
--   25 and the maximum value is 500.
gccLimit :: Lens' GetClientCertificates (Maybe Int)

-- | The current pagination position in the paged result set.
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 elements from this
--   collection.</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 elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetClientCertificates.GetClientCertificates
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetClientCertificates.GetClientCertificatesResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>ClientCertificate</a>
--   resource to be described.</li>
--   </ul>
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 timestamp when the client certificate
--   was created.</li>
--   <li><a>ccExpirationDate</a> - The timestamp when the client
--   certificate will expire.</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 to authenticate an API by the backend
--   server. To authenticate an API client (or user), use IAM roles and
--   policies, a custom <a>Authorizer</a> or an Amazon Cognito user
--   pool.<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 timestamp when the client certificate was created.
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The timestamp when the client certificate will expire.
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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gDomainName</a> - [Required] 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 returned results per page. The default value is
--   25 and the maximum value is 500.
gLimit :: Lens' GetBasePathMappings (Maybe Int)

-- | The current pagination position in the paged result set.
gPosition :: Lens' GetBasePathMappings (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The domain name of a <a>BasePathMapping</a>
--   resource.</li>
--   </ul>
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 elements from this
--   collection.</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 elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappings
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetBasePathMappings.GetBasePathMappingsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] The domain name of the
--   <a>BasePathMapping</a> resource to be described.</li>
--   <li><a>gbpmBasePath</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The domain name of the <a>BasePathMapping</a>
--   resource to be described.</li>
--   </ul>
gbpmDomainName :: Lens' GetBasePathMapping Text

-- | <ul>
--   <li><i>Required</i> 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>
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 associated 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 string identifier of the associated
--   <tt>RestApi</tt> .</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 associated 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 string identifier of the associated <tt>RestApi</tt> .
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> - The maximum number of returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gaPosition</a> - The current pagination position in the paged
--   result set.</li>
--   <li><a>gaRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
getAuthorizers :: Text -> GetAuthorizers

-- | Request to describe an existing <tt>Authorizers</tt> resource.
--   
--   <i>See:</i> <a>getAuthorizers</a> smart constructor.
data GetAuthorizers

-- | The maximum number of returned results per page. The default value is
--   25 and the maximum value is 500.
gaLimit :: Lens' GetAuthorizers (Maybe Int)

-- | The current pagination position in the paged result set.
gaPosition :: Lens' GetAuthorizers (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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> - The current page of elements from this
--   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

-- | The current page of elements from this 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 Control.DeepSeq.NFData Network.AWS.APIGateway.GetAuthorizers.GetAuthorizersResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>gaaAuthorizerId</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
gaaRestAPIId :: Lens' GetAuthorizer Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>aProviderARNs</a> - A list of the Amazon Cognito user pool ARNs
--   for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of
--   this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</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 it equals 0, authorization caching is
--   disabled. If it is 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 and exports without functional impact.</li>
--   <li><a>aType</a> - The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   <li><a>aIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the required credentials
--   as an IAM role for API Gateway to invoke the authorizer. To specify an
--   IAM role for 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
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 it equals 0,
--   authorization caching is disabled. If it is 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 and exports
--   without functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for 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 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 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 returned results per page.
--   The default value is 25 and the maximum value is 500.</li>
--   <li><a>gakPosition</a> - The current pagination position in the paged
--   result set.</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 returned results per page. The default value is
--   25 and the maximum value is 500.
gakLimit :: Lens' GetAPIKeys (Maybe Int)

-- | The current pagination position in the paged result set.
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 elements from this
--   collection.</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 elements from this collection.
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.Types.AWSRequest Network.AWS.APIGateway.GetAPIKeys.GetAPIKeys
instance Control.DeepSeq.NFData Network.AWS.APIGateway.GetAPIKeys.GetAPIKeysResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>ApiKey</tt>
--   resource.</li>
--   </ul>
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 timestamp when the API Key was
--   created.</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> - The timestamp when the API Key was last
--   updated.</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 timestamp when the API Key was created.
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]

-- | The timestamp when the API Key was last updated.
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 timestamp when the client certificate
--   was created.</li>
--   <li><a>ccExpirationDate</a> - The timestamp when the client
--   certificate will expire.</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 to authenticate an API by the backend
--   server. To authenticate an API client (or user), use IAM roles and
--   policies, a custom <a>Authorizer</a> or an Amazon Cognito user
--   pool.<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 timestamp when the client certificate was created.
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The timestamp when the client certificate will expire.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>fscStageName</a> - [Required] The name of the stage to flush
--   its cache.</li>
--   </ul>
flushStageCache :: Text -> Text -> FlushStageCache

-- | Requests API Gateway to flush a stage's cache.
--   
--   <i>See:</i> <a>flushStageCache</a> smart constructor.
data FlushStageCache

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
fscRestAPIId :: Lens' FlushStageCache Text

-- | <ul>
--   <li><i>Required</i> The name of the stage to flush its cache.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageCache.FlushStageCacheResponse
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


-- | 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 string identifier of the associated
--   <tt>RestApi</tt> .</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 string identifier of the associated <tt>RestApi</tt> .
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 Control.DeepSeq.NFData Network.AWS.APIGateway.FlushStageAuthorizersCache.FlushStageAuthorizersCacheResponse
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


-- | Deletes an existing <tt>VpcLink</tt> of a specified identifier.
module Network.AWS.APIGateway.DeleteVPCLink

-- | Creates a value of <a>DeleteVPCLink</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>dvlVpcLinkId</a> - [Required] The identifier of the
--   <tt>VpcLink</tt> . It is used in an <a>Integration</a> to reference
--   this <tt>VpcLink</tt> .</li>
--   </ul>
deleteVPCLink :: Text -> DeleteVPCLink

-- | Deletes an existing <tt>VpcLink</tt> of a specified identifier.
--   
--   <i>See:</i> <a>deleteVPCLink</a> smart constructor.
data DeleteVPCLink

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>VpcLink</tt> . It is
--   used in an <a>Integration</a> to reference this <tt>VpcLink</tt>
--   .</li>
--   </ul>
dvlVpcLinkId :: Lens' DeleteVPCLink Text

-- | Creates a value of <a>DeleteVPCLinkResponse</a> with the minimum
--   fields required to make a request.
deleteVPCLinkResponse :: DeleteVPCLinkResponse

-- | <i>See:</i> <a>deleteVPCLinkResponse</a> smart constructor.
data DeleteVPCLinkResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Data.Data.Data Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance GHC.Show.Show Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance GHC.Read.Read Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLinkResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteVPCLink.DeleteVPCLink


-- | 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> - [Required] 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> 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>
--   </ul>
dupkUsagePlanId :: Lens' DeleteUsagePlanKey Text

-- | <ul>
--   <li><i>Required</i> The Id of the <a>UsagePlanKey</a> resource to be
--   deleted.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlanKey.DeleteUsagePlanKeyResponse
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


-- | 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> - [Required] The Id of the to-be-deleted
--   usage plan.</li>
--   </ul>
deleteUsagePlan :: Text -> DeleteUsagePlan

-- | The DELETE request to delete a usage plan of a given plan Id.
--   
--   <i>See:</i> <a>deleteUsagePlan</a> smart constructor.
data DeleteUsagePlan

-- | <ul>
--   <li><i>Required</i> The Id of the to-be-deleted usage plan.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteUsagePlan.DeleteUsagePlanResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>dsStageName</a> - [Required] The name of the <a>Stage</a>
--   resource to delete.</li>
--   </ul>
deleteStage :: Text -> Text -> DeleteStage

-- | Requests API Gateway to delete a <a>Stage</a> resource.
--   
--   <i>See:</i> <a>deleteStage</a> smart constructor.
data DeleteStage

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
dsRestAPIId :: Lens' DeleteStage Text

-- | <ul>
--   <li><i>Required</i> The name of the <a>Stage</a> resource to
--   delete.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteStage.DeleteStageResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
deleteRestAPI :: Text -> DeleteRestAPI

-- | Request to delete the specified API from your collection.
--   
--   <i>See:</i> <a>deleteRestAPI</a> smart constructor.
data DeleteRestAPI

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteRestAPI.DeleteRestAPIResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>drResourceId</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
drRestAPIId :: Lens' DeleteResource Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Resource</a>
--   resource.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteResource.DeleteResourceResponse
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


-- | Deletes a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
module Network.AWS.APIGateway.DeleteRequestValidator

-- | Creates a value of <a>DeleteRequestValidator</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>drvRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>drvRequestValidatorId</a> - [Required] The identifier of the
--   <a>RequestValidator</a> to be deleted.</li>
--   </ul>
deleteRequestValidator :: Text -> Text -> DeleteRequestValidator

-- | Deletes a specified <a>RequestValidator</a> of a given
--   <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>deleteRequestValidator</a> smart constructor.
data DeleteRequestValidator

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
drvRestAPIId :: Lens' DeleteRequestValidator Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>RequestValidator</a> to
--   be deleted.</li>
--   </ul>
drvRequestValidatorId :: Lens' DeleteRequestValidator Text

-- | Creates a value of <a>DeleteRequestValidatorResponse</a> with the
--   minimum fields required to make a request.
deleteRequestValidatorResponse :: DeleteRequestValidatorResponse

-- | <i>See:</i> <a>deleteRequestValidatorResponse</a> smart constructor.
data DeleteRequestValidatorResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Data.Data.Data Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance GHC.Show.Show Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance GHC.Read.Read Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidatorResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteRequestValidator.DeleteRequestValidator


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>dModelName</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
dRestAPIId :: Lens' DeleteModel Text

-- | <ul>
--   <li><i>Required</i> The name of the model to delete.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteModel.DeleteModelResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>dmResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>MethodResponse</a> resource.</li>
--   <li><a>dmHttpMethod</a> - [Required] The HTTP verb of the
--   <a>Method</a> resource.</li>
--   <li><a>dmStatusCode</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
dmRestAPIId :: Lens' DeleteMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The <a>Resource</a> identifier for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
dmResourceId :: Lens' DeleteMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The HTTP verb of the <a>Method</a> resource.</li>
--   </ul>
dmHttpMethod :: Lens' DeleteMethodResponse Text

-- | <ul>
--   <li><i>Required</i> The status code identifier for the
--   <a>MethodResponse</a> resource.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethodResponse.DeleteMethodResponseResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>dmmResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>Method</a> resource.</li>
--   <li><a>dmmHttpMethod</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
dmmRestAPIId :: Lens' DeleteMethod Text

-- | <ul>
--   <li><i>Required</i> The <a>Resource</a> identifier for the
--   <a>Method</a> resource.</li>
--   </ul>
dmmResourceId :: Lens' DeleteMethod Text

-- | <ul>
--   <li><i>Required</i> The HTTP verb of the <a>Method</a> resource.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteMethod.DeleteMethodResponse'
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>diResourceId</a> - [Required] Specifies a delete integration
--   response request's resource identifier.</li>
--   <li><a>diHttpMethod</a> - [Required] Specifies a delete integration
--   response request's HTTP method.</li>
--   <li><a>diStatusCode</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
diRestAPIId :: Lens' DeleteIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a delete integration response request's
--   resource identifier.</li>
--   </ul>
diResourceId :: Lens' DeleteIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a delete integration response request's
--   HTTP method.</li>
--   </ul>
diHttpMethod :: Lens' DeleteIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies a delete integration response request's
--   status code.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegrationResponse.DeleteIntegrationResponseResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>delResourceId</a> - [Required] Specifies a delete integration
--   request's resource identifier.</li>
--   <li><a>delHttpMethod</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
delRestAPIId :: Lens' DeleteIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a delete integration request's resource
--   identifier.</li>
--   </ul>
delResourceId :: Lens' DeleteIntegration Text

-- | <ul>
--   <li><i>Required</i> Specifies a delete integration request's HTTP
--   method.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteIntegration.DeleteIntegrationResponse'
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


-- | Clears any customization of a <a>GatewayResponse</a> of a specified
--   response type on the given <tt>RestApi</tt> and resets it with the
--   default settings.
module Network.AWS.APIGateway.DeleteGatewayResponse

-- | Creates a value of <a>DeleteGatewayResponse</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>dgRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>dgResponseType</a> - [Required] The response type of the
--   associated <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
deleteGatewayResponse :: Text -> GatewayResponseType -> DeleteGatewayResponse

-- | Clears any customization of a <a>GatewayResponse</a> of a specified
--   response type on the given <tt>RestApi</tt> and resets it with the
--   default settings.
--   
--   <i>See:</i> <a>deleteGatewayResponse</a> smart constructor.
data DeleteGatewayResponse

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
dgRestAPIId :: Lens' DeleteGatewayResponse Text

-- | <ul>
--   <li><i>Required</i> The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
dgResponseType :: Lens' DeleteGatewayResponse GatewayResponseType

-- | Creates a value of <a>DeleteGatewayResponseResponse</a> with the
--   minimum fields required to make a request.
deleteGatewayResponseResponse :: DeleteGatewayResponseResponse

-- | <i>See:</i> <a>deleteGatewayResponseResponse</a> smart constructor.
data DeleteGatewayResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Data.Data.Data Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance GHC.Show.Show Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance GHC.Read.Read Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponseResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.DeleteGatewayResponse.DeleteGatewayResponse


-- | 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The name of the <a>DomainName</a> resource to be
--   deleted.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDomainName.DeleteDomainNameResponse
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


-- | 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 string identifier of the
--   associated <tt>RestApi</tt> .</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 string identifier of the associated
--   <tt>RestApi</tt> .</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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationVersion.DeleteDocumentationVersionResponse
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


-- | 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] The string identifier of the
--   associated <tt>RestApi</tt> .</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> The string identifier of the associated
--   <tt>RestApi</tt> .</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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDocumentationPart.DeleteDocumentationPartResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>ddDeploymentId</a> - [Required] The identifier of the
--   <a>Deployment</a> resource to delete.</li>
--   </ul>
deleteDeployment :: Text -> Text -> DeleteDeployment

-- | Requests API Gateway to delete a <a>Deployment</a> resource.
--   
--   <i>See:</i> <a>deleteDeployment</a> smart constructor.
data DeleteDeployment

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
ddRestAPIId :: Lens' DeleteDeployment Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Deployment</a> resource
--   to delete.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteDeployment.DeleteDeploymentResponse
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


-- | 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>ClientCertificate</a>
--   resource to be deleted.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteClientCertificate.DeleteClientCertificateResponse
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


-- | 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> - [Required] The domain name of the
--   <a>BasePathMapping</a> resource to delete.</li>
--   <li><a>dbpmBasePath</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The domain name of the <a>BasePathMapping</a>
--   resource to delete.</li>
--   </ul>
dbpmDomainName :: Lens' DeleteBasePathMapping Text

-- | <ul>
--   <li><i>Required</i> The base path name of the <a>BasePathMapping</a>
--   resource to delete.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteBasePathMapping.DeleteBasePathMappingResponse
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


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>daAuthorizerId</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
daRestAPIId :: Lens' DeleteAuthorizer Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAuthorizer.DeleteAuthorizerResponse
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


-- | 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> - [Required] 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

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>ApiKey</tt> resource to
--   be deleted.</li>
--   </ul>
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 Control.DeepSeq.NFData Network.AWS.APIGateway.DeleteAPIKey.DeleteAPIKeyResponse
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


-- | Creates a VPC link, under the caller's account in a selected region,
--   in an asynchronous operation that typically takes 2-4 minutes to
--   complete and become operational. The caller must have permissions to
--   create and update VPC Endpoint services.
module Network.AWS.APIGateway.CreateVPCLink

-- | Creates a value of <a>CreateVPCLink</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>cvlDescription</a> - The description of the VPC link.</li>
--   <li><a>cvlName</a> - [Required] The name used to label and identify
--   the VPC link.</li>
--   <li><a>cvlTargetARNs</a> - [Required] The ARNs of network load
--   balancers of the VPC targeted by the VPC link. The network load
--   balancers must be owned by the same AWS account of the API owner.</li>
--   </ul>
createVPCLink :: Text -> CreateVPCLink

-- | Creates a VPC link, under the caller's account in a selected region,
--   in an asynchronous operation that typically takes 2-4 minutes to
--   complete and become operational. The caller must have permissions to
--   create and update VPC Endpoint services.
--   
--   <i>See:</i> <a>createVPCLink</a> smart constructor.
data CreateVPCLink

-- | The description of the VPC link.
cvlDescription :: Lens' CreateVPCLink (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The name used to label and identify the VPC
--   link.</li>
--   </ul>
cvlName :: Lens' CreateVPCLink Text

-- | <ul>
--   <li><i>Required</i> The ARNs of network load balancers of the VPC
--   targeted by the VPC link. The network load balancers must be owned by
--   the same AWS account of the API owner.</li>
--   </ul>
cvlTargetARNs :: Lens' CreateVPCLink [Text]

-- | Creates a value of <a>VPCLink</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>vlStatus</a> - The status of the VPC link. The valid values are
--   <tt>AVAILABLE</tt> , <tt>PENDING</tt> , <tt>DELETING</tt> , or
--   <tt>FAILED</tt> . Deploying an API will wait if the status is
--   <tt>PENDING</tt> and will fail if the status is <tt>DELETING</tt>
--   .</li>
--   <li><a>vlTargetARNs</a> - The ARNs of network load balancers of the
--   VPC targeted by the VPC link. The network load balancers must be owned
--   by the same AWS account of the API owner.</li>
--   <li><a>vlName</a> - The name used to label and identify the VPC
--   link.</li>
--   <li><a>vlStatusMessage</a> - A description about the VPC link
--   status.</li>
--   <li><a>vlId</a> - The identifier of the <tt>VpcLink</tt> . It is used
--   in an <a>Integration</a> to reference this <tt>VpcLink</tt> .</li>
--   <li><a>vlDescription</a> - The description of the VPC link.</li>
--   </ul>
vpcLink :: VPCLink

-- | A API Gateway VPC link for a <tt>RestApi</tt> to access resources in
--   an Amazon Virtual Private Cloud (VPC).
--   
--   To enable access to a resource in an Amazon Virtual Private Cloud
--   through Amazon API Gateway, you, as an API developer, create a
--   <tt>VpcLink</tt> resource targeted for one or more network load
--   balancers of the VPC and then integrate an API method with a private
--   integration that uses the <tt>VpcLink</tt> . The private integration
--   has an integration type of <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> and
--   has a connection type of <tt>VPC_LINK</tt> . The integration uses the
--   <tt>connectionId</tt> property to identify the <tt>VpcLink</tt> used.
--   
--   <i>See:</i> <a>vpcLink</a> smart constructor.
data VPCLink

-- | The status of the VPC link. The valid values are <tt>AVAILABLE</tt> ,
--   <tt>PENDING</tt> , <tt>DELETING</tt> , or <tt>FAILED</tt> . Deploying
--   an API will wait if the status is <tt>PENDING</tt> and will fail if
--   the status is <tt>DELETING</tt> .
vlStatus :: Lens' VPCLink (Maybe VPCLinkStatus)

-- | The ARNs of network load balancers of the VPC targeted by the VPC
--   link. The network load balancers must be owned by the same AWS account
--   of the API owner.
vlTargetARNs :: Lens' VPCLink [Text]

-- | The name used to label and identify the VPC link.
vlName :: Lens' VPCLink (Maybe Text)

-- | A description about the VPC link status.
vlStatusMessage :: Lens' VPCLink (Maybe Text)

-- | The identifier of the <tt>VpcLink</tt> . It is used in an
--   <a>Integration</a> to reference this <tt>VpcLink</tt> .
vlId :: Lens' VPCLink (Maybe Text)

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


-- | 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> - [Required] 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> - [Required] The identifier of a
--   <a>UsagePlanKey</a> resource for a plan customer.</li>
--   <li><a>cupkKeyType</a> - [Required] 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

-- | <ul>
--   <li><i>Required</i> 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>
--   </ul>
cupkUsagePlanId :: Lens' CreateUsagePlanKey Text

-- | <ul>
--   <li><i>Required</i> The identifier of a <a>UsagePlanKey</a> resource
--   for a plan customer.</li>
--   </ul>
cupkKeyId :: Lens' CreateUsagePlanKey Text

-- | <ul>
--   <li><i>Required</i> The type of a <a>UsagePlanKey</a> resource for a
--   plan customer.</li>
--   </ul>
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> - [Required] 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)

-- | <ul>
--   <li><i>Required</i> The name of the usage plan.</li>
--   </ul>
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>cVariables</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>cDocumentationVersion</a> - The version of the associated API
--   documentation.</li>
--   <li><a>cCacheClusterSize</a> - The stage's cache cluster size.</li>
--   <li><a>cCanarySettings</a> - The canary deployment settings of this
--   stage.</li>
--   <li><a>cCacheClusterEnabled</a> - Whether cache clustering is enabled
--   for the stage.</li>
--   <li><a>cDescription</a> - The description of the <a>Stage</a>
--   resource.</li>
--   <li><a>cTags</a> - The key-value map of strings. The valid character
--   set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and
--   must not start with <tt>aws:</tt> . The tag value can be up to 256
--   characters.</li>
--   <li><a>cRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>cStageName</a> - [Required] The name for the <a>Stage</a>
--   resource.</li>
--   <li><a>cDeploymentId</a> - [Required] The identifier of the
--   <a>Deployment</a> resource for the <a>Stage</a> resource.</li>
--   </ul>
createStage :: Text -> Text -> Text -> CreateStage

-- | Requests 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> .
cVariables :: Lens' CreateStage (HashMap Text Text)

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

-- | The stage's cache cluster size.
cCacheClusterSize :: Lens' CreateStage (Maybe CacheClusterSize)

-- | The canary deployment settings of this stage.
cCanarySettings :: Lens' CreateStage (Maybe CanarySettings)

-- | Whether cache clustering is enabled for the stage.
cCacheClusterEnabled :: Lens' CreateStage (Maybe Bool)

-- | The description of the <a>Stage</a> resource.
cDescription :: Lens' CreateStage (Maybe Text)

-- | The key-value map of strings. The valid character set is
--   [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not
--   start with <tt>aws:</tt> . The tag value can be up to 256 characters.
cTags :: Lens' CreateStage (HashMap Text Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
cRestAPIId :: Lens' CreateStage Text

-- | <ul>
--   <li><i>Required</i> The name for the <a>Stage</a> resource.</li>
--   </ul>
cStageName :: Lens' CreateStage Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Deployment</a> resource
--   for the <a>Stage</a> resource.</li>
--   </ul>
cDeploymentId :: 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>sAccessLogSettings</a> - Settings for logging access in this
--   stage.</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 timestamp when the stage was
--   created.</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 timestamp when the stage last
--   updated.</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCanarySettings</a> - Settings for the canary deployment in
--   this stage.</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 API
--   Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   <li><a>sTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</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)

-- | Settings for logging access in this stage.
sAccessLogSettings :: Lens' Stage (Maybe AccessLogSettings)

-- | 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 timestamp when the stage was created.
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 timestamp when the stage last updated.
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

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

-- | Settings for the canary deployment in this stage.
sCanarySettings :: Lens' Stage (Maybe CanarySettings)

-- | 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 API Gateway.
sStageName :: Lens' Stage (Maybe Text)

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

-- | The collection of tags. Each tag element is associated with a given
--   resource.
sTags :: Lens' Stage (HashMap Text 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>craMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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>craApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>craCloneFrom</a> - The ID of the <tt>RestApi</tt> that you want
--   to clone from.</li>
--   <li><a>craPolicy</a> - <a>Method</a></li>
--   <li><a>craEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</li>
--   <li><a>craDescription</a> - The description of the <tt>RestApi</tt>
--   .</li>
--   <li><a>craName</a> - [Required] 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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
craMinimumCompressionSize :: Lens' CreateRestAPI (Maybe Int)

-- | 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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
craApiKeySource :: Lens' CreateRestAPI (Maybe APIKeySourceType)

-- | The ID of the <tt>RestApi</tt> that you want to clone from.
craCloneFrom :: Lens' CreateRestAPI (Maybe Text)

-- | <a>Method</a>
craPolicy :: Lens' CreateRestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
craEndpointConfiguration :: Lens' CreateRestAPI (Maybe EndpointConfiguration)

-- | The description of the <tt>RestApi</tt> .
craDescription :: Lens' CreateRestAPI (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The name of the <tt>RestApi</tt> .</li>
--   </ul>
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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>crParentId</a> - [Required] 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 API Gateway to create a <a>Resource</a> resource.
--   
--   <i>See:</i> <a>createResource</a> smart constructor.
data CreateResource

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
crRestAPIId :: Lens' CreateResource Text

-- | <ul>
--   <li><i>Required</i> The parent resource's identifier.</li>
--   </ul>
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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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


-- | Creates a <tt>ReqeustValidator</tt> of a given <tt>RestApi</tt> .
module Network.AWS.APIGateway.CreateRequestValidator

-- | Creates a value of <a>CreateRequestValidator</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>crvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters, <tt>true</tt> , or not
--   <tt>false</tt> .</li>
--   <li><a>crvName</a> - The name of the to-be-created
--   <a>RequestValidator</a> .</li>
--   <li><a>crvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate request body according to the configured model schema for
--   the method (<tt>true</tt> ) or not (<tt>false</tt> ).</li>
--   <li><a>crvRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
createRequestValidator :: Text -> CreateRequestValidator

-- | Creates a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>createRequestValidator</a> smart constructor.
data CreateRequestValidator

-- | A Boolean flag to indicate whether to validate request parameters,
--   <tt>true</tt> , or not <tt>false</tt> .
crvValidateRequestParameters :: Lens' CreateRequestValidator (Maybe Bool)

-- | The name of the to-be-created <a>RequestValidator</a> .
crvName :: Lens' CreateRequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate request body according
--   to the configured model schema for the method (<tt>true</tt> ) or not
--   (<tt>false</tt> ).
crvValidateRequestBody :: Lens' CreateRequestValidator (Maybe Bool)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
crvRestAPIId :: Lens' CreateRequestValidator Text

-- | Creates a value of <a>RequestValidator</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>rvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters (<tt>true</tt> ) or not
--   (<tt>false</tt> ).</li>
--   <li><a>rvName</a> - The name of this <a>RequestValidator</a></li>
--   <li><a>rvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate a request body according to the configured <a>Model</a>
--   schema.</li>
--   <li><a>rvId</a> - The identifier of this <a>RequestValidator</a>
--   .</li>
--   </ul>
requestValidator :: RequestValidator

-- | A set of validation rules for incoming <a>Method</a> requests.
--   
--   In Swagger, a <a>RequestValidator</a> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators.requestValidator</a> object.
--   It the referenced using the
--   <a>x-amazon-apigateway-request-validator</a> property.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>requestValidator</a> smart constructor.
data RequestValidator

-- | A Boolean flag to indicate whether to validate request parameters
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
rvValidateRequestParameters :: Lens' RequestValidator (Maybe Bool)

-- | The name of this <a>RequestValidator</a>
rvName :: Lens' RequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate a request body
--   according to the configured <a>Model</a> schema.
rvValidateRequestBody :: Lens' RequestValidator (Maybe Bool)

-- | The identifier of this <a>RequestValidator</a> .
rvId :: Lens' RequestValidator (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Data.Data.Data Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance GHC.Show.Show Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance GHC.Read.Read Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance GHC.Classes.Eq Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Control.DeepSeq.NFData Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.CreateRequestValidator.CreateRequestValidator


-- | 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
--   4</a> model.</li>
--   <li><a>cmDescription</a> - The description of the model.</li>
--   <li><a>cmRestAPIId</a> - [Required] The <tt>RestApi</tt> identifier
--   under which the <a>Model</a> will be created.</li>
--   <li><a>cmName</a> - [Required] The name of the model. Must be
--   alphanumeric.</li>
--   <li><a>cmContentType</a> - [Required] 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 4</a> model.
cmSchema :: Lens' CreateModel (Maybe Text)

-- | The description of the model.
cmDescription :: Lens' CreateModel (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The <tt>RestApi</tt> identifier under which the
--   <a>Model</a> will be created.</li>
--   </ul>
cmRestAPIId :: Lens' CreateModel Text

-- | <ul>
--   <li><i>Required</i> The name of the model. Must be alphanumeric.</li>
--   </ul>
cmName :: Lens' CreateModel Text

-- | <ul>
--   <li><i>Required</i> The content-type for the model.</li>
--   </ul>
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
--   4</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. Must be an alphanumeric
--   string.</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 4</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. Must be an alphanumeric string.
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>cdnCertificateName</a> - The user-friendly name of the
--   certificate that will be used by edge-optimized endpoint for this
--   domain name.</li>
--   <li><a>cdnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by regional endpoint for this domain
--   name. AWS Certificate Manager is the only supported source.</li>
--   <li><a>cdnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>cdnCertificatePrivateKey</a> - [Deprecated] Your edge-optimized
--   endpoint's domain name certificate's private key.</li>
--   <li><a>cdnRegionalCertificateName</a> - The user-friendly name of the
--   certificate that will be used by regional endpoint for this domain
--   name.</li>
--   <li><a>cdnCertificateBody</a> - [Deprecated] The body of the server
--   certificate that will be used by edge-optimized endpoint for this
--   domain name provided by your certificate authority.</li>
--   <li><a>cdnCertificateChain</a> - [Deprecated] The intermediate
--   certificates and optionally the root certificate, one after the other
--   without any blank lines, used by an edge-optimized endpoint for this
--   domain name. 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>
--   <li><a>cdnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   <li><a>cdnDomainName</a> - [Required] The name of the
--   <a>DomainName</a> resource.</li>
--   </ul>
createDomainName :: Text -> CreateDomainName

-- | A request to create a new domain name.
--   
--   <i>See:</i> <a>createDomainName</a> smart constructor.
data CreateDomainName

-- | The user-friendly name of the certificate that will be used by
--   edge-optimized endpoint for this domain name.
cdnCertificateName :: Lens' CreateDomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   regional endpoint for this domain name. AWS Certificate Manager is the
--   only supported source.
cdnRegionalCertificateARN :: Lens' CreateDomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
cdnCertificateARN :: Lens' CreateDomainName (Maybe Text)

-- | <ul>
--   <li><i>Deprecated</i> Your edge-optimized endpoint's domain name
--   certificate's private key.</li>
--   </ul>
cdnCertificatePrivateKey :: Lens' CreateDomainName (Maybe Text)

-- | The user-friendly name of the certificate that will be used by
--   regional endpoint for this domain name.
cdnRegionalCertificateName :: Lens' CreateDomainName (Maybe Text)

-- | <ul>
--   <li><i>Deprecated</i> The body of the server certificate that will be
--   used by edge-optimized endpoint for this domain name provided by your
--   certificate authority.</li>
--   </ul>
cdnCertificateBody :: Lens' CreateDomainName (Maybe Text)

-- | <ul>
--   <li><i>Deprecated</i> The intermediate certificates and optionally the
--   root certificate, one after the other without any blank lines, used by
--   an edge-optimized endpoint for this domain name. 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>
cdnCertificateChain :: Lens' CreateDomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
cdnEndpointConfiguration :: Lens' CreateDomainName (Maybe EndpointConfiguration)

-- | <ul>
--   <li><i>Required</i> The name of the <a>DomainName</a> resource.</li>
--   </ul>
cdnDomainName :: 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>dnRegionalHostedZoneId</a> - The region-specific Amazon Route
--   53 Hosted Zone ID of the regional endpoint. For more information, see
--   <a>Set up a Regional Custom Domain Name</a> and <a>AWS Regions and
--   Endpoints for API Gateway</a> .</li>
--   <li><a>dnCertificateName</a> - The name of the certificate that will
--   be used by edge-optimized endpoint for this domain name.</li>
--   <li><a>dnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used for validating the regional domain name.
--   AWS Certificate Manager is the only supported source.</li>
--   <li><a>dnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>dnDistributionHostedZoneId</a> - The region-agnostic Amazon
--   Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid
--   value is <tt>Z2FDTNDATAQYW2</tt> for all the regions. For more
--   information, see <a>Set up a Regional Custom Domain Name</a> and
--   <a>AWS Regions and Endpoints for API Gateway</a> .</li>
--   <li><a>dnDomainName</a> - The custom domain name as an API host name,
--   for example, <tt>my-api.example.com</tt> .</li>
--   <li><a>dnRegionalCertificateName</a> - The name of the certificate
--   that will be used for validating the regional domain name.</li>
--   <li><a>dnRegionalDomainName</a> - The domain name associated with the
--   regional endpoint for this custom domain name. You set up this
--   association by adding a DNS record that points the custom domain name
--   to this regional domain name. The regional domain name is returned by
--   API Gateway when you create a regional endpoint.</li>
--   <li><a>dnCertificateUploadDate</a> - The timestamp when the
--   certificate that was used by edge-optimized endpoint for this domain
--   name was uploaded.</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution associated with this custom domain name for an
--   edge-optimized endpoint. You set up this association when adding a DNS
--   record pointing the custom domain name to this distribution name. For
--   more information about CloudFront distributions, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   <li><a>dnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   </ul>
domainName :: DomainName

-- | Represents a custom domain name as a user-friendly host name of an API
--   (<tt>RestApi</tt> ).
--   
--   When you deploy an API, API Gateway creates a default host name for
--   the API. This default API host name is of the
--   <tt>{restapi-id}.execute-api.{region}.amazonaws.com</tt> format. With
--   the default host name, you can access the API's root resource with the
--   URL of
--   <tt><a>https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/</a></tt>
--   . When you set up a custom domain name of <tt>apis.example.com</tt>
--   for this API, you can then access the same resource using the URL of
--   the <tt><a>https://apis.examples.com/myApi</a></tt> , where
--   <tt>myApi</tt> is the base path mapping (<a>BasePathMapping</a> ) of
--   your API under the custom domain name.
--   
--   <a>Set a Custom Host Name for an API</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The region-specific Amazon Route 53 Hosted Zone ID of the regional
--   endpoint. For more information, see <a>Set up a Regional Custom Domain
--   Name</a> and <a>AWS Regions and Endpoints for API Gateway</a> .
dnRegionalHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used by edge-optimized
--   endpoint for this domain name.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used for
--   validating the regional domain name. AWS Certificate Manager is the
--   only supported source.
dnRegionalCertificateARN :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
dnCertificateARN :: Lens' DomainName (Maybe Text)

-- | The region-agnostic Amazon Route 53 Hosted Zone ID of the
--   edge-optimized endpoint. The valid value is <tt>Z2FDTNDATAQYW2</tt>
--   for all the regions. For more information, see <a>Set up a Regional
--   Custom Domain Name</a> and <a>AWS Regions and Endpoints for API
--   Gateway</a> .
dnDistributionHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The custom domain name as an API host name, for example,
--   <tt>my-api.example.com</tt> .
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used for validating the
--   regional domain name.
dnRegionalCertificateName :: Lens' DomainName (Maybe Text)

-- | The domain name associated with the regional endpoint for this custom
--   domain name. You set up this association by adding a DNS record that
--   points the custom domain name to this regional domain name. The
--   regional domain name is returned by API Gateway when you create a
--   regional endpoint.
dnRegionalDomainName :: Lens' DomainName (Maybe Text)

-- | The timestamp when the certificate that was used by edge-optimized
--   endpoint for this domain name was uploaded.
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution associated with
--   this custom domain name for an edge-optimized endpoint. You set up
--   this association when adding a DNS record pointing the custom domain
--   name to this distribution name. For more information about CloudFront
--   distributions, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
dnEndpointConfiguration :: Lens' DomainName (Maybe EndpointConfiguration)
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] The string identifier of the
--   associated <tt>RestApi</tt> .</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> The string identifier of the associated
--   <tt>RestApi</tt> .</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 string identifier of the
--   associated <tt>RestApi</tt> .</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 string identifier of the associated
--   <tt>RestApi</tt> .</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 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 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>cdCanarySettings</a> - The input configuration for the canary
--   deployment when the deployment is a canary release deployment.</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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
createDeployment :: Text -> CreateDeployment

-- | Requests 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)

-- | The input configuration for the canary deployment when the deployment
--   is a canary release deployment.
cdCanarySettings :: Lens' CreateDeployment (Maybe DeploymentCanarySettings)

-- | 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)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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> - [Required] The domain name of the
--   <a>BasePathMapping</a> resource to create.</li>
--   <li><a>cbpmRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   </ul>
createBasePathMapping :: Text -> Text -> CreateBasePathMapping

-- | Requests 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)

-- | <ul>
--   <li><i>Required</i> The domain name of the <a>BasePathMapping</a>
--   resource to create.</li>
--   </ul>
cbpmDomainName :: Lens' CreateBasePathMapping Text

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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 associated 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 string identifier of the associated
--   <tt>RestApi</tt> .</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 associated 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 string identifier of the associated <tt>RestApi</tt> .
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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>caIdentityValidationExpression</a> - A validation expression
--   for the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>caProviderARNs</a> - A list of the Amazon Cognito user pool
--   ARNs for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is
--   of this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</li>
--   <li><a>caAuthorizerResultTtlInSeconds</a> - The TTL in seconds of
--   cached authorizer results. If it equals 0, authorization caching is
--   disabled. If it is 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>caAuthType</a> - Optional customer-defined field, used in
--   Swagger imports and exports without functional impact.</li>
--   <li><a>caIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>caAuthorizerCredentials</a> - Specifies the required
--   credentials as an IAM role for API Gateway to invoke the authorizer.
--   To specify an IAM role for API Gateway to assume, use the role's
--   Amazon Resource Name (ARN). To use resource-based permissions on the
--   Lambda function, specify null.</li>
--   <li><a>caRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>caName</a> - [Required] The name of the authorizer.</li>
--   <li><a>caType</a> - [Required] The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   </ul>
createAuthorizer :: Text -> Text -> AuthorizerType -> 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
caAuthorizerURI :: Lens' CreateAuthorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
caIdentityValidationExpression :: Lens' CreateAuthorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
caProviderARNs :: Lens' CreateAuthorizer [Text]

-- | The TTL in seconds of cached authorizer results. If it equals 0,
--   authorization caching is disabled. If it is 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.
caAuthorizerResultTtlInSeconds :: Lens' CreateAuthorizer (Maybe Int)

-- | Optional customer-defined field, used in Swagger imports and exports
--   without functional impact.
caAuthType :: Lens' CreateAuthorizer (Maybe Text)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
caIdentitySource :: Lens' CreateAuthorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for API Gateway to
--   assume, use the role's Amazon Resource Name (ARN). To use
--   resource-based permissions on the Lambda function, specify null.
caAuthorizerCredentials :: Lens' CreateAuthorizer (Maybe Text)

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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 authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   </ul>
caType :: Lens' CreateAuthorizer AuthorizerType

-- | 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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>aProviderARNs</a> - A list of the Amazon Cognito user pool ARNs
--   for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of
--   this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</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 it equals 0, authorization caching is
--   disabled. If it is 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 and exports without functional impact.</li>
--   <li><a>aType</a> - The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   <li><a>aIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the required credentials
--   as an IAM role for API Gateway to invoke the authorizer. To specify an
--   IAM role for 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
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 it equals 0,
--   authorization caching is disabled. If it is 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 and exports
--   without functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for 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 timestamp when the API Key was
--   created.</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> - The timestamp when the API Key was last
--   updated.</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 timestamp when the API Key was created.
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]

-- | The timestamp when the API Key was last updated.
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


-- | Removes a tag from a given resource.
module Network.AWS.APIGateway.UntagResource

-- | Creates a value of <a>UntagResource</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>urResourceARN</a> - [Required] The ARN of a resource that can
--   be tagged. The resource ARN must be URL-encoded. At present,
--   <a>Stage</a> is the only taggable resource.</li>
--   <li><a>urTagKeys</a> - [Required] The Tag keys to delete.</li>
--   </ul>
untagResource :: Text -> UntagResource

-- | Removes a tag from a given resource.
--   
--   <i>See:</i> <a>untagResource</a> smart constructor.
data UntagResource

-- | <ul>
--   <li><i>Required</i> The ARN of a resource that can be tagged. The
--   resource ARN must be URL-encoded. At present, <a>Stage</a> is the only
--   taggable resource.</li>
--   </ul>
urResourceARN :: Lens' UntagResource Text

-- | <ul>
--   <li><i>Required</i> The Tag keys to delete.</li>
--   </ul>
urTagKeys :: Lens' UntagResource [Text]

-- | Creates a value of <a>UntagResourceResponse</a> with the minimum
--   fields required to make a request.
untagResourceResponse :: UntagResourceResponse

-- | <i>See:</i> <a>untagResourceResponse</a> smart constructor.
data UntagResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance Data.Data.Data Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance GHC.Show.Show Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance GHC.Read.Read Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance GHC.Generics.Generic Network.AWS.APIGateway.UntagResource.UntagResource
instance Data.Data.Data Network.AWS.APIGateway.UntagResource.UntagResource
instance GHC.Show.Show Network.AWS.APIGateway.UntagResource.UntagResource
instance GHC.Read.Read Network.AWS.APIGateway.UntagResource.UntagResource
instance GHC.Classes.Eq Network.AWS.APIGateway.UntagResource.UntagResource
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UntagResource.UntagResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UntagResource.UntagResourceResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UntagResource.UntagResource
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UntagResource.UntagResource
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UntagResource.UntagResource
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UntagResource.UntagResource
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UntagResource.UntagResource


-- | 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> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>ApiKey</tt> resource to
--   be updated.</li>
--   </ul>
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 timestamp when the API Key was
--   created.</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> - The timestamp when the API Key was last
--   updated.</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 timestamp when the API Key was created.
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]

-- | The timestamp when the API Key was last updated.
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 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 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>uaaAuthorizerId</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
uaaRestAPIId :: Lens' UpdateAuthorizer Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Authorizer</a>
--   resource.</li>
--   </ul>
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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>aProviderARNs</a> - A list of the Amazon Cognito user pool ARNs
--   for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of
--   this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</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 it equals 0, authorization caching is
--   disabled. If it is 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 and exports without functional impact.</li>
--   <li><a>aType</a> - The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   <li><a>aIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the required credentials
--   as an IAM role for API Gateway to invoke the authorizer. To specify an
--   IAM role for 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
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 it equals 0,
--   authorization caching is disabled. If it is 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 and exports
--   without functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for 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> - [Required] The domain name of the
--   <a>BasePathMapping</a> resource to change.</li>
--   <li><a>ubpmBasePath</a> - [Required] 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]

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

-- | <ul>
--   <li><i>Required</i> The base path of the <a>BasePathMapping</a>
--   resource to change.</li>
--   </ul>
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 associated 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 string identifier of the associated
--   <tt>RestApi</tt> .</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 associated 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 string identifier of the associated <tt>RestApi</tt> .
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> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>ClientCertificate</a>
--   resource to be updated.</li>
--   </ul>
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 timestamp when the client certificate
--   was created.</li>
--   <li><a>ccExpirationDate</a> - The timestamp when the client
--   certificate will expire.</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 to authenticate an API by the backend
--   server. To authenticate an API client (or user), use IAM roles and
--   policies, a custom <a>Authorizer</a> or an Amazon Cognito user
--   pool.<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 timestamp when the client certificate was created.
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The timestamp when the client certificate will expire.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</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 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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 string identifier of the
--   associated <tt>RestApi</tt> .</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 string identifier of the associated
--   <tt>RestApi</tt> .</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 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 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 string identifier of the
--   associated <tt>RestApi</tt> ..</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 string identifier of the associated
--   <tt>RestApi</tt> ..</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> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The name of the <a>DomainName</a> resource to be
--   changed.</li>
--   </ul>
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>dnRegionalHostedZoneId</a> - The region-specific Amazon Route
--   53 Hosted Zone ID of the regional endpoint. For more information, see
--   <a>Set up a Regional Custom Domain Name</a> and <a>AWS Regions and
--   Endpoints for API Gateway</a> .</li>
--   <li><a>dnCertificateName</a> - The name of the certificate that will
--   be used by edge-optimized endpoint for this domain name.</li>
--   <li><a>dnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used for validating the regional domain name.
--   AWS Certificate Manager is the only supported source.</li>
--   <li><a>dnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>dnDistributionHostedZoneId</a> - The region-agnostic Amazon
--   Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid
--   value is <tt>Z2FDTNDATAQYW2</tt> for all the regions. For more
--   information, see <a>Set up a Regional Custom Domain Name</a> and
--   <a>AWS Regions and Endpoints for API Gateway</a> .</li>
--   <li><a>dnDomainName</a> - The custom domain name as an API host name,
--   for example, <tt>my-api.example.com</tt> .</li>
--   <li><a>dnRegionalCertificateName</a> - The name of the certificate
--   that will be used for validating the regional domain name.</li>
--   <li><a>dnRegionalDomainName</a> - The domain name associated with the
--   regional endpoint for this custom domain name. You set up this
--   association by adding a DNS record that points the custom domain name
--   to this regional domain name. The regional domain name is returned by
--   API Gateway when you create a regional endpoint.</li>
--   <li><a>dnCertificateUploadDate</a> - The timestamp when the
--   certificate that was used by edge-optimized endpoint for this domain
--   name was uploaded.</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution associated with this custom domain name for an
--   edge-optimized endpoint. You set up this association when adding a DNS
--   record pointing the custom domain name to this distribution name. For
--   more information about CloudFront distributions, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   <li><a>dnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   </ul>
domainName :: DomainName

-- | Represents a custom domain name as a user-friendly host name of an API
--   (<tt>RestApi</tt> ).
--   
--   When you deploy an API, API Gateway creates a default host name for
--   the API. This default API host name is of the
--   <tt>{restapi-id}.execute-api.{region}.amazonaws.com</tt> format. With
--   the default host name, you can access the API's root resource with the
--   URL of
--   <tt><a>https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/</a></tt>
--   . When you set up a custom domain name of <tt>apis.example.com</tt>
--   for this API, you can then access the same resource using the URL of
--   the <tt><a>https://apis.examples.com/myApi</a></tt> , where
--   <tt>myApi</tt> is the base path mapping (<a>BasePathMapping</a> ) of
--   your API under the custom domain name.
--   
--   <a>Set a Custom Host Name for an API</a>
--   
--   <i>See:</i> <a>domainName</a> smart constructor.
data DomainName

-- | The region-specific Amazon Route 53 Hosted Zone ID of the regional
--   endpoint. For more information, see <a>Set up a Regional Custom Domain
--   Name</a> and <a>AWS Regions and Endpoints for API Gateway</a> .
dnRegionalHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used by edge-optimized
--   endpoint for this domain name.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used for
--   validating the regional domain name. AWS Certificate Manager is the
--   only supported source.
dnRegionalCertificateARN :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
dnCertificateARN :: Lens' DomainName (Maybe Text)

-- | The region-agnostic Amazon Route 53 Hosted Zone ID of the
--   edge-optimized endpoint. The valid value is <tt>Z2FDTNDATAQYW2</tt>
--   for all the regions. For more information, see <a>Set up a Regional
--   Custom Domain Name</a> and <a>AWS Regions and Endpoints for API
--   Gateway</a> .
dnDistributionHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The custom domain name as an API host name, for example,
--   <tt>my-api.example.com</tt> .
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used for validating the
--   regional domain name.
dnRegionalCertificateName :: Lens' DomainName (Maybe Text)

-- | The domain name associated with the regional endpoint for this custom
--   domain name. You set up this association by adding a DNS record that
--   points the custom domain name to this regional domain name. The
--   regional domain name is returned by API Gateway when you create a
--   regional endpoint.
dnRegionalDomainName :: Lens' DomainName (Maybe Text)

-- | The timestamp when the certificate that was used by edge-optimized
--   endpoint for this domain name was uploaded.
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution associated with
--   this custom domain name for an edge-optimized endpoint. You set up
--   this association when adding a DNS record pointing the custom domain
--   name to this distribution name. For more information about CloudFront
--   distributions, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
dnEndpointConfiguration :: Lens' DomainName (Maybe EndpointConfiguration)
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


-- | Updates a <a>GatewayResponse</a> of a specified response type on the
--   given <tt>RestApi</tt> .
module Network.AWS.APIGateway.UpdateGatewayResponse

-- | Creates a value of <a>UpdateGatewayResponse</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>ugPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>ugRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>ugResponseType</a> - [Required] The response type of the
--   associated <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
updateGatewayResponse :: Text -> GatewayResponseType -> UpdateGatewayResponse

-- | Updates a <a>GatewayResponse</a> of a specified response type on the
--   given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>updateGatewayResponse</a> smart constructor.
data UpdateGatewayResponse

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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
ugRestAPIId :: Lens' UpdateGatewayResponse Text

-- | <ul>
--   <li><i>Required</i> The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   </ul>
ugResponseType :: Lens' UpdateGatewayResponse GatewayResponseType

-- | Creates a value of <a>GatewayResponse</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>gDefaultResponse</a> - A Boolean flag to indicate whether this
--   <a>GatewayResponse</a> is the default gateway response (<tt>true</tt>
--   ) or not (<tt>false</tt> ). A default gateway response is one
--   generated by API Gateway without any customization by an API
--   developer.</li>
--   <li><a>gResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>gResponseType</a> - The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   <li><a>gStatusCode</a> - The HTTP status code for this
--   <a>GatewayResponse</a> .</li>
--   <li><a>gResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   </ul>
gatewayResponse :: GatewayResponse

-- | A gateway response of a given response type and status code, with
--   optional response parameters and mapping templates.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   a Gateway Response of a given response type</b> <b>Request</b> This
--   example shows how to get a gateway response of the
--   <tt>MISSING_AUTHENTICATION_TOKEN</tt> type.
--   
--   @<tt>GET
--   <i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN
--   HTTP<i>1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application</i>json X-Amz-Date: 20170503T202516Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}<i>20170503</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
--   Cache-Control: no-cache Postman-Token:
--   3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 </tt> @ The response type is
--   specified as a URL path.
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:delete": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": false, "responseParameters": {
--   "gatewayresponse.header.x-request-path": "method.request.path.petId",
--   "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
--   "gatewayresponse.header.x-request-query":
--   "method.request.querystring.q",
--   "gatewayresponse.header.x-request-header":
--   "method.request.header.Accept" }, "responseTemplates": {
--   "application/json": "{n "message": $context.error.messageString,n
--   "type": "$context.error.responseType",n "stage": "$context.stage",n
--   "resourcePath": "$context.resourcePath",n "stageVariables.a":
--   "$stageVariables.a",n "statusCode": "'404'"n}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "404" }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>gatewayResponse</a> smart constructor.
data GatewayResponse

-- | A Boolean flag to indicate whether this <a>GatewayResponse</a> is the
--   default gateway response (<tt>true</tt> ) or not (<tt>false</tt> ). A
--   default gateway response is one generated by API Gateway without any
--   customization by an API developer.
gDefaultResponse :: Lens' GatewayResponse (Maybe Bool)

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
gResponseTemplates :: Lens' GatewayResponse (HashMap Text Text)

-- | The response type of the associated <a>GatewayResponse</a> . Valid
--   values are * ACCESS_DENIED * API_CONFIGURATION_ERROR *
--   AUTHORIZER_FAILURE * AUTHORIZER_CONFIGURATION_ERROR *
--   BAD_REQUEST_PARAMETERS * BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX
--   * EXPIRED_TOKEN * INVALID_SIGNATURE * INTEGRATION_FAILURE *
--   INTEGRATION_TIMEOUT * INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN *
--   QUOTA_EXCEEDED * REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED *
--   UNAUTHORIZED * UNSUPPORTED_MEDIA_TYPE
gResponseType :: Lens' GatewayResponse (Maybe GatewayResponseType)

-- | The HTTP status code for this <a>GatewayResponse</a> .
gStatusCode :: Lens' GatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
gResponseParameters :: Lens' GatewayResponse (HashMap Text Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Data.Data.Data Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance GHC.Show.Show Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance GHC.Read.Read Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateGatewayResponse.UpdateGatewayResponse


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>updResourceId</a> - [Required] Represents an update integration
--   request's resource identifier.</li>
--   <li><a>updHttpMethod</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
updRestAPIId :: Lens' UpdateIntegration Text

-- | <ul>
--   <li><i>Required</i> Represents an update integration request's
--   resource identifier.</li>
--   </ul>
updResourceId :: Lens' UpdateIntegration Text

-- | <ul>
--   <li><i>Required</i> Represents an update integration request's HTTP
--   method.</li>
--   </ul>
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 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>iConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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> . The valid value is one of the
--   following: * <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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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>iTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>iType</a> - Specifies an API method integration type. The valid
--   value is one of the following: * <tt>AWS</tt> : for integrating the
--   API method request with an AWS service action, including the Lambda
--   function-invoking action. With the Lambda function-invoking action,
--   this is referred to as the Lambda custom integration. With any other
--   AWS service action, this is known as AWS integration. *
--   <tt>AWS_PROXY</tt> : for integrating the API method request with the
--   Lambda function-invoking action with the client request passed through
--   as-is. This integration is also referred to as the Lambda proxy
--   integration. * <tt>HTTP</tt> : for integrating the API method request
--   with an HTTP endpoint, including a private HTTP endpoint within a VPC.
--   This integration is also referred to as the HTTP custom integration. *
--   <tt>HTTP_PROXY</tt> : for integrating the API method request with an
--   HTTP endpoint, including a private HTTP endpoint within a VPC, with
--   the client request passed through as-is. This is also referred to as
--   the HTTP proxy integration. * <tt>MOCK</tt> : for integrating the API
--   method request with API Gateway as a "loop-back" endpoint without
--   invoking any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.</li>
--   <li><a>iConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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>
--   
--   <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 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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
iConnectionId :: 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> .
--   The valid value is one of the following: * <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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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)

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
iTimeoutInMillis :: Lens' Integration (Maybe Int)

-- | Specifies an API method integration type. The valid value is one of
--   the following: * <tt>AWS</tt> : for integrating the API method request
--   with an AWS service action, including the Lambda function-invoking
--   action. With the Lambda function-invoking action, this is referred to
--   as the Lambda custom integration. With any other AWS service action,
--   this is known as AWS integration. * <tt>AWS_PROXY</tt> : for
--   integrating the API method request with the Lambda function-invoking
--   action with the client request passed through as-is. This integration
--   is also referred to as the Lambda proxy integration. * <tt>HTTP</tt> :
--   for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC. This integration is
--   also referred to as the HTTP custom integration. * <tt>HTTP_PROXY</tt>
--   : for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC, with the client
--   request passed through as-is. This is also referred to as the HTTP
--   proxy integration. * <tt>MOCK</tt> : for integrating the API method
--   request with API Gateway as a "loop-back" endpoint without invoking
--   any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.
iType :: Lens' Integration (Maybe IntegrationType)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
iConnectionType :: Lens' Integration (Maybe ConnectionType)

-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>uiResourceId</a> - [Required] Specifies an update integration
--   response request's resource identifier.</li>
--   <li><a>uiHttpMethod</a> - [Required] Specifies an update integration
--   response request's HTTP method.</li>
--   <li><a>uiStatusCode</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
uiRestAPIId :: Lens' UpdateIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies an update integration response request's
--   resource identifier.</li>
--   </ul>
uiResourceId :: Lens' UpdateIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies an update integration response request's
--   HTTP method.</li>
--   </ul>
uiHttpMethod :: Lens' UpdateIntegrationResponse Text

-- | <ul>
--   <li><i>Required</i> Specifies an update integration response request's
--   status code.</li>
--   </ul>
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>ummResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>Method</a> resource.</li>
--   <li><a>ummHttpMethod</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
ummRestAPIId :: Lens' UpdateMethod Text

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

-- | <ul>
--   <li><i>Required</i> The HTTP verb of the <a>Method</a> resource.</li>
--   </ul>
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>mAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>mRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for request validation.</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 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>mOperationName</a> - A human-friendly operation identifier for
--   the method. For example, you can assign the <tt>operationName</tt> of
--   <tt>ListPets</tt> for the <tt>GET /pets</tt> method in <a>PetStore</a>
--   example.</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type. Valid
--   values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using
--   AWS IAM permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</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 list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
mAuthorizationScopes :: Lens' Method [Text]

-- | The identifier of a <a>RequestValidator</a> for request validation.
mRequestValidatorId :: 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 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)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
mOperationName :: Lens' Method (Maybe Text)

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>umResourceId</a> - [Required] The <a>Resource</a> identifier
--   for the <a>MethodResponse</a> resource.</li>
--   <li><a>umHttpMethod</a> - [Required] The HTTP verb of the
--   <a>Method</a> resource.</li>
--   <li><a>umStatusCode</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
umRestAPIId :: Lens' UpdateMethodResponse Text

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

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

-- | <ul>
--   <li><i>Required</i> The status code for the <a>MethodResponse</a>
--   resource.</li>
--   </ul>
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 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. 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 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. 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>uModelName</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
uRestAPIId :: Lens' UpdateModel Text

-- | <ul>
--   <li><i>Required</i> The name of the model to update.</li>
--   </ul>
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
--   4</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. Must be an alphanumeric
--   string.</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 4</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. Must be an alphanumeric string.
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


-- | Updates a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
module Network.AWS.APIGateway.UpdateRequestValidator

-- | Creates a value of <a>UpdateRequestValidator</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>urvPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>urvRestAPIId</a> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>urvRequestValidatorId</a> - [Required] The identifier of
--   <a>RequestValidator</a> to be updated.</li>
--   </ul>
updateRequestValidator :: Text -> Text -> UpdateRequestValidator

-- | Updates a <a>RequestValidator</a> of a given <tt>RestApi</tt> .
--   
--   <i>See:</i> <a>updateRequestValidator</a> smart constructor.
data UpdateRequestValidator

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

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
urvRestAPIId :: Lens' UpdateRequestValidator Text

-- | <ul>
--   <li><i>Required</i> The identifier of <a>RequestValidator</a> to be
--   updated.</li>
--   </ul>
urvRequestValidatorId :: Lens' UpdateRequestValidator Text

-- | Creates a value of <a>RequestValidator</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>rvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters (<tt>true</tt> ) or not
--   (<tt>false</tt> ).</li>
--   <li><a>rvName</a> - The name of this <a>RequestValidator</a></li>
--   <li><a>rvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate a request body according to the configured <a>Model</a>
--   schema.</li>
--   <li><a>rvId</a> - The identifier of this <a>RequestValidator</a>
--   .</li>
--   </ul>
requestValidator :: RequestValidator

-- | A set of validation rules for incoming <a>Method</a> requests.
--   
--   In Swagger, a <a>RequestValidator</a> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators.requestValidator</a> object.
--   It the referenced using the
--   <a>x-amazon-apigateway-request-validator</a> property.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>requestValidator</a> smart constructor.
data RequestValidator

-- | A Boolean flag to indicate whether to validate request parameters
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
rvValidateRequestParameters :: Lens' RequestValidator (Maybe Bool)

-- | The name of this <a>RequestValidator</a>
rvName :: Lens' RequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate a request body
--   according to the configured <a>Model</a> schema.
rvValidateRequestBody :: Lens' RequestValidator (Maybe Bool)

-- | The identifier of this <a>RequestValidator</a> .
rvId :: Lens' RequestValidator (Maybe Text)
instance GHC.Generics.Generic Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Data.Data.Data Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance GHC.Show.Show Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance GHC.Read.Read Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance GHC.Classes.Eq Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Network.AWS.Types.AWSRequest Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Data.Hashable.Class.Hashable Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Control.DeepSeq.NFData Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Network.AWS.Data.Path.ToPath Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator
instance Network.AWS.Data.Query.ToQuery Network.AWS.APIGateway.UpdateRequestValidator.UpdateRequestValidator


-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>urResourceId</a> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
urRestAPIId :: Lens' UpdateResource Text

-- | <ul>
--   <li><i>Required</i> The identifier of the <a>Resource</a>
--   resource.</li>
--   </ul>
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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</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

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

-- | 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> - [Required] The string identifier of the
--   associated <tt>RestApi</tt> .</li>
--   <li><a>usStageName</a> - [Required] The name of the <a>Stage</a>
--   resource to change information about.</li>
--   </ul>
updateStage :: Text -> Text -> UpdateStage

-- | Requests 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]

-- | <ul>
--   <li><i>Required</i> The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
usRestAPIId :: Lens' UpdateStage Text

-- | <ul>
--   <li><i>Required</i> The name of the <a>Stage</a> resource to change
--   information about.</li>
--   </ul>
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>sAccessLogSettings</a> - Settings for logging access in this
--   stage.</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 timestamp when the stage was
--   created.</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 timestamp when the stage last
--   updated.</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCanarySettings</a> - Settings for the canary deployment in
--   this stage.</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 API
--   Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   <li><a>sTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</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)

-- | Settings for logging access in this stage.
sAccessLogSettings :: Lens' Stage (Maybe AccessLogSettings)

-- | 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 timestamp when the stage was created.
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 timestamp when the stage last updated.
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

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

-- | Settings for the canary deployment in this stage.
sCanarySettings :: Lens' Stage (Maybe CanarySettings)

-- | 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 API Gateway.
sStageName :: Lens' Stage (Maybe Text)

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

-- | The collection of tags. Each tag element is associated with a given
--   resource.
sTags :: Lens' Stage (HashMap Text 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 remaining 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> - [Required] The Id of the usage plan
--   associated with the usage data.</li>
--   <li><a>uuKeyId</a> - [Required] 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 remaining
--   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]

-- | <ul>
--   <li><i>Required</i> The Id of the usage plan associated with the usage
--   data.</li>
--   </ul>
uuUsagePlanId :: Lens' UpdateUsage Text

-- | <ul>
--   <li><i>Required</i> The identifier of the API key associated with the
--   usage plan in which a temporary extension is granted to the remaining
--   quota.</li>
--   </ul>
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> - [Required] 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]

-- | <ul>
--   <li><i>Required</i> The Id of the to-be-updated usage plan.</li>
--   </ul>
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


-- | Updates an existing <tt>VpcLink</tt> of a specified identifier.
module Network.AWS.APIGateway.UpdateVPCLink

-- | Creates a value of <a>UpdateVPCLink</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>uvlPatchOperations</a> - A list of update operations to be
--   applied to the specified resource and in the order specified in this
--   list.</li>
--   <li><a>uvlVpcLinkId</a> - [Required] The identifier of the
--   <tt>VpcLink</tt> . It is used in an <a>Integration</a> to reference
--   this <tt>VpcLink</tt> .</li>
--   </ul>
updateVPCLink :: Text -> UpdateVPCLink

-- | Updates an existing <tt>VpcLink</tt> of a specified identifier.
--   
--   <i>See:</i> <a>updateVPCLink</a> smart constructor.
data UpdateVPCLink

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

-- | <ul>
--   <li><i>Required</i> The identifier of the <tt>VpcLink</tt> . It is
--   used in an <a>Integration</a> to reference this <tt>VpcLink</tt>
--   .</li>
--   </ul>
uvlVpcLinkId :: Lens' UpdateVPCLink Text

-- | Creates a value of <a>VPCLink</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>vlStatus</a> - The status of the VPC link. The valid values are
--   <tt>AVAILABLE</tt> , <tt>PENDING</tt> , <tt>DELETING</tt> , or
--   <tt>FAILED</tt> . Deploying an API will wait if the status is
--   <tt>PENDING</tt> and will fail if the status is <tt>DELETING</tt>
--   .</li>
--   <li><a>vlTargetARNs</a> - The ARNs of network load balancers of the
--   VPC targeted by the VPC link. The network load balancers must be owned
--   by the same AWS account of the API owner.</li>
--   <li><a>vlName</a> - The name used to label and identify the VPC
--   link.</li>
--   <li><a>vlStatusMessage</a> - A description about the VPC link
--   status.</li>
--   <li><a>vlId</a> - The identifier of the <tt>VpcLink</tt> . It is used
--   in an <a>Integration</a> to reference this <tt>VpcLink</tt> .</li>
--   <li><a>vlDescription</a> - The description of the VPC link.</li>
--   </ul>
vpcLink :: VPCLink

-- | A API Gateway VPC link for a <tt>RestApi</tt> to access resources in
--   an Amazon Virtual Private Cloud (VPC).
--   
--   To enable access to a resource in an Amazon Virtual Private Cloud
--   through Amazon API Gateway, you, as an API developer, create a
--   <tt>VpcLink</tt> resource targeted for one or more network load
--   balancers of the VPC and then integrate an API method with a private
--   integration that uses the <tt>VpcLink</tt> . The private integration
--   has an integration type of <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> and
--   has a connection type of <tt>VPC_LINK</tt> . The integration uses the
--   <tt>connectionId</tt> property to identify the <tt>VpcLink</tt> used.
--   
--   <i>See:</i> <a>vpcLink</a> smart constructor.
data VPCLink

-- | The status of the VPC link. The valid values are <tt>AVAILABLE</tt> ,
--   <tt>PENDING</tt> , <tt>DELETING</tt> , or <tt>FAILED</tt> . Deploying
--   an API will wait if the status is <tt>PENDING</tt> and will fail if
--   the status is <tt>DELETING</tt> .
vlStatus :: Lens' VPCLink (Maybe VPCLinkStatus)

-- | The ARNs of network load balancers of the VPC targeted by the VPC
--   link. The network load balancers must be owned by the same AWS account
--   of the API owner.
vlTargetARNs :: Lens' VPCLink [Text]

-- | The name used to label and identify the VPC link.
vlName :: Lens' VPCLink (Maybe Text)

-- | A description about the VPC link status.
vlStatusMessage :: Lens' VPCLink (Maybe Text)

-- | The identifier of the <tt>VpcLink</tt> . It is used in an
--   <a>Integration</a> to reference this <tt>VpcLink</tt> .
vlId :: Lens' VPCLink (Maybe Text)

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


module Network.AWS.APIGateway.Waiters


-- | <b>Amazon API Gateway</b>
--   
--   Amazon API Gateway helps developers deliver robust, secure, and
--   scalable mobile and web application back ends. 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

-- | The request configuration has conflicts. For details, see the
--   accompanying error message.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested resource is not found. Make sure that the request URI is
--   correct.
_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request has reached its throttling limit. Retry after the
--   specified time period.
_TooManyRequestsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The requested service is not available. For details see the
--   accompanying error message. Retry after the specified time period.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request is denied because the caller has insufficient permissions.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The submitted request is not valid, for example, the input is
--   incomplete or incorrect. See the accompanying error message for
--   details.
_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The request exceeded the rate limit. Retry after the specified time
--   period.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data APIKeySourceType
Authorizer :: APIKeySourceType
Header :: APIKeySourceType
data APIKeysFormat
CSV :: APIKeysFormat

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
data AuthorizerType
AuthorizerCognitoUserPools :: AuthorizerType
AuthorizerRequest :: AuthorizerType
AuthorizerToken :: 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 ConnectionType
Internet :: ConnectionType
VPCLink :: ConnectionType
data ContentHandlingStrategy
ConvertToBinary :: ContentHandlingStrategy
ConvertToText :: ContentHandlingStrategy
data DocumentationPartType
DPTAPI :: DocumentationPartType
DPTAuthorizer :: DocumentationPartType
DPTMethod :: DocumentationPartType
DPTModel :: DocumentationPartType
DPTPathParameter :: DocumentationPartType
DPTQueryParameter :: DocumentationPartType
DPTRequestBody :: DocumentationPartType
DPTRequestHeader :: DocumentationPartType
DPTResource :: DocumentationPartType
DPTResponse :: DocumentationPartType
DPTResponseBody :: DocumentationPartType
DPTResponseHeader :: DocumentationPartType

-- | The endpoint type. The valid value is <tt>EDGE</tt> for edge-optimized
--   API setup, most suitable for mobile applications, <tt>REGIONAL</tt>
--   for regional API endpoint setup, most suitable for calling from AWS
--   Region
data EndpointType
Edge :: EndpointType
Regional :: EndpointType
data GatewayResponseType
APIConfigurationError :: GatewayResponseType
AccessDenied :: GatewayResponseType
AuthorizerConfigurationError :: GatewayResponseType
AuthorizerFailure :: GatewayResponseType
BadRequestBody :: GatewayResponseType
BadRequestParameters :: GatewayResponseType
Default4XX :: GatewayResponseType
Default5XX :: GatewayResponseType
ExpiredToken :: GatewayResponseType
IntegrationFailure :: GatewayResponseType
IntegrationTimeout :: GatewayResponseType
InvalidAPIKey :: GatewayResponseType
InvalidSignature :: GatewayResponseType
MissingAuthenticationToken :: GatewayResponseType
QuotaExceeded :: GatewayResponseType
RequestTooLarge :: GatewayResponseType
ResourceNotFound :: GatewayResponseType
Throttled :: GatewayResponseType
Unauthorized :: GatewayResponseType
UnsupportedMediaType :: GatewayResponseType

-- | The integration type. The valid value is <tt>HTTP</tt> for integrating
--   an API method with an HTTP backend; <tt>AWS</tt> with any AWS service
--   endpoints; <tt>MOCK</tt> for testing without actually invoking the
--   backend; <tt>HTTP_PROXY</tt> for integrating with the HTTP proxy
--   integration; <tt>AWS_PROXY</tt> for integrating with the Lambda proxy
--   integration.
data IntegrationType
AWS :: IntegrationType
AWSProxy :: IntegrationType
HTTP :: IntegrationType
HTTPProxy :: IntegrationType
Mock :: IntegrationType
data LocationStatusType
Documented :: LocationStatusType
Undocumented :: LocationStatusType
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
data VPCLinkStatus
VLSAvailable :: VPCLinkStatus
VLSDeleting :: VPCLinkStatus
VLSFailed :: VPCLinkStatus
VLSPending :: VPCLinkStatus

-- | 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 timestamp when the API Key was
--   created.</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> - The timestamp when the API Key was last
--   updated.</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 timestamp when the API Key was created.
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]

-- | The timestamp when the API Key was last updated.
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)

-- | Access log settings, including the access log format and access log
--   destination ARN.
--   
--   <i>See:</i> <a>accessLogSettings</a> smart constructor.
data AccessLogSettings

-- | Creates a value of <a>AccessLogSettings</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>alsFormat</a> - A single line format of the access logs of
--   data, as specified by selected
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference</a>
--   context variables&gt; . The format must include at least <tt>&gt;
--   context.requestId</tt> .</li>
--   <li><a>alsDestinationARN</a> - The ARN of the CloudWatch Logs log
--   group to receive access logs.</li>
--   </ul>
accessLogSettings :: AccessLogSettings

-- | A single line format of the access logs of data, as specified by
--   selected
--   <a>http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#context-variable-reference</a>
--   context variables&gt; . The format must include at least <tt>&gt;
--   context.requestId</tt> .
alsFormat :: Lens' AccessLogSettings (Maybe Text)

-- | The ARN of the CloudWatch Logs log group to receive access logs.
alsDestinationARN :: Lens' AccessLogSettings (Maybe Text)

-- | Represents an AWS account that is associated with 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> - Specifies the authorizer's Uniform
--   Resource Identifier (URI). For <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt>
--   .</li>
--   <li><a>aIdentityValidationExpression</a> - A validation expression for
--   the incoming identity token. For <tt>TOKEN</tt> authorizers, this
--   value is a regular expression. API Gateway will match the <tt>aud</tt>
--   field of the incoming token from the client against the specified
--   regular expression. It will invoke the authorizer's Lambda function
--   when there is a match. Otherwise, it will return a 401 Unauthorized
--   response without calling the Lambda function. The validation
--   expression does not apply to the <tt>REQUEST</tt> authorizer.</li>
--   <li><a>aProviderARNs</a> - A list of the Amazon Cognito user pool ARNs
--   for the <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of
--   this format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.</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 it equals 0, authorization caching is
--   disabled. If it is 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 and exports without functional impact.</li>
--   <li><a>aType</a> - The authorizer type. Valid values are
--   <tt>TOKEN</tt> for a Lambda function using a single authorization
--   token submitted in a custom header, <tt>REQUEST</tt> for a Lambda
--   function using incoming request parameters, and
--   <tt>COGNITO_USER_POOLS</tt> for using an Amazon Cognito user
--   pool.</li>
--   <li><a>aIdentitySource</a> - The identity source for which
--   authorization is requested. * For a <tt>TOKEN</tt> or
--   <tt>COGNITO_USER_POOLS</tt> authorizer, this is required and specifies
--   the request header mapping expression for the custom header holding
--   the authorization token submitted by the client. For example, if the
--   token header name is <tt>Auth</tt> , the header mapping expression is
--   <tt>method.request.header.Auth</tt> . * For the <tt>REQUEST</tt>
--   authorizer, this is required when authorization caching is enabled.
--   The value is a comma-separated string of one or more mapping
--   expressions of the specified request parameters. For example, if an
--   <tt>Auth</tt> header, a <tt>Name</tt> query string parameter are
--   defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.</li>
--   <li><a>aAuthorizerCredentials</a> - Specifies the required credentials
--   as an IAM role for API Gateway to invoke the authorizer. To specify an
--   IAM role for 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

-- | Specifies the authorizer's Uniform Resource Identifier (URI). For
--   <tt>TOKEN</tt> or <tt>REQUEST</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
--   <tt><i>2015-03-31</i>functions<i>[FunctionARN]</i>invocations</tt> .
aAuthorizerURI :: Lens' Authorizer (Maybe Text)

-- | A validation expression for the incoming identity token. For
--   <tt>TOKEN</tt> authorizers, this value is a regular expression. API
--   Gateway will match the <tt>aud</tt> field of the incoming token from
--   the client against the specified regular expression. It will invoke
--   the authorizer's Lambda function when there is a match. Otherwise, it
--   will return a 401 Unauthorized response without calling the Lambda
--   function. The validation expression does not apply to the
--   <tt>REQUEST</tt> authorizer.
aIdentityValidationExpression :: Lens' Authorizer (Maybe Text)

-- | A list of the Amazon Cognito user pool ARNs for the
--   <tt>COGNITO_USER_POOLS</tt> authorizer. Each element is of this
--   format:
--   <tt>arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}</tt>
--   . For a <tt>TOKEN</tt> or <tt>REQUEST</tt> authorizer, this is not
--   defined.
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 it equals 0,
--   authorization caching is disabled. If it is 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 and exports
--   without functional impact.
aAuthType :: Lens' Authorizer (Maybe Text)

-- | The authorizer type. Valid values are <tt>TOKEN</tt> for a Lambda
--   function using a single authorization token submitted in a custom
--   header, <tt>REQUEST</tt> for a Lambda function using incoming request
--   parameters, and <tt>COGNITO_USER_POOLS</tt> for using an Amazon
--   Cognito user pool.
aType :: Lens' Authorizer (Maybe AuthorizerType)

-- | The identity source for which authorization is requested. * For a
--   <tt>TOKEN</tt> or <tt>COGNITO_USER_POOLS</tt> authorizer, this is
--   required and specifies the request header mapping expression for the
--   custom header holding the authorization token submitted by the client.
--   For example, if the token header name is <tt>Auth</tt> , the header
--   mapping expression is <tt>method.request.header.Auth</tt> . * For the
--   <tt>REQUEST</tt> authorizer, this is required when authorization
--   caching is enabled. The value is a comma-separated string of one or
--   more mapping expressions of the specified request parameters. For
--   example, if an <tt>Auth</tt> header, a <tt>Name</tt> query string
--   parameter are defined as identity sources, this value is
--   <tt>method.request.header.Auth, method.request.querystring.Name</tt> .
--   These parameters will be used to derive the authorization caching key
--   and to perform runtime validation of the <tt>REQUEST</tt> authorizer
--   by verifying all of the identity-related request parameters are
--   present, not null and non-empty. Only when this is true does the
--   authorizer invoke the authorizer Lambda function, otherwise, it
--   returns a 401 Unauthorized response without calling the Lambda
--   function. The valid value is a string of comma-separated mapping
--   expressions of the specified request parameters. When the
--   authorization caching is not enabled, this property is optional.
aIdentitySource :: Lens' Authorizer (Maybe Text)

-- | Specifies the required credentials as an IAM role for API Gateway to
--   invoke the authorizer. To specify an IAM role for 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 associated 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 string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   </ul>
basePathMapping :: BasePathMapping

-- | The name of the associated 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 string identifier of the associated <tt>RestApi</tt> .
bpmRestAPIId :: Lens' BasePathMapping (Maybe Text)

-- | Configuration settings of a canary deployment.
--   
--   <i>See:</i> <a>canarySettings</a> smart constructor.
data CanarySettings

-- | Creates a value of <a>CanarySettings</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>csDeploymentId</a> - The ID of the canary deployment.</li>
--   <li><a>csStageVariableOverrides</a> - Stage variables overridden for a
--   canary release deployment, including new stage variables introduced in
--   the canary. These stage variables are represented as a
--   string-to-string map between stage variable names and their
--   values.</li>
--   <li><a>csUseStageCache</a> - A Boolean flag to indicate whether the
--   canary deployment uses the stage cache or not.</li>
--   <li><a>csPercentTraffic</a> - The percent (0-100) of traffic diverted
--   to a canary deployment.</li>
--   </ul>
canarySettings :: CanarySettings

-- | The ID of the canary deployment.
csDeploymentId :: Lens' CanarySettings (Maybe Text)

-- | Stage variables overridden for a canary release deployment, including
--   new stage variables introduced in the canary. These stage variables
--   are represented as a string-to-string map between stage variable names
--   and their values.
csStageVariableOverrides :: Lens' CanarySettings (HashMap Text Text)

-- | A Boolean flag to indicate whether the canary deployment uses the
--   stage cache or not.
csUseStageCache :: Lens' CanarySettings (Maybe Bool)

-- | The percent (0-100) of traffic diverted to a canary deployment.
csPercentTraffic :: Lens' CanarySettings (Maybe Double)

-- | Represents a client certificate used to configure client-side SSL
--   authentication while sending requests to the integration endpoint.
--   
--   Client certificates are used to authenticate an API by the backend
--   server. To authenticate an API client (or user), use IAM roles and
--   policies, a custom <a>Authorizer</a> or an Amazon Cognito user
--   pool.<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 timestamp when the client certificate
--   was created.</li>
--   <li><a>ccExpirationDate</a> - The timestamp when the client
--   certificate will expire.</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 timestamp when the client certificate was created.
ccCreatedDate :: Lens' ClientCertificate (Maybe UTCTime)

-- | The timestamp when the client certificate will expire.
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)

-- | The input configuration for a canary deployment.
--   
--   <i>See:</i> <a>deploymentCanarySettings</a> smart constructor.
data DeploymentCanarySettings

-- | Creates a value of <a>DeploymentCanarySettings</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>dcsStageVariableOverrides</a> - A stage variable overrides used
--   for the canary release deployment. They can override existing stage
--   variables or add new stage variables for the canary release
--   deployment. These stage variables are represented as a
--   string-to-string map between stage variable names and their
--   values.</li>
--   <li><a>dcsUseStageCache</a> - A Boolean flag to indicate whether the
--   canary release deployment uses the stage cache or not.</li>
--   <li><a>dcsPercentTraffic</a> - The percentage (0.0-100.0) of traffic
--   routed to the canary deployment.</li>
--   </ul>
deploymentCanarySettings :: DeploymentCanarySettings

-- | A stage variable overrides used for the canary release deployment.
--   They can override existing stage variables or add new stage variables
--   for the canary release deployment. These stage variables are
--   represented as a string-to-string map between stage variable names and
--   their values.
dcsStageVariableOverrides :: Lens' DeploymentCanarySettings (HashMap Text Text)

-- | A Boolean flag to indicate whether the canary release deployment uses
--   the stage cache or not.
dcsUseStageCache :: Lens' DeploymentCanarySettings (Maybe Bool)

-- | The percentage (0.0-100.0) of traffic routed to the canary deployment.
dcsPercentTraffic :: Lens' DeploymentCanarySettings (Maybe Double)

-- | 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 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 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> - [Required] The type of API entity to which the
--   documentation content applies. Valid values 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> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>METHOD</tt> , <tt>MODEL</tt> ,
--   <tt>REQUEST_BODY</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)

-- | <ul>
--   <li><i>Required</i> The type of API entity to which the documentation
--   content applies. Valid values 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> . Content
--   inheritance does not apply to any entity of the <tt>API</tt> ,
--   <tt>AUTHORIZER</tt> , <tt>METHOD</tt> , <tt>MODEL</tt> ,
--   <tt>REQUEST_BODY</tt> , or <tt>RESOURCE</tt> type.</li>
--   </ul>
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 custom domain name as a user-friendly host name of an API
--   (<tt>RestApi</tt> ).
--   
--   When you deploy an API, API Gateway creates a default host name for
--   the API. This default API host name is of the
--   <tt>{restapi-id}.execute-api.{region}.amazonaws.com</tt> format. With
--   the default host name, you can access the API's root resource with the
--   URL of
--   <tt><a>https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/</a></tt>
--   . When you set up a custom domain name of <tt>apis.example.com</tt>
--   for this API, you can then access the same resource using the URL of
--   the <tt><a>https://apis.examples.com/myApi</a></tt> , where
--   <tt>myApi</tt> is the base path mapping (<a>BasePathMapping</a> ) of
--   your API under the custom domain name.
--   
--   <a>Set a Custom Host Name for an API</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>dnRegionalHostedZoneId</a> - The region-specific Amazon Route
--   53 Hosted Zone ID of the regional endpoint. For more information, see
--   <a>Set up a Regional Custom Domain Name</a> and <a>AWS Regions and
--   Endpoints for API Gateway</a> .</li>
--   <li><a>dnCertificateName</a> - The name of the certificate that will
--   be used by edge-optimized endpoint for this domain name.</li>
--   <li><a>dnRegionalCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used for validating the regional domain name.
--   AWS Certificate Manager is the only supported source.</li>
--   <li><a>dnCertificateARN</a> - The reference to an AWS-managed
--   certificate that will be used by edge-optimized endpoint for this
--   domain name. AWS Certificate Manager is the only supported
--   source.</li>
--   <li><a>dnDistributionHostedZoneId</a> - The region-agnostic Amazon
--   Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid
--   value is <tt>Z2FDTNDATAQYW2</tt> for all the regions. For more
--   information, see <a>Set up a Regional Custom Domain Name</a> and
--   <a>AWS Regions and Endpoints for API Gateway</a> .</li>
--   <li><a>dnDomainName</a> - The custom domain name as an API host name,
--   for example, <tt>my-api.example.com</tt> .</li>
--   <li><a>dnRegionalCertificateName</a> - The name of the certificate
--   that will be used for validating the regional domain name.</li>
--   <li><a>dnRegionalDomainName</a> - The domain name associated with the
--   regional endpoint for this custom domain name. You set up this
--   association by adding a DNS record that points the custom domain name
--   to this regional domain name. The regional domain name is returned by
--   API Gateway when you create a regional endpoint.</li>
--   <li><a>dnCertificateUploadDate</a> - The timestamp when the
--   certificate that was used by edge-optimized endpoint for this domain
--   name was uploaded.</li>
--   <li><a>dnDistributionDomainName</a> - The domain name of the Amazon
--   CloudFront distribution associated with this custom domain name for an
--   edge-optimized endpoint. You set up this association when adding a DNS
--   record pointing the custom domain name to this distribution name. For
--   more information about CloudFront distributions, see the <a>Amazon
--   CloudFront documentation</a> .</li>
--   <li><a>dnEndpointConfiguration</a> - The endpoint configuration of
--   this <a>DomainName</a> showing the endpoint types of the domain
--   name.</li>
--   </ul>
domainName :: DomainName

-- | The region-specific Amazon Route 53 Hosted Zone ID of the regional
--   endpoint. For more information, see <a>Set up a Regional Custom Domain
--   Name</a> and <a>AWS Regions and Endpoints for API Gateway</a> .
dnRegionalHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used by edge-optimized
--   endpoint for this domain name.
dnCertificateName :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used for
--   validating the regional domain name. AWS Certificate Manager is the
--   only supported source.
dnRegionalCertificateARN :: Lens' DomainName (Maybe Text)

-- | The reference to an AWS-managed certificate that will be used by
--   edge-optimized endpoint for this domain name. AWS Certificate Manager
--   is the only supported source.
dnCertificateARN :: Lens' DomainName (Maybe Text)

-- | The region-agnostic Amazon Route 53 Hosted Zone ID of the
--   edge-optimized endpoint. The valid value is <tt>Z2FDTNDATAQYW2</tt>
--   for all the regions. For more information, see <a>Set up a Regional
--   Custom Domain Name</a> and <a>AWS Regions and Endpoints for API
--   Gateway</a> .
dnDistributionHostedZoneId :: Lens' DomainName (Maybe Text)

-- | The custom domain name as an API host name, for example,
--   <tt>my-api.example.com</tt> .
dnDomainName :: Lens' DomainName (Maybe Text)

-- | The name of the certificate that will be used for validating the
--   regional domain name.
dnRegionalCertificateName :: Lens' DomainName (Maybe Text)

-- | The domain name associated with the regional endpoint for this custom
--   domain name. You set up this association by adding a DNS record that
--   points the custom domain name to this regional domain name. The
--   regional domain name is returned by API Gateway when you create a
--   regional endpoint.
dnRegionalDomainName :: Lens' DomainName (Maybe Text)

-- | The timestamp when the certificate that was used by edge-optimized
--   endpoint for this domain name was uploaded.
dnCertificateUploadDate :: Lens' DomainName (Maybe UTCTime)

-- | The domain name of the Amazon CloudFront distribution associated with
--   this custom domain name for an edge-optimized endpoint. You set up
--   this association when adding a DNS record pointing the custom domain
--   name to this distribution name. For more information about CloudFront
--   distributions, see the <a>Amazon CloudFront documentation</a> .
dnDistributionDomainName :: Lens' DomainName (Maybe Text)

-- | The endpoint configuration of this <a>DomainName</a> showing the
--   endpoint types of the domain name.
dnEndpointConfiguration :: Lens' DomainName (Maybe EndpointConfiguration)

-- | The endpoint configuration to indicate the types of endpoints an API
--   (<tt>RestApi</tt> ) or its custom domain name (<a>DomainName</a> )
--   has.
--   
--   <i>See:</i> <a>endpointConfiguration</a> smart constructor.
data EndpointConfiguration

-- | Creates a value of <a>EndpointConfiguration</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>ecTypes</a> - A list of endpoint types of an API
--   (<tt>RestApi</tt> ) or its custom domain name (<a>DomainName</a> ).
--   For an edge-optimized API and its custom domain name, the endpoint
--   type is <tt><a>EDGE</a></tt> . For a regional API and its custom
--   domain name, the endpoint type is <tt>REGIONAL</tt> .</li>
--   </ul>
endpointConfiguration :: EndpointConfiguration

-- | A list of endpoint types of an API (<tt>RestApi</tt> ) or its custom
--   domain name (<a>DomainName</a> ). For an edge-optimized API and its
--   custom domain name, the endpoint type is <tt><a>EDGE</a></tt> . For a
--   regional API and its custom domain name, the endpoint type is
--   <tt>REGIONAL</tt> .
ecTypes :: Lens' EndpointConfiguration [EndpointType]

-- | A gateway response of a given response type and status code, with
--   optional response parameters and mapping templates.
--   
--   For more information about valid gateway response types, see
--   <a>Gateway Response Types Supported by API Gateway</a> <b>Example: Get
--   a Gateway Response of a given response type</b> <b>Request</b> This
--   example shows how to get a gateway response of the
--   <tt>MISSING_AUTHENTICATION_TOKEN</tt> type.
--   
--   @<tt>GET
--   <i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN
--   HTTP<i>1.1 Host: beta-apigateway.us-east-1.amazonaws.com Content-Type:
--   application</i>json X-Amz-Date: 20170503T202516Z Authorization:
--   AWS4-HMAC-SHA256
--   Credential={access-key-id}<i>20170503</i>us-east-1<i>apigateway</i>aws4_request,
--   SignedHeaders=content-type;host;x-amz-date,
--   Signature=1b52460e3159c1a26cff29093855d50ea141c1c5b937528fecaf60f51129697a
--   Cache-Control: no-cache Postman-Token:
--   3b2a1ce9-c848-2e26-2e2f-9c2caefbed45 </tt> @ The response type is
--   specified as a URL path.
--   
--   <b>Response</b> The successful operation returns the <tt>200 OK</tt>
--   status code and a payload similar to the following:
--   
--   @<tt>{ "_links": { "curies": { "href":
--   "<a>http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-gatewayresponse-{rel}.html"</a>,
--   "name": "gatewayresponse", "templated": true }, "self": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:delete": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   }, "gatewayresponse:put": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>{response_type}",
--   "templated": true }, "gatewayresponse:update": { "href":
--   "<i>restapis</i>o81lxisefl<i>gatewayresponses</i>MISSING_AUTHENTICATION_TOKEN"
--   } }, "defaultResponse": false, "responseParameters": {
--   "gatewayresponse.header.x-request-path": "method.request.path.petId",
--   "gatewayresponse.header.Access-Control-Allow-Origin": "'a.b.c'",
--   "gatewayresponse.header.x-request-query":
--   "method.request.querystring.q",
--   "gatewayresponse.header.x-request-header":
--   "method.request.header.Accept" }, "responseTemplates": {
--   "application/json": "{n "message": $context.error.messageString,n
--   "type": "$context.error.responseType",n "stage": "$context.stage",n
--   "resourcePath": "$context.resourcePath",n "stageVariables.a":
--   "$stageVariables.a",n "statusCode": "'404'"n}" }, "responseType":
--   <a>MISSING_AUTHENTICATION_TOKEN</a>, "statusCode": "404" }</tt> @
--   
--   <a>Customize Gateway Responses</a>
--   
--   <i>See:</i> <a>gatewayResponse</a> smart constructor.
data GatewayResponse

-- | Creates a value of <a>GatewayResponse</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>gDefaultResponse</a> - A Boolean flag to indicate whether this
--   <a>GatewayResponse</a> is the default gateway response (<tt>true</tt>
--   ) or not (<tt>false</tt> ). A default gateway response is one
--   generated by API Gateway without any customization by an API
--   developer.</li>
--   <li><a>gResponseTemplates</a> - Response templates of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value
--   pairs.</li>
--   <li><a>gResponseType</a> - The response type of the associated
--   <a>GatewayResponse</a> . Valid values are * ACCESS_DENIED *
--   API_CONFIGURATION_ERROR * AUTHORIZER_FAILURE *
--   AUTHORIZER_CONFIGURATION_ERROR * BAD_REQUEST_PARAMETERS *
--   BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX * EXPIRED_TOKEN *
--   INVALID_SIGNATURE * INTEGRATION_FAILURE * INTEGRATION_TIMEOUT *
--   INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN * QUOTA_EXCEEDED *
--   REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED * UNAUTHORIZED *
--   UNSUPPORTED_MEDIA_TYPE</li>
--   <li><a>gStatusCode</a> - The HTTP status code for this
--   <a>GatewayResponse</a> .</li>
--   <li><a>gResponseParameters</a> - Response parameters (paths, query
--   strings and headers) of the <a>GatewayResponse</a> as a
--   string-to-string map of key-value pairs.</li>
--   </ul>
gatewayResponse :: GatewayResponse

-- | A Boolean flag to indicate whether this <a>GatewayResponse</a> is the
--   default gateway response (<tt>true</tt> ) or not (<tt>false</tt> ). A
--   default gateway response is one generated by API Gateway without any
--   customization by an API developer.
gDefaultResponse :: Lens' GatewayResponse (Maybe Bool)

-- | Response templates of the <a>GatewayResponse</a> as a string-to-string
--   map of key-value pairs.
gResponseTemplates :: Lens' GatewayResponse (HashMap Text Text)

-- | The response type of the associated <a>GatewayResponse</a> . Valid
--   values are * ACCESS_DENIED * API_CONFIGURATION_ERROR *
--   AUTHORIZER_FAILURE * AUTHORIZER_CONFIGURATION_ERROR *
--   BAD_REQUEST_PARAMETERS * BAD_REQUEST_BODY * DEFAULT_4XX * DEFAULT_5XX
--   * EXPIRED_TOKEN * INVALID_SIGNATURE * INTEGRATION_FAILURE *
--   INTEGRATION_TIMEOUT * INVALID_API_KEY * MISSING_AUTHENTICATION_TOKEN *
--   QUOTA_EXCEEDED * REQUEST_TOO_LARGE * RESOURCE_NOT_FOUND * THROTTLED *
--   UNAUTHORIZED * UNSUPPORTED_MEDIA_TYPE
gResponseType :: Lens' GatewayResponse (Maybe GatewayResponseType)

-- | The HTTP status code for this <a>GatewayResponse</a> .
gStatusCode :: Lens' GatewayResponse (Maybe Text)

-- | Response parameters (paths, query strings and headers) of the
--   <a>GatewayResponse</a> as a string-to-string map of key-value pairs.
gResponseParameters :: Lens' GatewayResponse (HashMap Text 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>
--   
--   <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 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>iConnectionId</a> - The (<a>@id@</a> ) of the <tt>VpcLink</tt>
--   used for the integration when <tt>connectionType=VPC_LINK</tt> and
--   undefined, otherwise.</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> . The valid value is one of the
--   following: * <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 Uniform Resource Identifier (URI) of the
--   integration endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt>
--   integrations, the URI must be a fully formed, encoded HTTP(S) URL
--   according to the <a>RFC-3986 specification</a> , for either standard
--   integration, where <tt>connectionType</tt> is not <tt>VPC_LINK</tt> ,
--   or private integration, where <tt>connectionType</tt> is
--   <tt>VPC_LINK</tt> . For a private HTTP integration, the URI is not
--   used for routing. * For <tt>AWS</tt> or <tt>AWS_PROXY</tt>
--   integrations, the URI is of the form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or
--   <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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>iTimeoutInMillis</a> - Custom timeout between 50 and 29,000
--   milliseconds. The default value is 29,000 milliseconds or 29
--   seconds.</li>
--   <li><a>iType</a> - Specifies an API method integration type. The valid
--   value is one of the following: * <tt>AWS</tt> : for integrating the
--   API method request with an AWS service action, including the Lambda
--   function-invoking action. With the Lambda function-invoking action,
--   this is referred to as the Lambda custom integration. With any other
--   AWS service action, this is known as AWS integration. *
--   <tt>AWS_PROXY</tt> : for integrating the API method request with the
--   Lambda function-invoking action with the client request passed through
--   as-is. This integration is also referred to as the Lambda proxy
--   integration. * <tt>HTTP</tt> : for integrating the API method request
--   with an HTTP endpoint, including a private HTTP endpoint within a VPC.
--   This integration is also referred to as the HTTP custom integration. *
--   <tt>HTTP_PROXY</tt> : for integrating the API method request with an
--   HTTP endpoint, including a private HTTP endpoint within a VPC, with
--   the client request passed through as-is. This is also referred to as
--   the HTTP proxy integration. * <tt>MOCK</tt> : for integrating the API
--   method request with API Gateway as a "loop-back" endpoint without
--   invoking any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.</li>
--   <li><a>iConnectionType</a> - The type of the network connection to the
--   integration endpoint. The valid value is <tt>INTERNET</tt> for
--   connections through the public routable internet or <tt>VPC_LINK</tt>
--   for private connections between API Gateway and a network load
--   balancer in a VPC. The default value is <tt>INTERNET</tt> .</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 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)

-- | The (<a>@id@</a> ) of the <tt>VpcLink</tt> used for the integration
--   when <tt>connectionType=VPC_LINK</tt> and undefined, otherwise.
iConnectionId :: 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> .
--   The valid value is one of the following: * <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 Uniform Resource Identifier (URI) of the integration
--   endpoint. * For <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> integrations, the
--   URI must be a fully formed, encoded HTTP(S) URL according to the
--   <a>RFC-3986 specification</a> , for either standard integration, where
--   <tt>connectionType</tt> is not <tt>VPC_LINK</tt> , or private
--   integration, where <tt>connectionType</tt> is <tt>VPC_LINK</tt> . For
--   a private HTTP integration, the URI is not used for routing. * For
--   <tt>AWS</tt> or <tt>AWS_PROXY</tt> integrations, the URI is of the
--   form
--   <tt>arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}</tt>
--   . Here, <tt>{Region}</tt> is the API Gateway region (e.g.,
--   <tt>us-east-1</tt> ); <tt>{service}</tt> is the name of the integrated
--   AWS service (e.g., <tt>s3</tt> ); and <tt>{subdomain}</tt> is a
--   designated subdomain supported by certain AWS service for fast
--   host-name lookup. <tt>action</tt> can be used for an AWS service
--   action-based API, using an
--   <tt>Action={name}&amp;{p1}={v1}&amp;p2={v2}...</tt> query string. The
--   ensuing <tt>{service_api}</tt> refers to a supported action
--   <tt>{name}</tt> plus any required input parameters. Alternatively,
--   <tt>path</tt> can be used for an AWS service path-based API. The
--   ensuing <tt>service_api</tt> refers to the path to an AWS service
--   resource, including the region of the integrated AWS service, if
--   applicable. For example, for integration with the S3 API of
--   <tt><a>GetObject</a> </tt> , the <tt>uri</tt> can be either
--   <tt>arn:aws:apigateway:us-west-2:s3:action/GetObject&amp;Bucket={bucket}&amp;Key={key}</tt>
--   or <tt>arn:aws:apigateway:us-west-2:s3:path<i>{bucket}</i>{key}</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)

-- | Custom timeout between 50 and 29,000 milliseconds. The default value
--   is 29,000 milliseconds or 29 seconds.
iTimeoutInMillis :: Lens' Integration (Maybe Int)

-- | Specifies an API method integration type. The valid value is one of
--   the following: * <tt>AWS</tt> : for integrating the API method request
--   with an AWS service action, including the Lambda function-invoking
--   action. With the Lambda function-invoking action, this is referred to
--   as the Lambda custom integration. With any other AWS service action,
--   this is known as AWS integration. * <tt>AWS_PROXY</tt> : for
--   integrating the API method request with the Lambda function-invoking
--   action with the client request passed through as-is. This integration
--   is also referred to as the Lambda proxy integration. * <tt>HTTP</tt> :
--   for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC. This integration is
--   also referred to as the HTTP custom integration. * <tt>HTTP_PROXY</tt>
--   : for integrating the API method request with an HTTP endpoint,
--   including a private HTTP endpoint within a VPC, with the client
--   request passed through as-is. This is also referred to as the HTTP
--   proxy integration. * <tt>MOCK</tt> : for integrating the API method
--   request with API Gateway as a "loop-back" endpoint without invoking
--   any backend. For the HTTP and HTTP proxy integrations, each
--   integration can specify a protocol (<tt>http/https</tt> ), port and
--   path. Standard 80 and 443 ports are supported as well as custom ports
--   above 1024. An HTTP or HTTP proxy integration with a
--   <tt>connectionType</tt> of <tt>VPC_LINK</tt> is referred to as a
--   private integration and uses a <tt>VpcLink</tt> to connect API Gateway
--   to a network load balancer of a VPC.
iType :: Lens' Integration (Maybe IntegrationType)

-- | The type of the network connection to the integration endpoint. The
--   valid value is <tt>INTERNET</tt> for connections through the public
--   routable internet or <tt>VPC_LINK</tt> for private connections between
--   API Gateway and a network load balancer in a VPC. The default value is
--   <tt>INTERNET</tt> .
iConnectionType :: Lens' Integration (Maybe ConnectionType)

-- | 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>mAuthorizationScopes</a> - A list of authorization scopes
--   configured on the method. The scopes are used with a
--   <tt>COGNITO_USER_POOLS</tt> authorizer to authorize the method
--   invocation. The authorization works by matching the method scopes
--   against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.</li>
--   <li><a>mRequestValidatorId</a> - The identifier of a
--   <a>RequestValidator</a> for request validation.</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 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>mOperationName</a> - A human-friendly operation identifier for
--   the method. For example, you can assign the <tt>operationName</tt> of
--   <tt>ListPets</tt> for the <tt>GET /pets</tt> method in <a>PetStore</a>
--   example.</li>
--   <li><a>mAuthorizationType</a> - The method's authorization type. Valid
--   values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for using
--   AWS IAM permissions, <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.</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 list of authorization scopes configured on the method. The scopes
--   are used with a <tt>COGNITO_USER_POOLS</tt> authorizer to authorize
--   the method invocation. The authorization works by matching the method
--   scopes against the scopes parsed from the access token in the incoming
--   request. The method invocation is authorized if any method scopes
--   matches a claimed scope in the access token. Otherwise, the invocation
--   is not authorized. When the method scope is configured, the client
--   must provide an access token instead of an identity token for
--   authorization purposes.
mAuthorizationScopes :: Lens' Method [Text]

-- | The identifier of a <a>RequestValidator</a> for request validation.
mRequestValidatorId :: 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 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)

-- | A human-friendly operation identifier for the method. For example, you
--   can assign the <tt>operationName</tt> of <tt>ListPets</tt> for the
--   <tt>GET /pets</tt> method in <a>PetStore</a> example.
mOperationName :: Lens' Method (Maybe Text)

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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 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. 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 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. 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> - The method's authorization type.
--   Valid values are <tt>NONE</tt> for open access, <tt>AWS_IAM</tt> for
--   using AWS IAM permissions, <tt>CUSTOM</tt> for using a custom
--   authorizer, or <tt>COGNITO_USER_POOLS</tt> for using a Cognito user
--   pool.</li>
--   <li><a>msApiKeyRequired</a> - Specifies whether the method requires a
--   valid <tt>ApiKey</tt> .</li>
--   </ul>
methodSnapshot :: MethodSnapshot

-- | The method's authorization type. Valid values are <tt>NONE</tt> for
--   open access, <tt>AWS_IAM</tt> for using AWS IAM permissions,
--   <tt>CUSTOM</tt> for using a custom authorizer, or
--   <tt>COGNITO_USER_POOLS</tt> for using a Cognito user pool.
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
--   4</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. Must be an alphanumeric
--   string.</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 4</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. Must be an alphanumeric string.
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 <tt>add</tt> , <tt>remove</tt> ,
--   <tt>replace</tt> or <tt>copy</tt> . 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. It
--   is applicable for the <tt>add</tt> or <tt>replace</tt> operation. When
--   using AWS CLI to update a property of a JSON value, enclose the JSON
--   object with a pair of single quotes in a Linux shell, e.g., '{"a":
--   ...}'. In a Windows shell, see <a>Using JSON for Parameters</a> .</li>
--   <li><a>poFrom</a> - The <tt>copy</tt> update operation's source as
--   identified by a <tt>JSON-Pointer</tt> value referencing the location
--   within the targeted resource to copy the value from. For example, to
--   promote a canary deployment, you copy the canary deployment ID to the
--   affiliated deployment ID by calling a PATCH request on a <a>Stage</a>
--   resource with <tt>"op":"copy"</tt> ,
--   <tt>"from":"<i>canarySettings</i>deploymentId"</tt> and
--   <tt>"path":"/deploymentId"</tt> .</li>
--   </ul>
patchOperation :: PatchOperation

-- | An update operation to be performed with this PATCH request. The valid
--   value can be <tt>add</tt> , <tt>remove</tt> , <tt>replace</tt> or
--   <tt>copy</tt> . 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. It is applicable for the
--   <tt>add</tt> or <tt>replace</tt> operation. When using AWS CLI to
--   update a property of a JSON value, enclose the JSON object with a pair
--   of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows
--   shell, see <a>Using JSON for Parameters</a> .
poValue :: Lens' PatchOperation (Maybe Text)

-- | The <tt>copy</tt> update operation's source as identified by a
--   <tt>JSON-Pointer</tt> value referencing the location within the
--   targeted resource to copy the value from. For example, to promote a
--   canary deployment, you copy the canary deployment ID to the affiliated
--   deployment ID by calling a PATCH request on a <a>Stage</a> resource
--   with <tt>"op":"copy"</tt> ,
--   <tt>"from":"<i>canarySettings</i>deploymentId"</tt> and
--   <tt>"path":"/deploymentId"</tt> .
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)

-- | A set of validation rules for incoming <a>Method</a> requests.
--   
--   In Swagger, a <a>RequestValidator</a> of an API is defined by the
--   <a>x-amazon-apigateway-request-validators.requestValidator</a> object.
--   It the referenced using the
--   <a>x-amazon-apigateway-request-validator</a> property.
--   
--   <a>Enable Basic Request Validation in API Gateway</a>
--   
--   <i>See:</i> <a>requestValidator</a> smart constructor.
data RequestValidator

-- | Creates a value of <a>RequestValidator</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>rvValidateRequestParameters</a> - A Boolean flag to indicate
--   whether to validate request parameters (<tt>true</tt> ) or not
--   (<tt>false</tt> ).</li>
--   <li><a>rvName</a> - The name of this <a>RequestValidator</a></li>
--   <li><a>rvValidateRequestBody</a> - A Boolean flag to indicate whether
--   to validate a request body according to the configured <a>Model</a>
--   schema.</li>
--   <li><a>rvId</a> - The identifier of this <a>RequestValidator</a>
--   .</li>
--   </ul>
requestValidator :: RequestValidator

-- | A Boolean flag to indicate whether to validate request parameters
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
rvValidateRequestParameters :: Lens' RequestValidator (Maybe Bool)

-- | The name of this <a>RequestValidator</a>
rvName :: Lens' RequestValidator (Maybe Text)

-- | A Boolean flag to indicate whether to validate a request body
--   according to the configured <a>Model</a> schema.
rvValidateRequestBody :: Lens' RequestValidator (Maybe Bool)

-- | The identifier of this <a>RequestValidator</a> .
rvId :: Lens' RequestValidator (Maybe Text)

-- | 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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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: 20170223T031827Z
--   Authorization: AWS4-HMAC-SHA256
--   Credential={access_key_ID}<i>20170223</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>raMinimumCompressionSize</a> - A nullable integer that is used
--   to enable compression (with non-negative between 0 and 10485760 (10M)
--   bytes, inclusive) or disable compression (with a null value) on an
--   API. When compression is enabled, compression or decompression is not
--   applied on the payload if the payload size is smaller than this value.
--   Setting it to zero allows compression for any payload size.</li>
--   <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 timestamp when the API was
--   created.</li>
--   <li><a>raName</a> - The API's name.</li>
--   <li><a>raVersion</a> - A version identifier for the API.</li>
--   <li><a>raApiKeySource</a> - The source of the API key for metering
--   requests according to a usage plan. Valid values are: *
--   <tt>HEADER</tt> to read the API key from the <tt>X-API-Key</tt> header
--   of a request. * <tt>AUTHORIZER</tt> to read the API key from the
--   <tt>UsageIdentifierKey</tt> from a custom authorizer.</li>
--   <li><a>raId</a> - The API's identifier. This identifier is unique
--   across all of your APIs in API Gateway.</li>
--   <li><a>raPolicy</a> - <a>Method</a></li>
--   <li><a>raEndpointConfiguration</a> - The endpoint configuration of
--   this <tt>RestApi</tt> showing the endpoint types of the API.</li>
--   <li><a>raDescription</a> - The API's description.</li>
--   </ul>
restAPI :: RestAPI

-- | A nullable integer that is used to enable compression (with
--   non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable
--   compression (with a null value) on an API. When compression is
--   enabled, compression or decompression is not applied on the payload if
--   the payload size is smaller than this value. Setting it to zero allows
--   compression for any payload size.
raMinimumCompressionSize :: Lens' RestAPI (Maybe Int)

-- | 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 timestamp when the API was created.
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 source of the API key for metering requests according to a usage
--   plan. Valid values are: * <tt>HEADER</tt> to read the API key from the
--   <tt>X-API-Key</tt> header of a request. * <tt>AUTHORIZER</tt> to read
--   the API key from the <tt>UsageIdentifierKey</tt> from a custom
--   authorizer.
raApiKeySource :: Lens' RestAPI (Maybe APIKeySourceType)

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

-- | <a>Method</a>
raPolicy :: Lens' RestAPI (Maybe Text)

-- | The endpoint configuration of this <tt>RestApi</tt> showing the
--   endpoint types of the API.
raEndpointConfiguration :: Lens' RestAPI (Maybe EndpointConfiguration)

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

-- | A configuration property of an SDK type.
--   
--   <i>See:</i> <a>sdkConfigurationProperty</a> smart constructor.
data SDKConfigurationProperty

-- | Creates a value of <a>SDKConfigurationProperty</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>scpFriendlyName</a> - The user-friendly name of an
--   <tt>SdkType</tt> configuration property.</li>
--   <li><a>scpRequired</a> - A boolean flag of an <tt>SdkType</tt>
--   configuration property to indicate if the associated SDK configuration
--   property is required (<tt>true</tt> ) or not (<tt>false</tt> ).</li>
--   <li><a>scpName</a> - The name of a an <tt>SdkType</tt> configuration
--   property.</li>
--   <li><a>scpDefaultValue</a> - The default value of an <tt>SdkType</tt>
--   configuration property.</li>
--   <li><a>scpDescription</a> - The description of an <tt>SdkType</tt>
--   configuration property.</li>
--   </ul>
sdkConfigurationProperty :: SDKConfigurationProperty

-- | The user-friendly name of an <tt>SdkType</tt> configuration property.
scpFriendlyName :: Lens' SDKConfigurationProperty (Maybe Text)

-- | A boolean flag of an <tt>SdkType</tt> configuration property to
--   indicate if the associated SDK configuration property is required
--   (<tt>true</tt> ) or not (<tt>false</tt> ).
scpRequired :: Lens' SDKConfigurationProperty (Maybe Bool)

-- | The name of a an <tt>SdkType</tt> configuration property.
scpName :: Lens' SDKConfigurationProperty (Maybe Text)

-- | The default value of an <tt>SdkType</tt> configuration property.
scpDefaultValue :: Lens' SDKConfigurationProperty (Maybe Text)

-- | The description of an <tt>SdkType</tt> configuration property.
scpDescription :: Lens' SDKConfigurationProperty (Maybe Text)

-- | A type of SDK that API Gateway can generate.
--   
--   <i>See:</i> <a>sdkType</a> smart constructor.
data SDKType

-- | Creates a value of <a>SDKType</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>stFriendlyName</a> - The user-friendly name of an
--   <tt>SdkType</tt> instance.</li>
--   <li><a>stConfigurationProperties</a> - A list of configuration
--   properties of an <tt>SdkType</tt> .</li>
--   <li><a>stId</a> - The identifier of an <tt>SdkType</tt> instance.</li>
--   <li><a>stDescription</a> - The description of an <tt>SdkType</tt>
--   .</li>
--   </ul>
sdkType :: SDKType

-- | The user-friendly name of an <tt>SdkType</tt> instance.
stFriendlyName :: Lens' SDKType (Maybe Text)

-- | A list of configuration properties of an <tt>SdkType</tt> .
stConfigurationProperties :: Lens' SDKType [SDKConfigurationProperty]

-- | The identifier of an <tt>SdkType</tt> instance.
stId :: Lens' SDKType (Maybe Text)

-- | The description of an <tt>SdkType</tt> .
stDescription :: Lens' SDKType (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>sAccessLogSettings</a> - Settings for logging access in this
--   stage.</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 timestamp when the stage was
--   created.</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 timestamp when the stage last
--   updated.</li>
--   <li><a>sCacheClusterSize</a> - The size of the cache cluster for the
--   stage, if enabled.</li>
--   <li><a>sCanarySettings</a> - Settings for the canary deployment in
--   this stage.</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 API
--   Gateway.</li>
--   <li><a>sDescription</a> - The stage's description.</li>
--   <li><a>sTags</a> - The collection of tags. Each tag element is
--   associated with a given resource.</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)

-- | Settings for logging access in this stage.
sAccessLogSettings :: Lens' Stage (Maybe AccessLogSettings)

-- | 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 timestamp when the stage was created.
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 timestamp when the stage last updated.
sLastUpdatedDate :: Lens' Stage (Maybe UTCTime)

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

-- | Settings for the canary deployment in this stage.
sCanarySettings :: Lens' Stage (Maybe CanarySettings)

-- | 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 API Gateway.
sStageName :: Lens' Stage (Maybe Text)

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

-- | The collection of tags. Each tag element is associated with a given
--   resource.
sTags :: Lens' Stage (HashMap Text 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> - The string identifier of the associated
--   <tt>RestApi</tt> .</li>
--   <li><a>skStageName</a> - The stage name associated with the stage
--   key.</li>
--   </ul>
stageKey :: StageKey

-- | The string identifier of the associated <tt>RestApi</tt> .
skRestAPIId :: Lens' StageKey (Maybe Text)

-- | The stage name associated with the stage key.
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)

-- | A API Gateway VPC link for a <tt>RestApi</tt> to access resources in
--   an Amazon Virtual Private Cloud (VPC).
--   
--   To enable access to a resource in an Amazon Virtual Private Cloud
--   through Amazon API Gateway, you, as an API developer, create a
--   <tt>VpcLink</tt> resource targeted for one or more network load
--   balancers of the VPC and then integrate an API method with a private
--   integration that uses the <tt>VpcLink</tt> . The private integration
--   has an integration type of <tt>HTTP</tt> or <tt>HTTP_PROXY</tt> and
--   has a connection type of <tt>VPC_LINK</tt> . The integration uses the
--   <tt>connectionId</tt> property to identify the <tt>VpcLink</tt> used.
--   
--   <i>See:</i> <a>vpcLink</a> smart constructor.
data VPCLink

-- | Creates a value of <a>VPCLink</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>vlStatus</a> - The status of the VPC link. The valid values are
--   <tt>AVAILABLE</tt> , <tt>PENDING</tt> , <tt>DELETING</tt> , or
--   <tt>FAILED</tt> . Deploying an API will wait if the status is
--   <tt>PENDING</tt> and will fail if the status is <tt>DELETING</tt>
--   .</li>
--   <li><a>vlTargetARNs</a> - The ARNs of network load balancers of the
--   VPC targeted by the VPC link. The network load balancers must be owned
--   by the same AWS account of the API owner.</li>
--   <li><a>vlName</a> - The name used to label and identify the VPC
--   link.</li>
--   <li><a>vlStatusMessage</a> - A description about the VPC link
--   status.</li>
--   <li><a>vlId</a> - The identifier of the <tt>VpcLink</tt> . It is used
--   in an <a>Integration</a> to reference this <tt>VpcLink</tt> .</li>
--   <li><a>vlDescription</a> - The description of the VPC link.</li>
--   </ul>
vpcLink :: VPCLink

-- | The status of the VPC link. The valid values are <tt>AVAILABLE</tt> ,
--   <tt>PENDING</tt> , <tt>DELETING</tt> , or <tt>FAILED</tt> . Deploying
--   an API will wait if the status is <tt>PENDING</tt> and will fail if
--   the status is <tt>DELETING</tt> .
vlStatus :: Lens' VPCLink (Maybe VPCLinkStatus)

-- | The ARNs of network load balancers of the VPC targeted by the VPC
--   link. The network load balancers must be owned by the same AWS account
--   of the API owner.
vlTargetARNs :: Lens' VPCLink [Text]

-- | The name used to label and identify the VPC link.
vlName :: Lens' VPCLink (Maybe Text)

-- | A description about the VPC link status.
vlStatusMessage :: Lens' VPCLink (Maybe Text)

-- | The identifier of the <tt>VpcLink</tt> . It is used in an
--   <a>Integration</a> to reference this <tt>VpcLink</tt> .
vlId :: Lens' VPCLink (Maybe Text)

-- | The description of the VPC link.
vlDescription :: Lens' VPCLink (Maybe Text)
