/*
 * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.apigatewayv2.model;
import java.io.Serializable;
import javax.annotation.Generated;
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class UpdateAuthorizerResult extends com.amazonaws.AmazonWebServiceResult 
     * 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, don't specify this parameter. Supported only for REQUEST authorizers.
     *  
     * The authorizer identifier.
     *  
     * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda
     * authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is
     * disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour.
     * Supported only for HTTP API Lambda authorizers.
     *  
     * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use
     * JSON Web Tokens (supported only for HTTP APIs).
     *  
     * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda
     * function URI, for example,
     * arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:
     *  
     * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer
     * can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs
     *  
     * The identity source for which authorization is requested.
     *  
     * For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the
     * specified request parameters. The identity source can be headers, query string parameters, stage variables, and
     * context parameters. For example, if an Auth header and a Name query string parameter are defined as identity
     * sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP
     * APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name.
     * These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the
     * identity-related request parameters are present in the request, 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. For HTTP APIs, identity sources are also used as the cache key when caching
     * is enabled. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently
     * only header-based and query parameter-based selections are supported, for example $request.header.Authorization.
     *  
     * The validation expression does not apply to the REQUEST authorizer.
     *  
     * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP
     * APIs.
     *  
     * The name of the authorizer.
     *  
     * 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, don't specify this parameter. Supported only for REQUEST authorizers.
     *  
     * 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, don't specify this parameter. Supported only for REQUEST authorizers.
     *  
     * 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, don't specify this parameter. Supported only for REQUEST authorizers.
     *  
     * The authorizer identifier.
     *  
     * The authorizer identifier.
     *  
     * The authorizer identifier.
     *  
     * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda
     * authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda
     * authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * Specifies the format of the payload sent to an HTTP API Lambda authorizer. Required for HTTP API Lambda
     * authorizers. Supported values are 1.0 and 2.0. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is
     * disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour.
     * Supported only for HTTP API Lambda authorizers.
     *  
     * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is
     * disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour.
     * Supported only for HTTP API Lambda authorizers.
     *  
     * The time to live (TTL) for cached authorizer results, in seconds. If it equals 0, authorization caching is
     * disabled. If it is greater than 0, API Gateway caches authorizer responses. The maximum value is 3600, or 1 hour.
     * Supported only for HTTP API Lambda authorizers.
     *  
     * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use
     * JSON Web Tokens (supported only for HTTP APIs).
     *  
     * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use
     * JSON Web Tokens (supported only for HTTP APIs).
     *  
     * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use
     * JSON Web Tokens (supported only for HTTP APIs).
     *  
     * The authorizer type. Specify REQUEST for a Lambda function using incoming request parameters. Specify JWT to use
     * JSON Web Tokens (supported only for HTTP APIs).
     *  
     * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda
     * function URI, for example,
     * arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:
     *  
     * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda
     * function URI, for example,
     * arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:
     *  
     * The authorizer's Uniform Resource Identifier (URI). For REQUEST authorizers, this must be a well-formed Lambda
     * function URI, for example,
     * arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:
     *  
     * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer
     * can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs
     *  
     * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer
     * can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs
     *  
     * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer
     * can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs
     *  
     * Specifies whether a Lambda authorizer returns a response in a simple format. If enabled, the Lambda authorizer
     * can return a boolean value instead of an IAM policy. Supported only for HTTP APIs. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs
     *  
     * The identity source for which authorization is requested.
     *  
     * For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the
     * specified request parameters. The identity source can be headers, query string parameters, stage variables, and
     * context parameters. For example, if an Auth header and a Name query string parameter are defined as identity
     * sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP
     * APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name.
     * These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the
     * identity-related request parameters are present in the request, 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. For HTTP APIs, identity sources are also used as the cache key when caching
     * is enabled. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently
     * only header-based and query parameter-based selections are supported, for example $request.header.Authorization.
     * 
* For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the * specified request parameters. The identity source can be headers, query string parameters, stage * variables, and context parameters. For example, if an Auth header and a Name query string parameter are * defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for * WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, * $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation * for Lambda-based authorizers by verifying all of the identity-related request parameters are present in * the request, 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. * For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, * see Working with AWS Lambda authorizers for HTTP APIs. *
*
     *         For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests.
     *         Currently only header-based and query parameter-based selections are supported, for example
     *         $request.header.Authorization.
     */
    public java.util.List 
     * The identity source for which authorization is requested.
     *  
     * For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the
     * specified request parameters. The identity source can be headers, query string parameters, stage variables, and
     * context parameters. For example, if an Auth header and a Name query string parameter are defined as identity
     * sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP
     * APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name.
     * These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the
     * identity-related request parameters are present in the request, 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. For HTTP APIs, identity sources are also used as the cache key when caching
     * is enabled. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently
     * only header-based and query parameter-based selections are supported, for example $request.header.Authorization.
     * 
