/* * 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; import com.amazonaws.AmazonWebServiceRequest; /** *

* Creates a new Authorizer resource to represent an authorizer. *

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateAuthorizerRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The API identifier. *

*/ private String apiId; /** *

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

*/ private String authorizerCredentialsArn; /** *

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

*/ private String authorizerPayloadFormatVersion; /** *

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

*/ private Integer authorizerResultTtlInSeconds; /** *

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

*/ private String authorizerType; /** *

* 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: * {account_id}:function:{lambda_function_name}/invocations. * In general, the URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api} , * where {region} is the same as the region hosting the Lambda function, path indicates * that the remaining substring in the URI should be treated as the path to the resource, including the initial /. * For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only * for REQUEST authorizers. *

*/ private String authorizerUri; /** *

* Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must * return an IAM policy. 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 *

*/ private Boolean enableSimpleResponses; /** *

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

*/ private java.util.List identitySource; /** *

* This parameter is not used. *

*/ private String identityValidationExpression; /** *

* Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP * APIs. *

*/ private JWTConfiguration jwtConfiguration; /** *

* The name of the authorizer. *

*/ private String name; /** *

* The API identifier. *

* * @param apiId * The API identifier. */ public void setApiId(String apiId) { this.apiId = apiId; } /** *

* The API identifier. *

* * @return The API identifier. */ public String getApiId() { return this.apiId; } /** *

* The API identifier. *

* * @param apiId * The API identifier. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withApiId(String apiId) { setApiId(apiId); return this; } /** *

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

* * @param authorizerCredentialsArn * 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. */ public void setAuthorizerCredentialsArn(String authorizerCredentialsArn) { this.authorizerCredentialsArn = authorizerCredentialsArn; } /** *

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

* * @return 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. */ public String getAuthorizerCredentialsArn() { return this.authorizerCredentialsArn; } /** *

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

* * @param authorizerCredentialsArn * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withAuthorizerCredentialsArn(String authorizerCredentialsArn) { setAuthorizerCredentialsArn(authorizerCredentialsArn); return this; } /** *

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

* * @param authorizerPayloadFormatVersion * 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. */ public void setAuthorizerPayloadFormatVersion(String authorizerPayloadFormatVersion) { this.authorizerPayloadFormatVersion = authorizerPayloadFormatVersion; } /** *

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

* * @return 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. */ public String getAuthorizerPayloadFormatVersion() { return this.authorizerPayloadFormatVersion; } /** *

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

* * @param authorizerPayloadFormatVersion * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withAuthorizerPayloadFormatVersion(String authorizerPayloadFormatVersion) { setAuthorizerPayloadFormatVersion(authorizerPayloadFormatVersion); return this; } /** *

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

* * @param authorizerResultTtlInSeconds * 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. */ public void setAuthorizerResultTtlInSeconds(Integer authorizerResultTtlInSeconds) { this.authorizerResultTtlInSeconds = authorizerResultTtlInSeconds; } /** *

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

* * @return 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. */ public Integer getAuthorizerResultTtlInSeconds() { return this.authorizerResultTtlInSeconds; } /** *

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

* * @param authorizerResultTtlInSeconds * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withAuthorizerResultTtlInSeconds(Integer authorizerResultTtlInSeconds) { setAuthorizerResultTtlInSeconds(authorizerResultTtlInSeconds); return this; } /** *

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

* * @param authorizerType * 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). * @see AuthorizerType */ public void setAuthorizerType(String authorizerType) { this.authorizerType = authorizerType; } /** *

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

* * @return 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). * @see AuthorizerType */ public String getAuthorizerType() { return this.authorizerType; } /** *

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

* * @param authorizerType * 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). * @return Returns a reference to this object so that method calls can be chained together. * @see AuthorizerType */ public CreateAuthorizerRequest withAuthorizerType(String authorizerType) { setAuthorizerType(authorizerType); return this; } /** *

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

* * @param authorizerType * 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). * @return Returns a reference to this object so that method calls can be chained together. * @see AuthorizerType */ public CreateAuthorizerRequest withAuthorizerType(AuthorizerType authorizerType) { this.authorizerType = authorizerType.toString(); return this; } /** *

* 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: * {account_id}:function:{lambda_function_name}/invocations. * In general, the URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api} , * where {region} is the same as the region hosting the Lambda function, path indicates * that the remaining substring in the URI should be treated as the path to the resource, including the initial /. * For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only * for REQUEST authorizers. *

* * @param authorizerUri * 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:{account_id * }:function:{lambda_function_name}/invocations. In general, the * URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api * } , where {region} is the same as the region hosting the Lambda * function, path indicates that the remaining substring in the URI should be treated as the path to the * resource, including the initial /. For Lambda functions, this is usually of the form * /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. */ public void setAuthorizerUri(String authorizerUri) { this.authorizerUri = authorizerUri; } /** *

* 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: * {account_id}:function:{lambda_function_name}/invocations. * In general, the URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api} , * where {region} is the same as the region hosting the Lambda function, path indicates * that the remaining substring in the URI should be treated as the path to the resource, including the initial /. * For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only * for REQUEST authorizers. *

* * @return 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:{account_id * }:function:{lambda_function_name}/invocations. In general, the * URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api * } , where {region} is the same as the region hosting the Lambda * function, path indicates that the remaining substring in the URI should be treated as the path to the * resource, including the initial /. For Lambda functions, this is usually of the form * /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. */ public String getAuthorizerUri() { return this.authorizerUri; } /** *

* 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: * {account_id}:function:{lambda_function_name}/invocations. * In general, the URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api} , * where {region} is the same as the region hosting the Lambda function, path indicates * that the remaining substring in the URI should be treated as the path to the resource, including the initial /. * For Lambda functions, this is usually of the form /2015-03-31/functions/[FunctionARN]/invocations. Supported only * for REQUEST authorizers. *

* * @param authorizerUri * 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:{account_id * }:function:{lambda_function_name}/invocations. In general, the * URI has this form: * arn:aws:apigateway:{region}:lambda:path/{service_api * } , where {region} is the same as the region hosting the Lambda * function, path indicates that the remaining substring in the URI should be treated as the path to the * resource, including the initial /. For Lambda functions, this is usually of the form * /2015-03-31/functions/[FunctionARN]/invocations. Supported only for REQUEST authorizers. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withAuthorizerUri(String authorizerUri) { setAuthorizerUri(authorizerUri); return this; } /** *

* Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must * return an IAM policy. 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 *

* * @param enableSimpleResponses * Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda * authorizer must return an IAM policy. 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 */ public void setEnableSimpleResponses(Boolean enableSimpleResponses) { this.enableSimpleResponses = enableSimpleResponses; } /** *

* Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must * return an IAM policy. 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 *

* * @return Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda * authorizer must return an IAM policy. 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 */ public Boolean getEnableSimpleResponses() { return this.enableSimpleResponses; } /** *

* Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must * return an IAM policy. 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 *

* * @param enableSimpleResponses * Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda * authorizer must return an IAM policy. 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 * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withEnableSimpleResponses(Boolean enableSimpleResponses) { setEnableSimpleResponses(enableSimpleResponses); return this; } /** *

* Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda authorizer must * return an IAM policy. 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 *

* * @return Specifies whether a Lambda authorizer returns a response in a simple format. By default, a Lambda * authorizer must return an IAM policy. 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 */ public Boolean isEnableSimpleResponses() { return this.enableSimpleResponses; } /** *

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

* * @return 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. */ public java.util.List getIdentitySource() { return identitySource; } /** *

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

* * @param identitySource * 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. */ public void setIdentitySource(java.util.Collection identitySource) { if (identitySource == null) { this.identitySource = null; return; } this.identitySource = new java.util.ArrayList(identitySource); } /** *

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

* * @param identitySource * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withIdentitySource(String... identitySource) { if (this.identitySource == null) { setIdentitySource(new java.util.ArrayList(identitySource.length)); } for (String ele : identitySource) { this.identitySource.add(ele); } return this; } /** *

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

* * @param identitySource * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withIdentitySource(java.util.Collection identitySource) { setIdentitySource(identitySource); return this; } /** *

* This parameter is not used. *

* * @param identityValidationExpression * This parameter is not used. */ public void setIdentityValidationExpression(String identityValidationExpression) { this.identityValidationExpression = identityValidationExpression; } /** *

* This parameter is not used. *

* * @return This parameter is not used. */ public String getIdentityValidationExpression() { return this.identityValidationExpression; } /** *

* This parameter is not used. *

* * @param identityValidationExpression * This parameter is not used. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withIdentityValidationExpression(String identityValidationExpression) { setIdentityValidationExpression(identityValidationExpression); return this; } /** *

* Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP * APIs. *

* * @param jwtConfiguration * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for * HTTP APIs. */ public void setJwtConfiguration(JWTConfiguration jwtConfiguration) { this.jwtConfiguration = jwtConfiguration; } /** *

* Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP * APIs. *

* * @return Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only * for HTTP APIs. */ public JWTConfiguration getJwtConfiguration() { return this.jwtConfiguration; } /** *

* Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for HTTP * APIs. *

* * @param jwtConfiguration * Represents the configuration of a JWT authorizer. Required for the JWT authorizer type. Supported only for * HTTP APIs. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withJwtConfiguration(JWTConfiguration jwtConfiguration) { setJwtConfiguration(jwtConfiguration); return this; } /** *

* The name of the authorizer. *

* * @param name * The name of the authorizer. */ public void setName(String name) { this.name = name; } /** *

* The name of the authorizer. *

* * @return The name of the authorizer. */ public String getName() { return this.name; } /** *

* The name of the authorizer. *

* * @param name * The name of the authorizer. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateAuthorizerRequest withName(String name) { setName(name); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getApiId() != null) sb.append("ApiId: ").append(getApiId()).append(","); if (getAuthorizerCredentialsArn() != null) sb.append("AuthorizerCredentialsArn: ").append(getAuthorizerCredentialsArn()).append(","); if (getAuthorizerPayloadFormatVersion() != null) sb.append("AuthorizerPayloadFormatVersion: ").append(getAuthorizerPayloadFormatVersion()).append(","); if (getAuthorizerResultTtlInSeconds() != null) sb.append("AuthorizerResultTtlInSeconds: ").append(getAuthorizerResultTtlInSeconds()).append(","); if (getAuthorizerType() != null) sb.append("AuthorizerType: ").append(getAuthorizerType()).append(","); if (getAuthorizerUri() != null) sb.append("AuthorizerUri: ").append(getAuthorizerUri()).append(","); if (getEnableSimpleResponses() != null) sb.append("EnableSimpleResponses: ").append(getEnableSimpleResponses()).append(","); if (getIdentitySource() != null) sb.append("IdentitySource: ").append(getIdentitySource()).append(","); if (getIdentityValidationExpression() != null) sb.append("IdentityValidationExpression: ").append(getIdentityValidationExpression()).append(","); if (getJwtConfiguration() != null) sb.append("JwtConfiguration: ").append(getJwtConfiguration()).append(","); if (getName() != null) sb.append("Name: ").append(getName()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateAuthorizerRequest == false) return false; CreateAuthorizerRequest other = (CreateAuthorizerRequest) obj; if (other.getApiId() == null ^ this.getApiId() == null) return false; if (other.getApiId() != null && other.getApiId().equals(this.getApiId()) == false) return false; if (other.getAuthorizerCredentialsArn() == null ^ this.getAuthorizerCredentialsArn() == null) return false; if (other.getAuthorizerCredentialsArn() != null && other.getAuthorizerCredentialsArn().equals(this.getAuthorizerCredentialsArn()) == false) return false; if (other.getAuthorizerPayloadFormatVersion() == null ^ this.getAuthorizerPayloadFormatVersion() == null) return false; if (other.getAuthorizerPayloadFormatVersion() != null && other.getAuthorizerPayloadFormatVersion().equals(this.getAuthorizerPayloadFormatVersion()) == false) return false; if (other.getAuthorizerResultTtlInSeconds() == null ^ this.getAuthorizerResultTtlInSeconds() == null) return false; if (other.getAuthorizerResultTtlInSeconds() != null && other.getAuthorizerResultTtlInSeconds().equals(this.getAuthorizerResultTtlInSeconds()) == false) return false; if (other.getAuthorizerType() == null ^ this.getAuthorizerType() == null) return false; if (other.getAuthorizerType() != null && other.getAuthorizerType().equals(this.getAuthorizerType()) == false) return false; if (other.getAuthorizerUri() == null ^ this.getAuthorizerUri() == null) return false; if (other.getAuthorizerUri() != null && other.getAuthorizerUri().equals(this.getAuthorizerUri()) == false) return false; if (other.getEnableSimpleResponses() == null ^ this.getEnableSimpleResponses() == null) return false; if (other.getEnableSimpleResponses() != null && other.getEnableSimpleResponses().equals(this.getEnableSimpleResponses()) == false) return false; if (other.getIdentitySource() == null ^ this.getIdentitySource() == null) return false; if (other.getIdentitySource() != null && other.getIdentitySource().equals(this.getIdentitySource()) == false) return false; if (other.getIdentityValidationExpression() == null ^ this.getIdentityValidationExpression() == null) return false; if (other.getIdentityValidationExpression() != null && other.getIdentityValidationExpression().equals(this.getIdentityValidationExpression()) == false) return false; if (other.getJwtConfiguration() == null ^ this.getJwtConfiguration() == null) return false; if (other.getJwtConfiguration() != null && other.getJwtConfiguration().equals(this.getJwtConfiguration()) == false) return false; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getApiId() == null) ? 0 : getApiId().hashCode()); hashCode = prime * hashCode + ((getAuthorizerCredentialsArn() == null) ? 0 : getAuthorizerCredentialsArn().hashCode()); hashCode = prime * hashCode + ((getAuthorizerPayloadFormatVersion() == null) ? 0 : getAuthorizerPayloadFormatVersion().hashCode()); hashCode = prime * hashCode + ((getAuthorizerResultTtlInSeconds() == null) ? 0 : getAuthorizerResultTtlInSeconds().hashCode()); hashCode = prime * hashCode + ((getAuthorizerType() == null) ? 0 : getAuthorizerType().hashCode()); hashCode = prime * hashCode + ((getAuthorizerUri() == null) ? 0 : getAuthorizerUri().hashCode()); hashCode = prime * hashCode + ((getEnableSimpleResponses() == null) ? 0 : getEnableSimpleResponses().hashCode()); hashCode = prime * hashCode + ((getIdentitySource() == null) ? 0 : getIdentitySource().hashCode()); hashCode = prime * hashCode + ((getIdentityValidationExpression() == null) ? 0 : getIdentityValidationExpression().hashCode()); hashCode = prime * hashCode + ((getJwtConfiguration() == null) ? 0 : getJwtConfiguration().hashCode()); hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); return hashCode; } @Override public CreateAuthorizerRequest clone() { return (CreateAuthorizerRequest) super.clone(); } }