/*
* 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 PutIntegration operation.
/// Sets up a method's integration.
///
public partial class PutIntegrationRequest : AmazonAPIGatewayRequest
{
private List _cacheKeyParameters = new List();
private string _cacheNamespace;
private string _connectionId;
private ConnectionType _connectionType;
private ContentHandlingStrategy _contentHandling;
private string _credentials;
private string _httpMethod;
private string _integrationHttpMethod;
private string _passthroughBehavior;
private Dictionary _requestParameters = new Dictionary();
private Dictionary _requestTemplates = new Dictionary();
private string _resourceId;
private string _restApiId;
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. Specify this value only if you specify
/// VPC_LINK
as the connection type.
///
///
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 whether credentials are required for a put integration.
///
///
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 HTTP method for the integration.
///
///
[AWSProperty(Required=true)]
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 IntegrationHttpMethod.
///
/// The HTTP method for the integration.
///
///
public string IntegrationHttpMethod
{
get { return this._integrationHttpMethod; }
set { this._integrationHttpMethod = value; }
}
// Check to see if IntegrationHttpMethod property is set
internal bool IsSetIntegrationHttpMethod()
{
return this._integrationHttpMethod != null;
}
///
/// Gets and sets the property PassthroughBehavior.
///
/// 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 requestTemplates
/// property on the Integration resource. There are three valid values: WHEN_NO_MATCH
,
/// WHEN_NO_TEMPLATES
, and NEVER
.
///
///
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 ResourceId.
///
/// Specifies a put integration request's resource ID.
///
///
[AWSProperty(Required=true)]
public string ResourceId
{
get { return this._resourceId; }
set { this._resourceId = value; }
}
// Check to see if ResourceId property is set
internal bool IsSetResourceId()
{
return this._resourceId != null;
}
///
/// 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 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.
///
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 a put integration input's type.
///
///
[AWSProperty(Required=true)]
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 Amazon Web Services
/// 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;
}
}
}