* For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the * specified request parameters. The identity source can be headers, query string parameters, stage * variables, and context parameters. For example, if an Auth header and a Name query string parameter are * defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for * WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, * $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation * for Lambda-based authorizers by verifying all of the identity-related request parameters are present in * the request, 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. * For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see * * Working with AWS Lambda authorizers for HTTP APIs. *
*
     *        For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests.
     *        Currently only header-based and query parameter-based selections are supported, for example
     *        $request.header.Authorization.
     */
    public void setIdentitySource(java.util.Collection 
     * The identity source for which authorization is requested.
     *  
     * For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the
     * specified request parameters. The identity source can be headers, query string parameters, stage variables, and
     * context parameters. For example, if an Auth header and a Name query string parameter are defined as identity
     * sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP
     * APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name.
     * These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the
     * identity-related request parameters are present in the request, 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. For HTTP APIs, identity sources are also used as the cache key when caching
     * is enabled. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently
     * only header-based and query parameter-based selections are supported, for example $request.header.Authorization.
     *  
     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setIdentitySource(java.util.Collection)} or {@link #withIdentitySource(java.util.Collection)} if you want
     * to override the existing values.
     * 
* For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the * specified request parameters. The identity source can be headers, query string parameters, stage * variables, and context parameters. For example, if an Auth header and a Name query string parameter are * defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for * WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, * $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation * for Lambda-based authorizers by verifying all of the identity-related request parameters are present in * the request, 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. * For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see * * Working with AWS Lambda authorizers for HTTP APIs. *
*
     *        For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests.
     *        Currently only header-based and query parameter-based selections are supported, for example
     *        $request.header.Authorization.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public UpdateAuthorizerResult withIdentitySource(String... identitySource) {
        if (this.identitySource == null) {
            setIdentitySource(new java.util.ArrayList 
     * The identity source for which authorization is requested.
     *  
     * For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the
     * specified request parameters. The identity source can be headers, query string parameters, stage variables, and
     * context parameters. For example, if an Auth header and a Name query string parameter are defined as identity
     * sources, this value is route.request.header.Auth, route.request.querystring.Name for WebSocket APIs. For HTTP
     * APIs, use selection expressions prefixed with $, for example, $request.header.Auth, $request.querystring.Name.
     * These parameters are used to perform runtime validation for Lambda-based authorizers by verifying all of the
     * identity-related request parameters are present in the request, 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. For HTTP APIs, identity sources are also used as the cache key when caching
     * is enabled. To learn more, see Working with
     * AWS Lambda authorizers for HTTP APIs.
     *  
     * For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests. Currently
     * only header-based and query parameter-based selections are supported, for example $request.header.Authorization.
     * 
* For a REQUEST authorizer, this is optional. The value is a set of one or more mapping expressions of the * specified request parameters. The identity source can be headers, query string parameters, stage * variables, and context parameters. For example, if an Auth header and a Name query string parameter are * defined as identity sources, this value is route.request.header.Auth, route.request.querystring.Name for * WebSocket APIs. For HTTP APIs, use selection expressions prefixed with $, for example, * $request.header.Auth, $request.querystring.Name. These parameters are used to perform runtime validation * for Lambda-based authorizers by verifying all of the identity-related request parameters are present in * the request, 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. * For HTTP APIs, identity sources are also used as the cache key when caching is enabled. To learn more, see * * Working with AWS Lambda authorizers for HTTP APIs. *
*
     *        For JWT, a single entry that specifies where to extract the JSON Web Token (JWT) from inbound requests.
     *        Currently only header-based and query parameter-based selections are supported, for example
     *        $request.header.Authorization.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public UpdateAuthorizerResult withIdentitySource(java.util.Collection 
     * The validation expression does not apply to the REQUEST authorizer.
     *  
     * The validation expression does not apply to the REQUEST authorizer.
     *  
     * The validation expression does not apply to the REQUEST authorizer.
     *  
     * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP
     * APIs.
     *  
     * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP
     * APIs.
     *  
     * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP
     * APIs.
     *  
     * The name of the authorizer.
     *  
     * The name of the authorizer.
     *  
     * The name of the authorizer.
     *