/*
* 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
{
///
/// Represents an HTTP, HTTP_PROXY, AWS, AWS_PROXY, or Mock integration.
///
public partial class UpdateIntegrationResponse : AmazonWebServiceResponse
{
private List _cacheKeyParameters = new List();
private string _cacheNamespace;
private string _connectionId;
private ConnectionType _connectionType;
private ContentHandlingStrategy _contentHandling;
private string _credentials;
private string _httpMethod;
private Dictionary _integrationResponses = new Dictionary();
private string _passthroughBehavior;
private Dictionary _requestParameters = new Dictionary();
private Dictionary _requestTemplates = new Dictionary();
private int? _timeoutInMillis;
private TlsConfig _tlsConfig;
private IntegrationType _type;
private string _uri;
///
/// Gets and sets the property CacheKeyParameters.
///
/// A list of request parameters whose values API Gateway caches. To be valid values for
/// cacheKeyParameters
, these parameters must also be specified for Method
/// requestParameters
.
///
///
public List CacheKeyParameters
{
get { return this._cacheKeyParameters; }
set { this._cacheKeyParameters = value; }
}
// Check to see if CacheKeyParameters property is set
internal bool IsSetCacheKeyParameters()
{
return this._cacheKeyParameters != null && this._cacheKeyParameters.Count > 0;
}
///
/// Gets and sets the property CacheNamespace.
///
/// Specifies a group of related cached parameters. By default, API Gateway uses the resource
/// ID as the cacheNamespace
. You can specify the same cacheNamespace
/// across resources to return the same cached data for requests to different resources.
///
///
public string CacheNamespace
{
get { return this._cacheNamespace; }
set { this._cacheNamespace = value; }
}
// Check to see if CacheNamespace property is set
internal bool IsSetCacheNamespace()
{
return this._cacheNamespace != null;
}
///
/// Gets and sets the property ConnectionId.
///
/// The ID of the VpcLink used for the integration when connectionType=VPC_LINK
/// and undefined, otherwise.
///
///
public string ConnectionId
{
get { return this._connectionId; }
set { this._connectionId = value; }
}
// Check to see if ConnectionId property is set
internal bool IsSetConnectionId()
{
return this._connectionId != null;
}
///
/// Gets and sets the property ConnectionType.
///
/// The type of the network connection to the integration endpoint. The valid value is
/// INTERNET
for connections through the public routable internet or VPC_LINK
/// for private connections between API Gateway and a network load balancer in a VPC.
/// The default value is INTERNET
.
///
///
public ConnectionType ConnectionType
{
get { return this._connectionType; }
set { this._connectionType = value; }
}
// Check to see if ConnectionType property is set
internal bool IsSetConnectionType()
{
return this._connectionType != null;
}
///
/// Gets and sets the property ContentHandling.
///
/// Specifies how to handle request payload content type conversions. Supported values
/// are CONVERT_TO_BINARY
and CONVERT_TO_TEXT
, with the following
/// behaviors:
///
///
///
/// 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 passthroughBehavior
/// is configured to support payload pass-through.
///
///
public ContentHandlingStrategy ContentHandling
{
get { return this._contentHandling; }
set { this._contentHandling = value; }
}
// Check to see if ContentHandling property is set
internal bool IsSetContentHandling()
{
return this._contentHandling != null;
}
///
/// Gets and sets the property Credentials.
///
/// 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 arn:aws:iam::\*:user/\*
.
/// To use resource-based permissions on supported AWS services, specify null.
///
///
public string Credentials
{
get { return this._credentials; }
set { this._credentials = value; }
}
// Check to see if Credentials property is set
internal bool IsSetCredentials()
{
return this._credentials != null;
}
///
/// Gets and sets the property HttpMethod.
///
/// Specifies the integration's HTTP method type.
///
///
public string HttpMethod
{
get { return this._httpMethod; }
set { this._httpMethod = value; }
}
// Check to see if HttpMethod property is set
internal bool IsSetHttpMethod()
{
return this._httpMethod != null;
}
///
/// Gets and sets the property IntegrationResponses.
///
/// Specifies the integration's responses.
///
///
public Dictionary IntegrationResponses
{
get { return this._integrationResponses; }
set { this._integrationResponses = value; }
}
// Check to see if IntegrationResponses property is set
internal bool IsSetIntegrationResponses()
{
return this._integrationResponses != null && this._integrationResponses.Count > 0;
}
///
/// Gets and sets the property PassthroughBehavior.
///
/// 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 requestTemplates
.
/// The valid value is one of the following: WHEN_NO_MATCH
: 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. WHEN_NO_TEMPLATES
:
/// 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 415 Unsupported Media Type response. NEVER
:
/// rejects the method request with an HTTP 415 Unsupported Media Type 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.
///
///
public string PassthroughBehavior
{
get { return this._passthroughBehavior; }
set { this._passthroughBehavior = value; }
}
// Check to see if PassthroughBehavior property is set
internal bool IsSetPassthroughBehavior()
{
return this._passthroughBehavior != null;
}
///
/// Gets and sets the property RequestParameters.
///
/// 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 method.request.{location}.{name}
, where
/// location
is querystring
, path
, or header
/// and name
must be a valid and unique method request parameter name.
///
///
public Dictionary RequestParameters
{
get { return this._requestParameters; }
set { this._requestParameters = value; }
}
// Check to see if RequestParameters property is set
internal bool IsSetRequestParameters()
{
return this._requestParameters != null && this._requestParameters.Count > 0;
}
///
/// Gets and sets the property RequestTemplates.
///
/// 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.
///
///
public Dictionary RequestTemplates
{
get { return this._requestTemplates; }
set { this._requestTemplates = value; }
}
// Check to see if RequestTemplates property is set
internal bool IsSetRequestTemplates()
{
return this._requestTemplates != null && this._requestTemplates.Count > 0;
}
///
/// Gets and sets the property TimeoutInMillis.
///
/// Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds
/// or 29 seconds.
///
///
public int TimeoutInMillis
{
get { return this._timeoutInMillis.GetValueOrDefault(); }
set { this._timeoutInMillis = value; }
}
// Check to see if TimeoutInMillis property is set
internal bool IsSetTimeoutInMillis()
{
return this._timeoutInMillis.HasValue;
}
///
/// Gets and sets the property TlsConfig.
///
/// Specifies the TLS configuration for an integration.
///
///
public TlsConfig TlsConfig
{
get { return this._tlsConfig; }
set { this._tlsConfig = value; }
}
// Check to see if TlsConfig property is set
internal bool IsSetTlsConfig()
{
return this._tlsConfig != null;
}
///
/// Gets and sets the property Type.
///
/// Specifies an API method integration type. The valid value is one of the following:
///
///
///
/// For the HTTP and HTTP proxy integrations, each integration can specify a protocol
/// (http/https
), 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 connectionType
/// of VPC_LINK
is referred to as a private integration and uses a VpcLink
/// to connect API Gateway to a network load balancer of a VPC.
///
///
public IntegrationType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
///
/// Gets and sets the property Uri.
///
/// Specifies Uniform Resource Identifier (URI) of the integration endpoint.
///
///
///
/// For HTTP
or HTTP_PROXY
integrations, the URI must be a fully
/// formed, encoded HTTP(S) URL according to the RFC-3986 specification, for either standard
/// integration, where connectionType
is not VPC_LINK
, or private
/// integration, where connectionType
is VPC_LINK
. For a private
/// HTTP integration, the URI is not used for routing. For AWS
or AWS_PROXY
/// integrations, the URI is of the form arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}
.
/// Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name
/// of the integrated Amazon Web Services service (e.g., s3); and {subdomain} is a designated
/// subdomain supported by certain Amazon Web Services service for fast host-name lookup.
/// action can be used for an Amazon Web Services service action-based API, using an Action={name}&{p1}={v1}&p2={v2}...
/// query string. The ensuing {service_api} refers to a supported action {name} plus any
/// required input parameters. Alternatively, path can be used for an AWS service path-based
/// API. The ensuing service_api refers to the path to an Amazon Web Services service
/// resource, including the region of the integrated Amazon Web Services service, if applicable.
/// For example, for integration with the S3 API of GetObject, the uri can be either arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}
/// or arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}
///
///
public string Uri
{
get { return this._uri; }
set { this._uri = value; }
}
// Check to see if Uri property is set
internal bool IsSetUri()
{
return this._uri != null;
}
}
}