aws-sdk-ec2 1.356.0 → 1.358.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,107 +9,46 @@
9
9
 
10
10
  module Aws::EC2
11
11
  class EndpointProvider
12
- def initialize(rule_set = nil)
13
- @@rule_set ||= begin
14
- endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
- Aws::Endpoints::RuleSet.new(
16
- version: endpoint_rules['version'],
17
- service_id: endpoint_rules['serviceId'],
18
- parameters: endpoint_rules['parameters'],
19
- rules: endpoint_rules['rules']
20
- )
12
+ def resolve_endpoint(parameters)
13
+ region = parameters.region
14
+ use_dual_stack = parameters.use_dual_stack
15
+ use_fips = parameters.use_fips
16
+ endpoint = parameters.endpoint
17
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
18
+ if Aws::Endpoints::Matchers.set?(endpoint)
19
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
20
+ raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
21
+ end
22
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
23
+ raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
24
+ end
25
+ return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
26
+ end
27
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
28
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
29
+ return Aws::Endpoints::Endpoint.new(url: "https://ec2-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
30
+ end
31
+ raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
32
+ end
33
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
34
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"))
35
+ if Aws::Endpoints::Matchers.string_equals?("aws-us-gov", Aws::Endpoints::Matchers.attr(partition_result, "name"))
36
+ return Aws::Endpoints::Endpoint.new(url: "https://ec2.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
37
+ end
38
+ return Aws::Endpoints::Endpoint.new(url: "https://ec2-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
39
+ end
40
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
41
+ end
42
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
43
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
44
+ return Aws::Endpoints::Endpoint.new(url: "https://ec2.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
45
+ end
46
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
47
+ end
48
+ return Aws::Endpoints::Endpoint.new(url: "https://ec2.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
49
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
50
+ raise ArgumentError, 'No endpoint could be resolved'
24
51
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
52
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
31
- eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOnRydWUsImRvY3VtZW50
33
- YXRpb24iOiJUaGUgQVdTIHJlZ2lvbiB1c2VkIHRvIGRpc3BhdGNoIHRoZSBy
34
- ZXF1ZXN0LiIsInR5cGUiOiJTdHJpbmcifSwiVXNlRHVhbFN0YWNrIjp7ImJ1
35
- aWx0SW4iOiJBV1M6OlVzZUR1YWxTdGFjayIsInJlcXVpcmVkIjp0cnVlLCJk
36
- ZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRhdGlvbiI6IldoZW4gdHJ1ZSwgdXNl
37
- IHRoZSBkdWFsLXN0YWNrIGVuZHBvaW50LiBJZiB0aGUgY29uZmlndXJlZCBl
38
- bmRwb2ludCBkb2VzIG5vdCBzdXBwb3J0IGR1YWwtc3RhY2ssIGRpc3BhdGNo
39
- aW5nIHRoZSByZXF1ZXN0IE1BWSByZXR1cm4gYW4gZXJyb3IuIiwidHlwZSI6
40
- IkJvb2xlYW4ifSwiVXNlRklQUyI6eyJidWlsdEluIjoiQVdTOjpVc2VGSVBT
41
- IiwicmVxdWlyZWQiOnRydWUsImRlZmF1bHQiOmZhbHNlLCJkb2N1bWVudGF0
42
- aW9uIjoiV2hlbiB0cnVlLCBzZW5kIHRoaXMgcmVxdWVzdCB0byB0aGUgRklQ
43
- Uy1jb21wbGlhbnQgcmVnaW9uYWwgZW5kcG9pbnQuIElmIHRoZSBjb25maWd1
44
- cmVkIGVuZHBvaW50IGRvZXMgbm90IGhhdmUgYSBGSVBTIGNvbXBsaWFudCBl
45
- bmRwb2ludCwgZGlzcGF0Y2hpbmcgdGhlIHJlcXVlc3Qgd2lsbCByZXR1cm4g
46
- YW4gZXJyb3IuIiwidHlwZSI6IkJvb2xlYW4ifSwiRW5kcG9pbnQiOnsiYnVp
47
- bHRJbiI6IlNESzo6RW5kcG9pbnQiLCJyZXF1aXJlZCI6ZmFsc2UsImRvY3Vt
48
- ZW50YXRpb24iOiJPdmVycmlkZSB0aGUgZW5kcG9pbnQgdXNlZCB0byBzZW5k
49
- IHRoaXMgcmVxdWVzdCIsInR5cGUiOiJTdHJpbmcifX0sInJ1bGVzIjpbeyJj
50
- b25kaXRpb25zIjpbeyJmbiI6ImF3cy5wYXJ0aXRpb24iLCJhcmd2IjpbeyJy
51
- ZWYiOiJSZWdpb24ifV0sImFzc2lnbiI6IlBhcnRpdGlvblJlc3VsdCJ9XSwi
52
- dHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJp
53
- c1NldCIsImFyZ3YiOlt7InJlZiI6IkVuZHBvaW50In1dfV0sInR5cGUiOiJ0
54
- cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVx
55
- dWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX1dLCJlcnJv
56
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRklQUyBhbmQgY3VzdG9tIGVu
57
- ZHBvaW50IGFyZSBub3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJj
58
- b25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0
59
- aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
60
- VXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwiZXJyb3IiOiJJbnZhbGlkIENvbmZp
61
- Z3VyYXRpb246IER1YWxzdGFjayBhbmQgY3VzdG9tIGVuZHBvaW50IGFyZSBu
62
- b3Qgc3VwcG9ydGVkIiwidHlwZSI6ImVycm9yIn0seyJjb25kaXRpb25zIjpb
63
- XSwiZW5kcG9pbnQiOnsidXJsIjp7InJlZiI6IkVuZHBvaW50In0sInByb3Bl
64
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1d
65
- fSx7ImNvbmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3Yi
66
- Olt7InJlZiI6IlVzZUZJUFMifSx0cnVlXX0seyJmbiI6ImJvb2xlYW5FcXVh
67
- bHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0
68
- eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJv
69
- b2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFy
70
- Z3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0ZJUFMi
71
- XX1dfSx7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsiZm4i
72
- OiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0s
73
- InN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
74
- IjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6
75
- Ly9lYzItZmlwcy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFj
76
- a0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0
77
- eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoi
78
- RklQUyBhbmQgRHVhbFN0YWNrIGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0
79
- aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBvbmUgb3IgYm90aCIsInR5cGUiOiJl
80
- cnJvciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
81
- LCJhcmd2IjpbeyJyZWYiOiJVc2VGSVBTIn0sdHJ1ZV19XSwidHlwZSI6InRy
82
- ZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1
83
- YWxzIiwiYXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJy
84
- ZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNGSVBTIl19XX1dLCJ0
85
- eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbXSwidHlwZSI6
86
- InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJzdHJpbmdF
87
- cXVhbHMiLCJhcmd2IjpbImF3cy11cy1nb3YiLHsiZm4iOiJnZXRBdHRyIiwi
88
- YXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0In0sIm5hbWUiXX1dfV0s
89
- ImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZWMyLntSZWdpb259LntQYXJ0
90
- aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFk
91
- ZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9LHsiY29uZGl0aW9ucyI6W10s
92
- ImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vZWMyLWZpcHMue1JlZ2lvbn0u
93
- e1BhcnRpdGlvblJlc3VsdCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30s
94
- ImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0
95
- aW9ucyI6W10sImVycm9yIjoiRklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBh
96
- cnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3Ii
97
- fV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJn
98
- diI6W3sicmVmIjoiVXNlRHVhbFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRy
99
- ZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1
100
- YWxzIiwiYXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJy
101
- ZWYiOiJQYXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1d
102
- fV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJl
103
- bmRwb2ludCI6eyJ1cmwiOiJodHRwczovL2VjMi57UmVnaW9ufS57UGFydGl0
104
- aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
105
- fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19LHsiY29uZGl0
106
- aW9ucyI6W10sImVycm9yIjoiRHVhbFN0YWNrIGlzIGVuYWJsZWQgYnV0IHRo
107
- aXMgcGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRHVhbFN0YWNrIiwidHlw
108
- ZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1
109
- cmwiOiJodHRwczovL2VjMi57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ru
110
- c1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
111
- IjoiZW5kcG9pbnQifV19XX0=
112
-
113
- JSON
114
53
  end
115
54
  end
@@ -342,12 +342,15 @@ module Aws::EC2
342
342
  # * `metadata-options.http-tokens` - The metadata request authorization
343
343
  # state (`optional` \| `required`)
344
344
  #
345
- # * `metadata-options.http-put-response-hop-limit` - The http metadata
345
+ # * `metadata-options.http-put-response-hop-limit` - The HTTP metadata
346
346
  # request put response hop limit (integer, possible values `1` to
347
347
  # `64`)
348
348
  #
349
- # * `metadata-options.http-endpoint` - Enable or disable metadata access
350
- # on http endpoint (`enabled` \| `disabled`)
349
+ # * `metadata-options.http-endpoint` - The status of access to the HTTP
350
+ # metadata endpoint on your instance (`enabled` \| `disabled`)
351
+ #
352
+ # * `metadata-options.instance-metadata-tags` - The status of access to
353
+ # instance tags from the instance metadata (`enabled` \| `disabled`)
351
354
  #
352
355
  # * `monitoring-state` - Indicates whether detailed monitoring is
353
356
  # enabled (`disabled` \| `enabled`).
@@ -376,8 +376,7 @@ module Aws::EC2
376
376
  #
377
377
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html
378
378
  # @option options [Array<String>] :security_groups
379
- # \[EC2-Classic, default VPC\] The names of the security groups. For a
380
- # nondefault VPC, you must use security group IDs instead.
379
+ # \[EC2-Classic, default VPC\] The names of the security groups.
381
380
  #
382
381
  # If you specify a network interface, you must specify any security
383
382
  # groups as part of the network interface.
@@ -2334,12 +2333,15 @@ module Aws::EC2
2334
2333
  # * `metadata-options.http-tokens` - The metadata request authorization
2335
2334
  # state (`optional` \| `required`)
2336
2335
  #
2337
- # * `metadata-options.http-put-response-hop-limit` - The http metadata
2336
+ # * `metadata-options.http-put-response-hop-limit` - The HTTP metadata
2338
2337
  # request put response hop limit (integer, possible values `1` to
2339
2338
  # `64`)
2340
2339
  #
2341
- # * `metadata-options.http-endpoint` - Enable or disable metadata access
2342
- # on http endpoint (`enabled` \| `disabled`)
2340
+ # * `metadata-options.http-endpoint` - The status of access to the HTTP
2341
+ # metadata endpoint on your instance (`enabled` \| `disabled`)
2342
+ #
2343
+ # * `metadata-options.instance-metadata-tags` - The status of access to
2344
+ # instance tags from the instance metadata (`enabled` \| `disabled`)
2343
2345
  #
2344
2346
  # * `monitoring-state` - Indicates whether detailed monitoring is
2345
2347
  # enabled (`disabled` \| `enabled`).
@@ -370,9 +370,10 @@ module Aws::EC2
370
370
  # Alternatively, use a set of IP permissions to specify multiple rules
371
371
  # and a description for the rule.
372
372
  # @option options [Integer] :from_port
373
- # The start of port range for the TCP and UDP protocols, or an ICMP type
374
- # number. For the ICMP type number, use `-1` to specify all types. If
375
- # you specify all ICMP types, you must specify all codes.
373
+ # If the protocol is TCP or UDP, this is the start of the port range. If
374
+ # the protocol is ICMP, this is the type number. A value of -1 indicates
375
+ # all ICMP types. If you specify all ICMP types, you must specify all
376
+ # ICMP codes.
376
377
  #
377
378
  # Alternatively, use a set of IP permissions to specify multiple rules
378
379
  # and a description for the rule.
@@ -415,9 +416,10 @@ module Aws::EC2
415
416
  # specific IP protocol and port range, use a set of IP permissions
416
417
  # instead.
417
418
  # @option options [Integer] :to_port
418
- # The end of port range for the TCP and UDP protocols, or an ICMP code
419
- # number. For the ICMP code number, use `-1` to specify all codes. If
420
- # you specify all ICMP types, you must specify all codes.
419
+ # If the protocol is TCP or UDP, this is the end of the port range. If
420
+ # the protocol is ICMP, this is the code. A value of -1 indicates all
421
+ # ICMP codes. If you specify all ICMP types, you must specify all ICMP
422
+ # codes.
421
423
  #
422
424
  # Alternatively, use a set of IP permissions to specify multiple rules
423
425
  # and a description for the rule.
@@ -676,8 +678,9 @@ module Aws::EC2
676
678
  # The CIDR IP address range. You can't specify this parameter when
677
679
  # specifying a source security group.
678
680
  # @option options [Integer] :from_port
679
- # The start of port range for the TCP and UDP protocols, or an ICMP type
680
- # number. For the ICMP type number, use `-1` to specify all ICMP types.
681
+ # If the protocol is TCP or UDP, this is the start of the port range. If
682
+ # the protocol is ICMP, this is the type number. A value of -1 indicates
683
+ # all ICMP types.
681
684
  # @option options [String] :group_name
682
685
  # \[EC2-Classic, default VPC\] The name of the security group. You must
683
686
  # specify either the security group ID or the security group name in the
@@ -710,9 +713,9 @@ module Aws::EC2
710
713
  # specific rule for an IP protocol and port range, use a set of IP
711
714
  # permissions instead.
712
715
  # @option options [Integer] :to_port
713
- # The end of port range for the TCP and UDP protocols, or an ICMP code
714
- # number. For the ICMP code number, use `-1` to specify all ICMP codes
715
- # for the ICMP type.
716
+ # If the protocol is TCP or UDP, this is the end of the port range. If
717
+ # the protocol is ICMP, this is the code. A value of -1 indicates all
718
+ # ICMP codes.
716
719
  # @option options [Boolean] :dry_run
717
720
  # Checks whether you have the required permissions for the action,
718
721
  # without actually making the request, and provides an error response.
@@ -600,8 +600,7 @@ module Aws::EC2
600
600
  #
601
601
  # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateSecurityGroup.html
602
602
  # @option options [Array<String>] :security_groups
603
- # \[EC2-Classic, default VPC\] The names of the security groups. For a
604
- # nondefault VPC, you must use security group IDs instead.
603
+ # \[EC2-Classic, default VPC\] The names of the security groups.
605
604
  #
606
605
  # If you specify a network interface, you must specify any security
607
606
  # groups as part of the network interface.
@@ -1179,12 +1178,15 @@ module Aws::EC2
1179
1178
  # * `metadata-options.http-tokens` - The metadata request authorization
1180
1179
  # state (`optional` \| `required`)
1181
1180
  #
1182
- # * `metadata-options.http-put-response-hop-limit` - The http metadata
1181
+ # * `metadata-options.http-put-response-hop-limit` - The HTTP metadata
1183
1182
  # request put response hop limit (integer, possible values `1` to
1184
1183
  # `64`)
1185
1184
  #
1186
- # * `metadata-options.http-endpoint` - Enable or disable metadata access
1187
- # on http endpoint (`enabled` \| `disabled`)
1185
+ # * `metadata-options.http-endpoint` - The status of access to the HTTP
1186
+ # metadata endpoint on your instance (`enabled` \| `disabled`)
1187
+ #
1188
+ # * `metadata-options.instance-metadata-tags` - The status of access to
1189
+ # instance tags from the instance metadata (`enabled` \| `disabled`)
1188
1190
  #
1189
1191
  # * `monitoring-state` - Indicates whether detailed monitoring is
1190
1192
  # enabled (`disabled` \| `enabled`).