/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the apigateway-2015-07-09.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.APIGateway.Model
{
///
/// Container for the parameters to the CreateAuthorizer operation.
/// Adds a new Authorizer resource to an existing RestApi resource.
///
public partial class CreateAuthorizerRequest : AmazonAPIGatewayRequest
{
private string _authorizerCredentials;
private int? _authorizerResultTtlInSeconds;
private string _authorizerUri;
private string _authType;
private string _identitySource;
private string _identityValidationExpression;
private string _name;
private List _providerarNs = new List();
private string _restApiId;
private AuthorizerType _type;
///
/// Gets and sets the property AuthorizerCredentials.
///
/// 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.
///
///
public string AuthorizerCredentials
{
get { return this._authorizerCredentials; }
set { this._authorizerCredentials = value; }
}
// Check to see if AuthorizerCredentials property is set
internal bool IsSetAuthorizerCredentials()
{
return this._authorizerCredentials != null;
}
///
/// Gets and sets the property AuthorizerResultTtlInSeconds.
///
/// 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.
///
///
public int AuthorizerResultTtlInSeconds
{
get { return this._authorizerResultTtlInSeconds.GetValueOrDefault(); }
set { this._authorizerResultTtlInSeconds = value; }
}
// Check to see if AuthorizerResultTtlInSeconds property is set
internal bool IsSetAuthorizerResultTtlInSeconds()
{
return this._authorizerResultTtlInSeconds.HasValue;
}
///
/// Gets and sets the property AuthorizerUri.
///
/// Specifies the authorizer's Uniform Resource Identifier (URI). For TOKEN
/// or 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
.
///
///
public string AuthorizerUri
{
get { return this._authorizerUri; }
set { this._authorizerUri = value; }
}
// Check to see if AuthorizerUri property is set
internal bool IsSetAuthorizerUri()
{
return this._authorizerUri != null;
}
///
/// Gets and sets the property AuthType.
///
/// Optional customer-defined field, used in OpenAPI imports and exports without functional
/// impact.
///
///
public string AuthType
{
get { return this._authType; }
set { this._authType = value; }
}
// Check to see if AuthType property is set
internal bool IsSetAuthType()
{
return this._authType != null;
}
///
/// Gets and sets the property IdentitySource.
///
/// The identity source for which authorization is requested. For a TOKEN
/// or COGNITO_USER_POOLS
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 Auth
,
/// the header mapping expression is method.request.header.Auth
. For the
/// REQUEST
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 Auth
header, a Name
/// query string parameter are defined as identity sources, this value is method.request.header.Auth,
/// method.request.querystring.Name
. These parameters will be used to derive the
/// authorization caching key and to perform runtime validation of the REQUEST
/// 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.
///
///
public string IdentitySource
{
get { return this._identitySource; }
set { this._identitySource = value; }
}
// Check to see if IdentitySource property is set
internal bool IsSetIdentitySource()
{
return this._identitySource != null;
}
///
/// Gets and sets the property IdentityValidationExpression.
///
/// A validation expression for the incoming identity token. For TOKEN
authorizers,
/// this value is a regular expression. For COGNITO_USER_POOLS
authorizers,
/// API Gateway will match the aud
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 REQUEST
/// authorizer.
///
///
public string IdentityValidationExpression
{
get { return this._identityValidationExpression; }
set { this._identityValidationExpression = value; }
}
// Check to see if IdentityValidationExpression property is set
internal bool IsSetIdentityValidationExpression()
{
return this._identityValidationExpression != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the authorizer.
///
///
[AWSProperty(Required=true)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ProviderARNs.
///
/// A list of the Amazon Cognito user pool ARNs for the COGNITO_USER_POOLS
/// authorizer. Each element is of this format: arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}
.
/// For a TOKEN
or REQUEST
authorizer, this is not defined.
///
///
///
public List ProviderARNs
{
get { return this._providerarNs; }
set { this._providerarNs = value; }
}
// Check to see if ProviderARNs property is set
internal bool IsSetProviderARNs()
{
return this._providerarNs != null && this._providerarNs.Count > 0;
}
///
/// Gets and sets the property RestApiId.
///
/// The string identifier of the associated RestApi.
///
///
[AWSProperty(Required=true)]
public string RestApiId
{
get { return this._restApiId; }
set { this._restApiId = value; }
}
// Check to see if RestApiId property is set
internal bool IsSetRestApiId()
{
return this._restApiId != null;
}
///
/// Gets and sets the property Type.
///
/// The authorizer type. Valid values are TOKEN
for a Lambda function using
/// a single authorization token submitted in a custom header, REQUEST
for
/// a Lambda function using incoming request parameters, and COGNITO_USER_POOLS
/// for using an Amazon Cognito user pool.
///
///
[AWSProperty(Required=true)]
public AuthorizerType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}