You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::EC2::RouteTable

Inherits:
Object
  • Object
show all
Defined in:
gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb

Defined Under Namespace

Classes: Collection

Actions collapse

Associations collapse

Read-Only Attributes collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, options = {}) ⇒ RouteTable #initialize(options = {}) ⇒ RouteTable

Returns a new instance of RouteTable

Overloads:

  • #initialize(id, options = {}) ⇒ RouteTable

    Parameters:

    • id (String)

    Options Hash (options):

  • #initialize(options = {}) ⇒ RouteTable

    Options Hash (options):

    • :id (required, String)
    • :client (Client)


19
20
21
22
23
24
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 19

def initialize(*args)
  options = Hash === args.last ? args.pop.dup : {}
  @id = extract_id(args, options)
  @data = options.delete(:data)
  @client = options.delete(:client) || Client.new(options)
end

Instance Method Details

#associate_with_subnet(options = {}) ⇒ RouteTableAssociation

Examples:

Request syntax with placeholder values


routetableassociation = route_table.associate_with_subnet({
  dry_run: false,
  subnet_id: "String", # required
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :dry_run (Boolean)

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

  • :subnet_id (required, String)

    The ID of the subnet.

Returns:



104
105
106
107
108
109
110
111
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 104

def associate_with_subnet(options = {})
  options = options.merge(route_table_id: @id)
  resp = @client.associate_route_table(options)
  RouteTableAssociation.new(
    id: resp.data.association_id,
    client: @client
  )
end

#associationsRouteTableAssociation::Collection



222
223
224
225
226
227
228
229
230
231
232
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 222

def associations
  batch = []
  data.associations.each do |a|
    batch << RouteTableAssociation.new(
      id: a.route_table_association_id,
      data: a,
      client: @client
    )
  end
  RouteTableAssociation::Collection.new([batch], size: batch.size)
end

#clientClient

Returns:



55
56
57
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 55

def client
  @client
end

#create_route(options = {}) ⇒ Route

Examples:

Request syntax with placeholder values


route = route_table.create_route({
  destination_cidr_block: "String",
  destination_ipv_6_cidr_block: "String",
  dry_run: false,
  egress_only_internet_gateway_id: "String",
  gateway_id: "String",
  instance_id: "String",
  nat_gateway_id: "String",
  network_interface_id: "String",
  vpc_peering_connection_id: "String",
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :destination_cidr_block (String)

    The IPv4 CIDR address block used for the destination match. Routing decisions are based on the most specific match.

  • :destination_ipv_6_cidr_block (String)

    The IPv6 CIDR block used for the destination match. Routing decisions are based on the most specific match.

  • :dry_run (Boolean)

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

  • :egress_only_internet_gateway_id (String)

    [IPv6 traffic only] The ID of an egress-only Internet gateway.

  • :gateway_id (String)

    The ID of an Internet gateway or virtual private gateway attached to your VPC.

  • :instance_id (String)

    The ID of a NAT instance in your VPC. The operation fails if you specify an instance ID unless exactly one network interface is attached.

  • :nat_gateway_id (String)

    [IPv4 traffic only] The ID of a NAT gateway.

  • :network_interface_id (String)

    The ID of a network interface.

  • :vpc_peering_connection_id (String)

    The ID of a VPC peering connection.

Returns:



154
155
156
157
158
159
160
161
162
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 154

def create_route(options = {})
  options = options.merge(route_table_id: @id)
  resp = @client.create_route(options)
  Route.new(
    route_table_id: @id,
    destination_cidr_block: options[:destination_cidr_block],
    client: @client
  )
end

#create_tags(options = {}) ⇒ Tag::Collection

Examples:

Request syntax with placeholder values


tag = route_table.create_tags({
  dry_run: false,
  tags: [ # required
    {
      key: "String",
      value: "String",
    },
  ],
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :dry_run (Boolean)

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

  • :tags (required, Array<Types::Tag>)

    One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

Returns:



186
187
188
189
190
191
192
193
194
195
196
197
198
199
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 186

def create_tags(options = {})
  batch = []
  options = Aws::Util.deep_merge(options, resources: [@id])
  resp = @client.create_tags(options)
  options[:tags].each do |t|
    batch << Tag.new(
      resource_id: @id,
      key: t[:key],
      value: t[:value],
      client: @client
    )
  end
  Tag::Collection.new([batch], size: batch.size)
end

#dataTypes::RouteTable

Returns the data for this Aws::EC2::RouteTable. Calls Client#describe_route_tables if #data_loaded? is false.

Returns:



75
76
77
78
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 75

def data
  load unless @data
  @data
end

#data_loaded?Boolean

Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.

Returns:

  • (Boolean)

    Returns true if this resource is loaded. Accessing attributes or #data on an unloaded resource will trigger a call to #load.



83
84
85
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 83

def data_loaded?
  !!@data
end

#delete(options = {}) ⇒ EmptyStructure

Examples:

Request syntax with placeholder values


route_table.delete({
  dry_run: false,
})

Parameters:

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :dry_run (Boolean)

    Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

Returns:

  • (EmptyStructure)


213
214
215
216
217
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 213

def delete(options = {})
  options = options.merge(route_table_id: @id)
  resp = @client.delete_route_table(options)
  resp.data
end

#idString Also known as: route_table_id

Returns:

  • (String)


29
30
31
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 29

def id
  @id
end

#loadself Also known as: reload

Loads, or reloads #data for the current Aws::EC2::RouteTable. Returns self making it possible to chain methods.

route_table.reload.data

Returns:

  • (self)


65
66
67
68
69
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 65

def load
  resp = @client.describe_route_tables(route_table_ids: [@id])
  @data = resp.route_tables[0]
  self
end

#propagating_vgwsArray<Types::PropagatingVgw>

Any virtual private gateway (VGW) propagating routes.

Returns:



36
37
38
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 36

def propagating_vgws
  data.propagating_vgws
end

#routesRoute::Collection

Returns:



235
236
237
238
239
240
241
242
243
244
245
246
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 235

def routes
  batch = []
  data.routes.each do |r|
    batch << Route.new(
      route_table_id: @id,
      destination_cidr_block: r.destination_cidr_block,
      data: r,
      client: @client
    )
  end
  Route::Collection.new([batch], size: batch.size)
end

#tagsArray<Types::Tag>

Any tags assigned to the route table.

Returns:



42
43
44
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 42

def tags
  data.tags
end

#vpcVpc?

Returns:



249
250
251
252
253
254
255
256
257
258
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 249

def vpc
  if data.vpc_id
    Vpc.new(
      id: data.vpc_id,
      client: @client
    )
  else
    nil
  end
end

#vpc_idString

The ID of the VPC.

Returns:

  • (String)


48
49
50
# File 'gems/aws-sdk-ec2/lib/aws-sdk-ec2/route_table.rb', line 48

def vpc_id
  data.vpc_id
end