aws-sdk-ec2 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/lib/aws-sdk-ec2.rb +70 -0
  3. data/lib/aws-sdk-ec2/classic_address.rb +227 -0
  4. data/lib/aws-sdk-ec2/client.rb +14254 -0
  5. data/lib/aws-sdk-ec2/client_api.rb +6182 -0
  6. data/lib/aws-sdk-ec2/customizations.rb +21 -0
  7. data/lib/aws-sdk-ec2/customizations/instance.rb +29 -0
  8. data/lib/aws-sdk-ec2/customizations/resource.rb +18 -0
  9. data/lib/aws-sdk-ec2/dhcp_options.rb +183 -0
  10. data/lib/aws-sdk-ec2/errors.rb +23 -0
  11. data/lib/aws-sdk-ec2/image.rb +462 -0
  12. data/lib/aws-sdk-ec2/instance.rb +1570 -0
  13. data/lib/aws-sdk-ec2/internet_gateway.rb +204 -0
  14. data/lib/aws-sdk-ec2/key_pair.rb +120 -0
  15. data/lib/aws-sdk-ec2/key_pair_info.rb +122 -0
  16. data/lib/aws-sdk-ec2/network_acl.rb +341 -0
  17. data/lib/aws-sdk-ec2/network_interface.rb +474 -0
  18. data/lib/aws-sdk-ec2/network_interface_association.rb +151 -0
  19. data/lib/aws-sdk-ec2/placement_group.rb +426 -0
  20. data/lib/aws-sdk-ec2/plugins/copy_encrypted_snapshot.rb +59 -0
  21. data/lib/aws-sdk-ec2/plugins/region_validation.rb +19 -0
  22. data/lib/aws-sdk-ec2/resource.rb +2684 -0
  23. data/lib/aws-sdk-ec2/route.rb +243 -0
  24. data/lib/aws-sdk-ec2/route_table.rb +277 -0
  25. data/lib/aws-sdk-ec2/route_table_association.rb +177 -0
  26. data/lib/aws-sdk-ec2/security_group.rb +530 -0
  27. data/lib/aws-sdk-ec2/snapshot.rb +478 -0
  28. data/lib/aws-sdk-ec2/subnet.rb +972 -0
  29. data/lib/aws-sdk-ec2/tag.rb +223 -0
  30. data/lib/aws-sdk-ec2/types.rb +20124 -0
  31. data/lib/aws-sdk-ec2/volume.rb +555 -0
  32. data/lib/aws-sdk-ec2/vpc.rb +1698 -0
  33. data/lib/aws-sdk-ec2/vpc_address.rb +219 -0
  34. data/lib/aws-sdk-ec2/vpc_peering_connection.rb +265 -0
  35. data/lib/aws-sdk-ec2/waiters.rb +1334 -0
  36. metadata +107 -0
