/*
* 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 firehose-2015-08-04.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.KinesisFirehose.Model
{
///
/// The details of the VPC of the Amazon ES destination.
///
public partial class VpcConfiguration
{
private string _roleARN;
private List _securityGroupIds = new List();
private List _subnetIds = new List();
///
/// Gets and sets the property RoleARN.
///
/// The ARN of the IAM role that you want the delivery stream to use to create endpoints
/// in the destination VPC. You can use your existing Kinesis Data Firehose delivery role
/// or you can specify a new role. In either case, make sure that the role trusts the
/// Kinesis Data Firehose service principal and that it grants the following permissions:
///
/// -
///
///
ec2:DescribeVpcs
///
/// -
///
///
ec2:DescribeVpcAttribute
///
/// -
///
///
ec2:DescribeSubnets
///
/// -
///
///
ec2:DescribeSecurityGroups
///
/// -
///
///
ec2:DescribeNetworkInterfaces
///
/// -
///
///
ec2:CreateNetworkInterface
///
/// -
///
///
ec2:CreateNetworkInterfacePermission
///
/// -
///
///
ec2:DeleteNetworkInterface
///
///
///
/// If you revoke these permissions after you create the delivery stream, Kinesis Data
/// Firehose can't scale out by creating more ENIs when necessary. You might therefore
/// see a degradation in performance.
///
///
[AWSProperty(Required=true, Min=1, Max=512)]
public string RoleARN
{
get { return this._roleARN; }
set { this._roleARN = value; }
}
// Check to see if RoleARN property is set
internal bool IsSetRoleARN()
{
return this._roleARN != null;
}
///
/// Gets and sets the property SecurityGroupIds.
///
/// The IDs of the security groups that you want Kinesis Data Firehose to use when it
/// creates ENIs in the VPC of the Amazon ES destination. You can use the same security
/// group that the Amazon ES domain uses or different ones. If you specify different security
/// groups here, ensure that they allow outbound HTTPS traffic to the Amazon ES domain's
/// security group. Also ensure that the Amazon ES domain's security group allows HTTPS
/// traffic from the security groups specified here. If you use the same security group
/// for both your delivery stream and the Amazon ES domain, make sure the security group
/// inbound rule allows HTTPS traffic. For more information about security group rules,
/// see Security
/// group rules in the Amazon VPC documentation.
///
///
[AWSProperty(Required=true, Min=1, Max=5)]
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property SubnetIds.
///
/// The IDs of the subnets that you want Kinesis Data Firehose to use to create ENIs in
/// the VPC of the Amazon ES destination. Make sure that the routing tables and inbound
/// and outbound rules allow traffic to flow from the subnets whose IDs are specified
/// here to the subnets that have the destination Amazon ES endpoints. Kinesis Data Firehose
/// creates at least one ENI in each of the subnets that are specified here. Do not delete
/// or modify these ENIs.
///
///
///
/// The number of ENIs that Kinesis Data Firehose creates in the subnets specified here
/// scales up and down automatically based on throughput. To enable Kinesis Data Firehose
/// to scale up the number of ENIs to match throughput, ensure that you have sufficient
/// quota. To help you calculate the quota you need, assume that Kinesis Data Firehose
/// can create up to three ENIs for this delivery stream for each of the subnets specified
/// here. For more information about ENI quota, see Network
/// Interfaces in the Amazon VPC Quotas topic.
///
///
[AWSProperty(Required=true, Min=1, Max=16)]
public List SubnetIds
{
get { return this._subnetIds; }
set { this._subnetIds = value; }
}
// Check to see if SubnetIds property is set
internal bool IsSetSubnetIds()
{
return this._subnetIds != null && this._subnetIds.Count > 0;
}
}
}