Class: AWSCDK::MediaConnect::CfnFlow::VPCInterfaceProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
media_connect/cfn_flow.rb

Overview

The details of a VPC interface.

When configuring VPC interfaces for NDI outputs, keep in mind the following:

  • VPC interfaces must be defined as nested attributes within the AWS::MediaConnect::Flow resource, and not within the top-level AWS::MediaConnect::FlowVpcInterface resource.
  • There's a maximum limit of three VPC interfaces for each flow. If you've already reached this limit, you can't update the flow to use a different VPC interface without first removing an existing one.

To update your VPC interfaces in this scenario, you must first remove the VPC interface that’s not being used. Next, add the new VPC interfaces. Lastly, update the VpcInterfaceAdapter in the NDIConfig property. These changes must be performed as separate manual operations and cannot be done through a single template update.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, role_arn:, security_group_ids:, subnet_id:, network_interface_ids: nil, network_interface_type: nil, tags: nil) ⇒ VPCInterfaceProperty

Returns a new instance of VPCInterfaceProperty.

Parameters:

  • name (String)

    Immutable and has to be a unique against other VpcInterfaces in this Flow.

  • role_arn (String)

    A role Arn MediaConnect can assume to create ENIs in your account.

  • security_group_ids (Array<String>)

    Security Group IDs to be used on ENI.

  • subnet_id (String)

    Subnet must be in the AZ of the Flow.

  • network_interface_ids (Array<String>, nil) (defaults to: nil)

    IDs of the network interfaces created in customer's account by MediaConnect .

  • network_interface_type (String, nil) (defaults to: nil)

    The type of network interface.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    Key-value pairs that can be used to tag this VPC interface.



2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
# File 'media_connect/cfn_flow.rb', line 2369

def initialize(name:, role_arn:, security_group_ids:, subnet_id:, network_interface_ids: nil, network_interface_type: nil, tags: nil)
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @role_arn = role_arn
  Jsii::Type.check_type(@role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "roleArn")
  @security_group_ids = security_group_ids
  Jsii::Type.check_type(@security_group_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "securityGroupIds")
  @subnet_id = subnet_id
  Jsii::Type.check_type(@subnet_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "subnetId")
  @network_interface_ids = network_interface_ids
  Jsii::Type.check_type(@network_interface_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "networkInterfaceIds") unless @network_interface_ids.nil?
  @network_interface_type = network_interface_type
  Jsii::Type.check_type(@network_interface_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "networkInterfaceType") unless @network_interface_type.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
end

Instance Attribute Details

#nameString (readonly)

Immutable and has to be a unique against other VpcInterfaces in this Flow.



2390
2391
2392
# File 'media_connect/cfn_flow.rb', line 2390

def name
  @name
end

#network_interface_idsArray<String>? (readonly)

IDs of the network interfaces created in customer's account by MediaConnect .



2410
2411
2412
# File 'media_connect/cfn_flow.rb', line 2410

def network_interface_ids
  @network_interface_ids
end

#network_interface_typeString? (readonly)

The type of network interface.



2415
2416
2417
# File 'media_connect/cfn_flow.rb', line 2415

def network_interface_type
  @network_interface_type
end

#role_arnString (readonly)

A role Arn MediaConnect can assume to create ENIs in your account.



2395
2396
2397
# File 'media_connect/cfn_flow.rb', line 2395

def role_arn
  @role_arn
end

#security_group_idsArray<String> (readonly)

Security Group IDs to be used on ENI.



2400
2401
2402
# File 'media_connect/cfn_flow.rb', line 2400

def security_group_ids
  @security_group_ids
end

#subnet_idString (readonly)

Subnet must be in the AZ of the Flow.



2405
2406
2407
# File 'media_connect/cfn_flow.rb', line 2405

def subnet_id
  @subnet_id
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

Key-value pairs that can be used to tag this VPC interface.



2420
2421
2422
# File 'media_connect/cfn_flow.rb', line 2420

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
# File 'media_connect/cfn_flow.rb', line 2422

def self.jsii_properties
  {
    :name => "name",
    :role_arn => "roleArn",
    :security_group_ids => "securityGroupIds",
    :subnet_id => "subnetId",
    :network_interface_ids => "networkInterfaceIds",
    :network_interface_type => "networkInterfaceType",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
# File 'media_connect/cfn_flow.rb', line 2434

def to_jsii
  result = {}
  result.merge!({
    "name" => @name,
    "roleArn" => @role_arn,
    "securityGroupIds" => @security_group_ids,
    "subnetId" => @subnet_id,
    "networkInterfaceIds" => @network_interface_ids,
    "networkInterfaceType" => @network_interface_type,
    "tags" => @tags,
  })
  result.compact
end