@@ -0,0 +1,204 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EC2
10
+ class InternetGateway
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(id, options = {})
15
+ # @param [String] id
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :id
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @id = extract_id(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def id
31
+ @id
32
+ end
33
+ alias :internet_gateway_id :id
34
+
35
+ # Any VPCs attached to the Internet gateway.
36
+ # @return [Array<Types::InternetGatewayAttachment>]
37
+ def attachments
38
+ data.attachments
39
+ end
40
+
41
+ # Any tags assigned to the Internet gateway.
42
+ # @return [Array<Types::Tag>]
43
+ def tags
44
+ data.tags
45
+ end
46
+
47
+ # @!endgroup
48
+
49
+ # @return [Client]
50
+ def client
51
+ @client
52
+ end
53
+
54
+ # Loads, or reloads {#data} for the current {InternetGateway}.
55
+ # Returns `self` making it possible to chain methods.
56
+ #
57
+ # internet_gateway.reload.data
58
+ #
59
+ # @return [self]
60
+ def load
61
+ resp = @client.describe_internet_gateways(internet_gateway_ids: [@id])
62
+ @data = resp.internetgateways[0]
63
+ self
64
+ end
65
+ alias :reload :load
66
+
67
+ # @return [Types::InternetGateway]
68
+ # Returns the data for this {InternetGateway}. Calls
69
+ # {Client#describe_internet_gateways} if {#data_loaded?} is `false`.
70
+ def data
71
+ load unless @data
72
+ @data
73
+ end
74
+
75
+ # @return [Boolean]
76
+ # Returns `true` if this resource is loaded. Accessing attributes or
77
+ # {#data} on an unloaded resource will trigger a call to {#load}.
78
+ def data_loaded?
79
+ !!@data
80
+ end
81
+
82
+ # @!group Actions
83
+
84
+ # @example Request syntax with placeholder values
85
+ #
86
+ # internet_gateway.attach_to_vpc({
87
+ # dry_run: false,
88
+ # vpc_id: "String", # required
89
+ # })
90
+ # @param [Hash] options ({})
91
+ # @option options [Boolean] :dry_run
92
+ # Checks whether you have the required permissions for the action,
93
+ # without actually making the request, and provides an error response.
94
+ # If you have the required permissions, the error response is
95
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
96
+ # @option options [required, String] :vpc_id
97
+ # The ID of the VPC.
98
+ # @return [EmptyStructure]
99
+ def attach_to_vpc(options = {})
100
+ options = options.merge(internet_gateway_id: @id)
101
+ resp = @client.attach_internet_gateway(options)
102
+ resp.data
103
+ end
104
+
105
+ # @example Request syntax with placeholder values
106
+ #
107
+ # tag = internet_gateway.create_tags({
108
+ # dry_run: false,
109
+ # tags: [ # required
110
+ # {
111
+ # key: "String",
112
+ # value: "String",
113
+ # },
114
+ # ],
115
+ # })
116
+ # @param [Hash] options ({})
117
+ # @option options [Boolean] :dry_run
118
+ # Checks whether you have the required permissions for the action,
119
+ # without actually making the request, and provides an error response.
120
+ # If you have the required permissions, the error response is
121
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
122
+ # @option options [required, Array<Types::Tag>] :tags
123
+ # One or more tags. The `value` parameter is required, but if you don't
124
+ # want the tag to have a value, specify the parameter with no value, and
125
+ # we set the value to an empty string.
126
+ # @return [Tag::Collection]
127
+ def create_tags(options = {})
128
+ batch = []
129
+ options = Aws::Util.deep_merge(options, resources: [@id])
130
+ resp = @client.create_tags(options)
131
+ options[:tags].each do |t|
132
+ batch << Tag.new(
133
+ resource_id: @id,
134
+ key: t[:key],
135
+ value: t[:value],
136
+ client: @client
137
+ )
138
+ end
139
+ Tag::Collection.new([batch], size: batch.size)
140
+ end
141
+
142
+ # @example Request syntax with placeholder values
143
+ #
144
+ # internet_gateway.delete({
145
+ # dry_run: false,
146
+ # })
147
+ # @param [Hash] options ({})
148
+ # @option options [Boolean] :dry_run
149
+ # Checks whether you have the required permissions for the action,
150
+ # without actually making the request, and provides an error response.
151
+ # If you have the required permissions, the error response is
152
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
153
+ # @return [EmptyStructure]
154
+ def delete(options = {})
155
+ options = options.merge(internet_gateway_id: @id)
156
+ resp = @client.delete_internet_gateway(options)
157
+ resp.data
158
+ end
159
+
160
+ # @example Request syntax with placeholder values
161
+ #
162
+ # internet_gateway.detach_from_vpc({
163
+ # dry_run: false,
164
+ # vpc_id: "String", # required
165
+ # })
166
+ # @param [Hash] options ({})
167
+ # @option options [Boolean] :dry_run
168
+ # Checks whether you have the required permissions for the action,
169
+ # without actually making the request, and provides an error response.
170
+ # If you have the required permissions, the error response is
171
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
172
+ # @option options [required, String] :vpc_id
173
+ # The ID of the VPC.
174
+ # @return [EmptyStructure]
175
+ def detach_from_vpc(options = {})
176
+ options = options.merge(internet_gateway_id: @id)
177
+ resp = @client.detach_internet_gateway(options)
178
+ resp.data
179
+ end
180
+
181
+ # @deprecated
182
+ # @api private
183
+ def identifiers
184
+ { id: @id }
185
+ end
186
+ deprecated(:identifiers)
187
+
188
+ private
189
+
190
+ def extract_id(args, options)
191
+ value = args[0] || options.delete(:id)
192
+ case value
193
+ when String then value
194
+ when nil then raise ArgumentError, "missing required option :id"
195
+ else
196
+ msg = "expected :id to be a String, got #{value.class}"
197
+ raise ArgumentError, msg
198
+ end
199
+ end
200
+
201
+ class Collection < Aws::Resources::Collection; end
202
+ end
203
+ end
204
+ end
@@ -0,0 +1,120 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EC2
10
+ class KeyPair
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(name, options = {})
15
+ # @param [String] name
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :name
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @name = extract_name(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def name
31
+ @name
32
+ end
33
+ alias :key_name :name
34
+
35
+ # The SHA-1 digest of the DER encoded private key.
36
+ # @return [String]
37
+ def key_fingerprint
38
+ data.key_fingerprint
39
+ end
40
+
41
+ # An unencrypted PEM encoded RSA private key.
42
+ # @return [String]
43
+ def key_material
44
+ data.key_material
45
+ end
46
+
47
+ # @!endgroup
48
+
49
+ # @return [Client]
50
+ def client
51
+ @client
52
+ end
53
+
54
+ # @raise [Errors::ResourceNotLoadable]
55
+ # @api private
56
+ def load
57
+ msg = "#load is not implemented, data only available via enumeration"
58
+ raise Errors::ResourceNotLoadable, msg
59
+ end
60
+ alias :reload :load
61
+
62
+ # @raise [Errors::ResourceNotLoadableError] Raises when {#data_loaded?} is `false`.
63
+ # @return [Types::KeyPair]
64
+ # Returns the data for this {KeyPair}.
65
+ def data
66
+ load unless @data
67
+ @data
68
+ end
69
+
70
+ # @return [Boolean]
71
+ # Returns `true` if this resource is loaded. Accessing attributes or
72
+ # {#data} on an unloaded resource will trigger a call to {#load}.
73
+ def data_loaded?
74
+ !!@data
75
+ end
76
+
77
+ # @!group Actions
78
+
79
+ # @example Request syntax with placeholder values
80
+ #
81
+ # key_pair.delete({
82
+ # dry_run: false,
83
+ # })
84
+ # @param [Hash] options ({})
85
+ # @option options [Boolean] :dry_run
86
+ # Checks whether you have the required permissions for the action,
87
+ # without actually making the request, and provides an error response.
88
+ # If you have the required permissions, the error response is
89
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
90
+ # @return [EmptyStructure]
91
+ def delete(options = {})
92
+ options = options.merge(key_name: @name)
93
+ resp = @client.delete_key_pair(options)
94
+ resp.data
95
+ end
96
+
97
+ # @deprecated
98
+ # @api private
99
+ def identifiers
100
+ { name: @name }
101
+ end
102
+ deprecated(:identifiers)
103
+
104
+ private
105
+
106
+ def extract_name(args, options)
107
+ value = args[0] || options.delete(:name)
108
+ case value
109
+ when String then value
110
+ when nil then raise ArgumentError, "missing required option :name"
111
+ else
112
+ msg = "expected :name to be a String, got #{value.class}"
113
+ raise ArgumentError, msg
114
+ end
115
+ end
116
+
117
+ class Collection < Aws::Resources::Collection; end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,122 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EC2
10
+ class KeyPairInfo
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(name, options = {})
15
+ # @param [String] name
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :name
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @name = extract_name(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def name
31
+ @name
32
+ end
33
+ alias :key_name :name
34
+
35
+ # If you used CreateKeyPair to create the key pair, this is the SHA-1
36
+ # digest of the DER encoded private key. If you used ImportKeyPair to
37
+ # provide AWS the public key, this is the MD5 public key fingerprint as
38
+ # specified in section 4 of RFC4716.
39
+ # @return [String]
40
+ def key_fingerprint
41
+ data.key_fingerprint
42
+ end
43
+
44
+ # @!endgroup
45
+
46
+ # @return [Client]
47
+ def client
48
+ @client
49
+ end
50
+
51
+ # Loads, or reloads {#data} for the current {KeyPairInfo}.
52
+ # Returns `self` making it possible to chain methods.
53
+ #
54
+ # key_pair_info.reload.data
55
+ #
56
+ # @return [self]
57
+ def load
58
+ resp = @client.describe_key_pairs(key_names: [@name])
59
+ @data = resp.keypairs[0]
60
+ self
61
+ end
62
+ alias :reload :load
63
+
64
+ # @return [Types::KeyPairInfo]
65
+ # Returns the data for this {KeyPairInfo}. Calls
66
+ # {Client#describe_key_pairs} if {#data_loaded?} is `false`.
67
+ def data
68
+ load unless @data
69
+ @data
70
+ end
71
+
72
+ # @return [Boolean]
73
+ # Returns `true` if this resource is loaded. Accessing attributes or
74
+ # {#data} on an unloaded resource will trigger a call to {#load}.
75
+ def data_loaded?
76
+ !!@data
77
+ end
78
+
79
+ # @!group Actions
80
+
81
+ # @example Request syntax with placeholder values
82
+ #
83
+ # key_pair_info.delete({
84
+ # dry_run: false,
85
+ # })
86
+ # @param [Hash] options ({})
87
+ # @option options [Boolean] :dry_run
88
+ # Checks whether you have the required permissions for the action,
89
+ # without actually making the request, and provides an error response.
90
+ # If you have the required permissions, the error response is
91
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
92
+ # @return [EmptyStructure]
93
+ def delete(options = {})
94
+ options = options.merge(key_name: @name)
95
+ resp = @client.delete_key_pair(options)
96
+ resp.data
97
+ end
98
+
99
+ # @deprecated
100
+ # @api private
101
+ def identifiers
102
+ { name: @name }
103
+ end
104
+ deprecated(:identifiers)
105
+
106
+ private
107
+
108
+ def extract_name(args, options)
109
+ value = args[0] || options.delete(:name)
110
+ case value
111
+ when String then value
112
+ when nil then raise ArgumentError, "missing required option :name"
113
+ else
114
+ msg = "expected :name to be a String, got #{value.class}"
115
+ raise ArgumentError, msg
116
+ end
117
+ end
118
+
119
+ class Collection < Aws::Resources::Collection; end
120
+ end
121
+ end
122
+ end
@@ -0,0 +1,341 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module EC2
10
+ class NetworkAcl
11
+
12
+ extend Aws::Deprecations
13
+
14
+ # @overload def initialize(id, options = {})
15
+ # @param [String] id
16
+ # @option options [Client] :client
17
+ # @overload def initialize(options = {})
18
+ # @option options [required, String] :id
19
+ # @option options [Client] :client
20
+ def initialize(*args)
21
+ options = Hash === args.last ? args.pop.dup : {}
22
+ @id = extract_id(args, options)
23
+ @data = options.delete(:data)
24
+ @client = options.delete(:client) || Client.new(options)
25
+ end
26
+
27
+ # @!group Read-Only Attributes
28
+
29
+ # @return [String]
30
+ def id
31
+ @id
32
+ end
33
+ alias :network_acl_id :id
34
+
35
+ # The ID of the VPC for the network ACL.
36
+ # @return [String]
37
+ def vpc_id
38
+ data.vpc_id
39
+ end
40
+
41
+ # Indicates whether this is the default network ACL for the VPC.
42
+ # @return [Boolean]
43
+ def is_default
44
+ data.is_default
45
+ end
46
+
47
+ # One or more entries (rules) in the network ACL.
48
+ # @return [Array<Types::NetworkAclEntry>]
49
+ def entries
50
+ data.entries
51
+ end
52
+
53
+ # Any associations between the network ACL and one or more subnets
54
+ # @return [Array<Types::NetworkAclAssociation>]
55
+ def associations
56
+ data.associations
57
+ end
58
+
59
+ # Any tags assigned to the network ACL.
60
+ # @return [Array<Types::Tag>]
61
+ def tags
62
+ data.tags
63
+ end
64
+
65
+ # @!endgroup
66
+
67
+ # @return [Client]
68
+ def client
69
+ @client
70
+ end
71
+
72
+ # Loads, or reloads {#data} for the current {NetworkAcl}.
73
+ # Returns `self` making it possible to chain methods.
74
+ #
75
+ # network_acl.reload.data
76
+ #
77
+ # @return [self]
78
+ def load
79
+ resp = @client.describe_network_acls(network_acl_ids: [@id])
80
+ @data = resp.networkacls[0]
81
+ self
82
+ end
83
+ alias :reload :load
84
+
85
+ # @return [Types::NetworkAcl]
86
+ # Returns the data for this {NetworkAcl}. Calls
87
+ # {Client#describe_network_acls} if {#data_loaded?} is `false`.
88
+ def data
89
+ load unless @data
90
+ @data
91
+ end
92
+
93
+ # @return [Boolean]
94
+ # Returns `true` if this resource is loaded. Accessing attributes or
95
+ # {#data} on an unloaded resource will trigger a call to {#load}.
96
+ def data_loaded?
97
+ !!@data
98
+ end
99
+
100
+ # @!group Actions
101
+
102
+ # @example Request syntax with placeholder values
103
+ #
104
+ # network_acl.create_entry({
105
+ # dry_run: false,
106
+ # rule_number: 1, # required
107
+ # protocol: "String", # required
108
+ # rule_action: "allow", # required, accepts allow, deny
109
+ # egress: false, # required
110
+ # cidr_block: "String", # required
111
+ # icmp_type_code: {
112
+ # type: 1,
113
+ # code: 1,
114
+ # },
115
+ # port_range: {
116
+ # from: 1,
117
+ # to: 1,
118
+ # },
119
+ # })
120
+ # @param [Hash] options ({})
121
+ # @option options [Boolean] :dry_run
122
+ # Checks whether you have the required permissions for the action,
123
+ # without actually making the request, and provides an error response.
124
+ # If you have the required permissions, the error response is
125
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
126
+ # @option options [required, Integer] :rule_number
127
+ # The rule number for the entry (for example, 100). ACL entries are
128
+ # processed in ascending order by rule number.
129
+ #
130
+ # Constraints: Positive integer from 1 to 32766. The range 32767 to
131
+ # 65535 is reserved for internal use.
132
+ # @option options [required, String] :protocol
133
+ # The protocol. A value of -1 means all protocols.
134
+ # @option options [required, String] :rule_action
135
+ # Indicates whether to allow or deny the traffic that matches the rule.
136
+ # @option options [required, Boolean] :egress
137
+ # Indicates whether this is an egress rule (rule is applied to traffic
138
+ # leaving the subnet).
139
+ # @option options [required, String] :cidr_block
140
+ # The network range to allow or deny, in CIDR notation (for example
141
+ # `172.16.0.0/24`).
142
+ # @option options [Types::IcmpTypeCode] :icmp_type_code
143
+ # ICMP protocol: The ICMP type and code. Required if specifying ICMP for
144
+ # the protocol.
145
+ # @option options [Types::PortRange] :port_range
146
+ # TCP or UDP protocols: The range of ports the rule applies to.
147
+ # @return [EmptyStructure]
148
+ def create_entry(options = {})
149
+ options = options.merge(network_acl_id: @id)
150
+ resp = @client.create_network_acl_entry(options)
151
+ resp.data
152
+ end
153
+
154
+ # @example Request syntax with placeholder values
155
+ #
156
+ # tag = network_acl.create_tags({
157
+ # dry_run: false,
158
+ # tags: [ # required
159
+ # {
160
+ # key: "String",
161
+ # value: "String",
162
+ # },
163
+ # ],
164
+ # })
165
+ # @param [Hash] options ({})
166
+ # @option options [Boolean] :dry_run
167
+ # Checks whether you have the required permissions for the action,
168
+ # without actually making the request, and provides an error response.
169
+ # If you have the required permissions, the error response is
170
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
171
+ # @option options [required, Array<Types::Tag>] :tags
172
+ # One or more tags. The `value` parameter is required, but if you don't
173
+ # want the tag to have a value, specify the parameter with no value, and
174
+ # we set the value to an empty string.
175
+ # @return [Tag::Collection]
176
+ def create_tags(options = {})
177
+ batch = []
178
+ options = Aws::Util.deep_merge(options, resources: [@id])
179
+ resp = @client.create_tags(options)
180
+ options[:tags].each do |t|
181
+ batch << Tag.new(
182
+ resource_id: @id,
183
+ key: t[:key],
184
+ value: t[:value],
185
+ client: @client
186
+ )
187
+ end
188
+ Tag::Collection.new([batch], size: batch.size)
189
+ end
190
+
191
+ # @example Request syntax with placeholder values
192
+ #
193
+ # network_acl.delete({
194
+ # dry_run: false,
195
+ # })
196
+ # @param [Hash] options ({})
197
+ # @option options [Boolean] :dry_run
198
+ # Checks whether you have the required permissions for the action,
199
+ # without actually making the request, and provides an error response.
200
+ # If you have the required permissions, the error response is
201
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
202
+ # @return [EmptyStructure]
203
+ def delete(options = {})
204
+ options = options.merge(network_acl_id: @id)
205
+ resp = @client.delete_network_acl(options)
206
+ resp.data
207
+ end
208
+
209
+ # @example Request syntax with placeholder values
210
+ #
211
+ # network_acl.delete_entry({
212
+ # dry_run: false,
213
+ # rule_number: 1, # required
214
+ # egress: false, # required
215
+ # })
216
+ # @param [Hash] options ({})
217
+ # @option options [Boolean] :dry_run
218
+ # Checks whether you have the required permissions for the action,
219
+ # without actually making the request, and provides an error response.
220
+ # If you have the required permissions, the error response is
221
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
222
+ # @option options [required, Integer] :rule_number
223
+ # The rule number of the entry to delete.
224
+ # @option options [required, Boolean] :egress
225
+ # Indicates whether the rule is an egress rule.
226
+ # @return [EmptyStructure]
227
+ def delete_entry(options = {})
228
+ options = options.merge(network_acl_id: @id)
229
+ resp = @client.delete_network_acl_entry(options)
230
+ resp.data
231
+ end
232
+
233
+ # @example Request syntax with placeholder values
234
+ #
235
+ # network_acl.replace_association({
236
+ # dry_run: false,
237
+ # association_id: "String", # required
238
+ # })
239
+ # @param [Hash] options ({})
240
+ # @option options [Boolean] :dry_run
241
+ # Checks whether you have the required permissions for the action,
242
+ # without actually making the request, and provides an error response.
243
+ # If you have the required permissions, the error response is
244
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
245
+ # @option options [required, String] :association_id
246
+ # The ID of the current association between the original network ACL and
247
+ # the subnet.
248
+ # @return [Types::ReplaceNetworkAclAssociationResult]
249
+ def replace_association(options = {})
250
+ options = options.merge(network_acl_id: @id)
251
+ resp = @client.replace_network_acl_association(options)
252
+ resp.data
253
+ end
254
+
255
+ # @example Request syntax with placeholder values
256
+ #
257
+ # network_acl.replace_entry({
258
+ # dry_run: false,
259
+ # rule_number: 1, # required
260
+ # protocol: "String", # required
261
+ # rule_action: "allow", # required, accepts allow, deny
262
+ # egress: false, # required
263
+ # cidr_block: "String", # required
264
+ # icmp_type_code: {
265
+ # type: 1,
266
+ # code: 1,
267
+ # },
268
+ # port_range: {
269
+ # from: 1,
270
+ # to: 1,
271
+ # },
272
+ # })
273
+ # @param [Hash] options ({})
274
+ # @option options [Boolean] :dry_run
275
+ # Checks whether you have the required permissions for the action,
276
+ # without actually making the request, and provides an error response.
277
+ # If you have the required permissions, the error response is
278
+ # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
279
+ # @option options [required, Integer] :rule_number
280
+ # The rule number of the entry to replace.
281
+ # @option options [required, String] :protocol
282
+ # The IP protocol. You can specify `all` or `-1` to mean all protocols.
283
+ # @option options [required, String] :rule_action
284
+ # Indicates whether to allow or deny the traffic that matches the rule.
285
+ # @option options [required, Boolean] :egress
286
+ # Indicates whether to replace the egress rule.
287
+ #
288
+ # Default: If no value is specified, we replace the ingress rule.
289
+ # @option options [required, String] :cidr_block
290
+ # The network range to allow or deny, in CIDR notation.
291
+ # @option options [Types::IcmpTypeCode] :icmp_type_code
292
+ # ICMP protocol: The ICMP type and code. Required if specifying 1 (ICMP)
293
+ # for the protocol.
294
+ # @option options [Types::PortRange] :port_range
295
+ # TCP or UDP protocols: The range of ports the rule applies to. Required
296
+ # if specifying 6 (TCP) or 17 (UDP) for the protocol.
297
+ # @return [EmptyStructure]
298
+ def replace_entry(options = {})
299
+ options = options.merge(network_acl_id: @id)
300
+ resp = @client.replace_network_acl_entry(options)
301
+ resp.data
302
+ end
303
+
304
+ # @!group Associations
305
+
306
+ # @return [Vpc, nil]
307
+ def vpc
308
+ if data.vpc_id
309
+ Vpc.new(
310
+ id: data.vpc_id,
311
+ client: @client
312
+ )
313
+ else
314
+ nil
315
+ end
316
+ end
317
+
318
+ # @deprecated
319
+ # @api private
320
+ def identifiers
321
+ { id: @id }
322
+ end
323
+ deprecated(:identifiers)
324
+
325
+ private
326
+
327
+ def extract_id(args, options)
328
+ value = args[0] || options.delete(:id)
329
+ case value
330
+ when String then value
331
+ when nil then raise ArgumentError, "missing required option :id"
332
+ else
333
+ msg = "expected :id to be a String, got #{value.class}"
334
+ raise ArgumentError, msg
335
+ end
336
+ end
337
+
338
+ class Collection < Aws::Resources::Collection; end
339
+ end
340
+ end
341
+ end