aws-sdk-core 2.0.5 → 2.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90a3bc1726f74fb0442e17e58b62560404d125db
4
- data.tar.gz: 439984a4771811ab02d6b4dab48cb9f87c9421fe
3
+ metadata.gz: 71145cbff6dcace64034b04f8cdf0029543398f5
4
+ data.tar.gz: 1a3870c6828d9d128aa162fc23beffed947446fe
5
5
  SHA512:
6
- metadata.gz: 0c1ae4f922236290215f8741b88c40764e8fc88529366f30109fe392c0e148a18896bbfa6d0c13b7f7807c110c29c9bb3def701bab03a5ca77a49bbfedc7f55c
7
- data.tar.gz: e031d35218126b706bcb8142eb95c8e2a82f329138d9a0e0accb6a197ef3f3b703090ebad8f8b41a42393f96fbcfd37e47b9b829b2e3b040354945710c99a134
6
+ metadata.gz: c047ffd9255f311f4dc76043c41c133a35e3e0eeee823c6a69192d6c5ddeb1f0a86ee0bf393faaf060dc5f559a38d645ac8bac9448631e89ad4a80ede7931229
7
+ data.tar.gz: 6861935b6fa7de9e8e6857497f613ee2b02ba355fbc90466742ba90aab780bdb5bca137164686ff283a95470a28de0a2ea3f1b88447081d941669330e7d61bd4
@@ -0,0 +1,150 @@
1
+ {
2
+ "service": {
3
+ "hasMany": {
4
+ "Stacks": {
5
+ "request": { "operation": "DescribeStacks" },
6
+ "resource": {
7
+ "type":"Stack",
8
+ "identifiers": [
9
+ { "target": "Name", "sourceType": "responsePath", "source":"Stacks[].StackName" }
10
+ ]
11
+ }
12
+ }
13
+ },
14
+
15
+ "actions": {
16
+ "CreateStack": {
17
+ "request": { "operation": "CreateStack" },
18
+ "resource": {
19
+ "type": "Stack",
20
+ "identifiers": [
21
+ {"target": "Name", "sourceType": "requestParameter", "source":"StackName" }
22
+ ]
23
+ }
24
+ }
25
+ }
26
+ },
27
+
28
+ "resources": {
29
+ "Stack": {
30
+ "shape":"Stack",
31
+ "identifiers": [ {"name":"Name"} ],
32
+ "load": {
33
+ "request": {
34
+ "operation": "DescribeStacks",
35
+ "params": [
36
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
37
+ ]
38
+ },
39
+ "path": "Stacks[0]"
40
+ },
41
+ "actions": {
42
+
43
+ "Update": {
44
+ "request": {
45
+ "operation": "UpdateStack",
46
+ "params": [
47
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
48
+ ]
49
+ }
50
+ },
51
+
52
+ "CancelUpdate": {
53
+ "request": {
54
+ "operation": "CancelUpdateStack",
55
+ "params": [
56
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
57
+ ]
58
+ }
59
+ },
60
+
61
+ "Delete": {
62
+ "request": {
63
+ "operation": "DeleteStack",
64
+ "params": [
65
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
66
+ ]
67
+ }
68
+ }
69
+ },
70
+
71
+ "subResources": {
72
+ "resources": ["StackResource"],
73
+ "identifiers": {"Name": "StackName"}
74
+ },
75
+
76
+ "hasMany": {
77
+ "ResourceSummaries": {
78
+ "request": {
79
+ "operation": "ListStackResources",
80
+ "params": [
81
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
82
+ ]
83
+ },
84
+ "resource": {
85
+ "type": "StackResourceSummary",
86
+ "identifiers": [
87
+ { "target":"LogicalId", "sourceType":"responsePath", "source":"StackResourceSummaries[].LogicalResourceId" },
88
+ { "target":"StackName", "sourceType":"requestParameter", "source":"StackName" }
89
+ ]
90
+ },
91
+ "path": "StackResourceSummaries[]"
92
+ },
93
+
94
+ "Events": {
95
+ "request": {
96
+ "operation": "DescribeStackEvents",
97
+ "params": [
98
+ { "target":"StackName", "sourceType":"identifier", "source":"Name" }
99
+ ]
100
+ },
101
+ "resource": {
102
+ "type":"Event",
103
+ "identifiers": [
104
+ { "target": "Id", "sourceType": "responsePath", "source": "StackEvents[].EventId"}
105
+ ]
106
+ },
107
+ "path": "StackEvents[]"
108
+ }
109
+ }
110
+ },
111
+
112
+ "StackResource" : {
113
+ "identifiers": [{"name": "LogicalId"}, {"name": "StackName"}],
114
+ "shape": "StackResourceDetail",
115
+ "load": {
116
+ "request": {
117
+ "operation": "DescribeStackResource",
118
+ "params": [
119
+ { "target":"LogicalResourceId", "sourceType": "identifier", "source": "LogicalId" },
120
+ { "target":"StackName", "sourceType": "identifier", "source": "StackName" }
121
+ ]
122
+ },
123
+ "path": "StackResourceDetail"
124
+ }
125
+ },
126
+
127
+ "StackResourceSummary": {
128
+ "identifiers": [{"name": "LogicalId"}, {"name": "StackName"}],
129
+ "shape": "StackResourceSummary",
130
+
131
+ "hasOne": {
132
+ "Resource": {
133
+ "resource": {
134
+ "type": "StackResource",
135
+ "identifiers": [
136
+ { "target":"LogicalId", "sourceType":"identifier", "source":"LogicalId" },
137
+ { "target":"StackName", "sourceType":"identifier", "source":"StackName" }
138
+ ]
139
+ }
140
+ }
141
+ }
142
+ },
143
+
144
+
145
+ "Event": {
146
+ "identifiers": [{"name": "Id"}],
147
+ "shape": "StackEvent"
148
+ }
149
+ }
150
+ }
@@ -508,6 +508,87 @@
508
508
  }
509
509
  }
510
510
  },
511
+ "batchActions": {
512
+ "CreateTags": {
513
+ "request": {
514
+ "operation": "CreateTags",
515
+ "params": [
516
+ { "target":"Resources[]", "sourceType":"identifier", "source":"Id" }
517
+ ]
518
+ }
519
+ },
520
+ "Monitor": {
521
+ "request": {
522
+ "operation": "MonitorInstances",
523
+ "params": [
524
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
525
+ ]
526
+ }
527
+ },
528
+ "Start": {
529
+ "request": {
530
+ "operation": "StartInstances",
531
+ "params": [
532
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
533
+ ]
534
+ }
535
+ },
536
+ "Stop": {
537
+ "request": {
538
+ "operation": "StopInstances",
539
+ "params": [
540
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
541
+ ]
542
+ }
543
+ },
544
+ "Reboot": {
545
+ "request": {
546
+ "operation": "RebootInstances",
547
+ "params": [
548
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
549
+ ]
550
+ }
551
+ },
552
+ "Terminate": {
553
+ "request": {
554
+ "operation": "TerminateInstances",
555
+ "params": [
556
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
557
+ ]
558
+ }
559
+ },
560
+ "Unmonitor": {
561
+ "request": {
562
+ "operation": "UnmonitorInstances",
563
+ "params": [
564
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
565
+ ]
566
+ }
567
+ }
568
+ },
569
+ "waiters": {
570
+ "Stopped": {
571
+ "waiterName": "InstanceStopped",
572
+ "params": [
573
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
574
+ ],
575
+ "path": "Reservations[0].Instances[0]"
576
+ },
577
+ "Running": {
578
+ "waiterName": "InstanceRunning",
579
+ "params": [
580
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
581
+ ],
582
+ "path": "Reservations[0].Instances[0]"
583
+ },
584
+ "Terminated": {
585
+ "waiterName": "InstanceTerminated",
586
+ "params": [
587
+ { "target":"InstanceIds[]", "sourceType":"identifier", "source":"Id" }
588
+ ],
589
+ "path": "Reservations[0].Instances[0]"
590
+ }
591
+ },
511
592
  "hasOne": {
512
593
  "Subnet": {
513
594
  "resource": {
@@ -1891,6 +1972,18 @@
1891
1972
  ]
1892
1973
  }
1893
1974
  }
1975
+ },
1976
+ "batchActions": {
1977
+ "Delete": {
1978
+ "request": {
1979
+ "operation": "DeleteTags",
1980
+ "params": [
1981
+ { "target":"Resources[]", "sourceType":"identifier", "source":"ResourceId" },
1982
+ { "target":"Tags[*].Key", "sourceType":"identifier", "source":"Key" },
1983
+ { "target":"Tags[*].Value", "sourceType":"identifier", "source":"Value" }
1984
+ ]
1985
+ }
1986
+ }
1894
1987
  }
1895
1988
  }
1896
1989
  }
@@ -2285,7 +2285,7 @@
2285
2285
  "locationName":"Version"
2286
2286
  },
2287
2287
  "DeleteMarkers":{
2288
- "shape":"DeleteMarkers",
2288
+ "shape":"ObjectVersionList",
2289
2289
  "locationName":"DeleteMarker"
2290
2290
  },
2291
2291
  "Name":{"shape":"BucketName"},
@@ -101,6 +101,23 @@
101
101
  ]
102
102
  }
103
103
  },
104
+ "ObjectVersions": {
105
+ "request": {
106
+ "operation": "ListObjectVersions",
107
+ "params": [
108
+ { "target":"Bucket", "sourceType":"identifier", "source":"Name" }
109
+ ]
110
+ },
111
+ "resource": {
112
+ "type": "ObjectVersion",
113
+ "identifiers": [
114
+ { "target":"BucketName", "sourceType":"identifier", "source":"Name" },
115
+ { "target":"ObjectKey", "sourceType":"responsePath", "source":"[Versions,DeleteMarkers]|[].Key" },
116
+ { "target":"Id", "sourceType":"responsePath", "source":"[Versions,DeleteMarkers]|[].VersionId" }
117
+ ]
118
+ },
119
+ "path":"[Versions,DeleteMarkers]|[]"
120
+ },
104
121
  "MultipartUploads": {
105
122
  "request": {
106
123
  "operation":"ListMultipartUploads",
@@ -472,6 +489,13 @@
472
489
  { "target":"Key", "sourceType":"identifier", "source":"ObjectKey" },
473
490
  { "target":"UploadId", "sourceType":"identifier", "source":"Id" }
474
491
  ]
492
+ },
493
+ "resource": {
494
+ "type": "Object",
495
+ "identifiers": [
496
+ { "target":"BucketName", "sourceType":"identifier", "source":"BucketName" },
497
+ { "target":"Key", "sourceType":"identifier", "source":"ObjectKey" }
498
+ ]
475
499
  }
476
500
  },
477
501
  "Parts": {
@@ -608,6 +632,7 @@
608
632
  "subResources": {
609
633
  "resources": [
610
634
  "ObjectAcl",
635
+ "ObjectVersion",
611
636
  "MultipartUpload"
612
637
  ],
613
638
  "identifiers": {
@@ -643,6 +668,58 @@
643
668
  }
644
669
  }
645
670
  }
671
+ },
672
+ "ObjectVersion": {
673
+ "identifiers": [
674
+ { "name": "BucketName" },
675
+ { "name": "ObjectKey" },
676
+ { "name": "Id" }
677
+ ],
678
+ "shape": "ObjectVersion",
679
+ "actions": {
680
+ "Delete": {
681
+ "request": {
682
+ "operation": "DeleteObject",
683
+ "params": [
684
+ { "target":"Bucket", "sourceType":"identifier", "source":"BucketName" },
685
+ { "target":"Key", "sourceType":"identifier", "source":"ObjectKey" },
686
+ { "target":"VersionId", "sourceType":"identifier", "source":"Id" }
687
+ ]
688
+ }
689
+ }
690
+ },
691
+ "batchActions": {
692
+ "Get": {
693
+ "request": {
694
+ "operation": "GetObject",
695
+ "params": [
696
+ { "target":"Bucket", "sourceType":"identifier", "source":"BucketName" },
697
+ { "target":"Key", "sourceType":"identifier", "source":"ObjectKey" },
698
+ { "target":"VersionId", "sourceType":"identifier", "source":"Id" }
699
+ ]
700
+ }
701
+ },
702
+ "Head": {
703
+ "request": {
704
+ "operation": "HeadObject",
705
+ "params": [
706
+ { "target":"Bucket", "sourceType":"identifier", "source":"BucketName" },
707
+ { "target":"Key", "sourceType":"identifier", "source":"ObjectKey" },
708
+ { "target":"VersionId", "sourceType":"identifier", "source":"Id" }
709
+ ]
710
+ }
711
+ },
712
+ "Delete": {
713
+ "request": {
714
+ "operation": "DeleteObjects",
715
+ "params": [
716
+ { "target":"Bucket", "sourceType":"identifier", "source":"BucketName" },
717
+ { "target":"Delete.Objects[*].Key", "sourceType":"identifier", "source":"ObjectKey" },
718
+ { "target":"Delete.Objects[*].VersionId", "sourceType":"identifier", "source":"Id" }
719
+ ]
720
+ }
721
+ }
722
+ }
646
723
  }
647
724
  }
648
725
  }
@@ -169,6 +169,18 @@
169
169
  ]
170
170
  }
171
171
  }
172
+ },
173
+ "batchActions": {
174
+ "Delete": {
175
+ "request": {
176
+ "operation":"DeleteMessageBatch",
177
+ "params": [
178
+ { "target":"QueueUrl", "sourceType":"identifier", "source":"QueueUrl" },
179
+ { "target":"Entries[*].Id", "sourceType":"dataMember", "source":"MessageId" },
180
+ { "target":"Entries[*].ReceiptHandle", "sourceType":"identifier", "source":"ReceiptHandle" }
181
+ ]
182
+ }
183
+ }
172
184
  }
173
185
  }
174
186
  }
@@ -226,20 +226,19 @@ module Aws
226
226
  # Aws.add_service('SvcName',
227
227
  # api: '/path/to/svc.api.json',
228
228
  # paginators: '/path/to/svc.paginators.json',
229
+ # waiters: '/path/to/svc.waiters.json',
229
230
  # resources: '/path/to/svc.resources.json')
230
231
  #
231
232
  # Aws::SvcName::Client.new
232
233
  # #=> #<Aws::SvcName::Client>
233
234
  #
234
235
  # @param [String] svc_name The name of the service. This will also be
235
- # the namespace under {Aws}.
236
- # @option options[required,String,Hash,Seahorse::Model::Api] :api
237
- # @option options[String,Hash,Paging::Provider] :paginators
238
- # @option options[String] :resources
239
- # @yieldparam [String] svc_name
240
- # @yieldparam [Module<Service>] svc_module
241
- # @yieldparam [Hash<String,String>] svc_files
242
- # @return [Module<Service>]
236
+ # the namespace under {Aws}. This must be a valid constant name.
237
+ # @option options[String,Pathname,Hash,Seahorse::Model::Api,nil] :api
238
+ # @option options[String,Pathname,Hash,Paging::Provider,nil] :paginators
239
+ # @option options[String,Pathname,Hash,Waiters::Provider,nil] :waiters
240
+ # @option options[String,Pathname,Hash,Resources::Definition,nil] :resources
241
+ # @return [Module<Service>] Returns the new service module.
243
242
  def add_service(svc_name, options = {})
244
243
  svc_module = Module.new { extend Service }
245
244
  const_set(svc_name, svc_module)
@@ -1,3 +1,5 @@
1
+ require 'pathname'
2
+
1
3
  module Aws
2
4
  # @api private
3
5
  module ClientPaging
@@ -13,7 +15,7 @@ module Aws
13
15
  @paginators = case paginators
14
16
  when Paging::Provider then paginators
15
17
  when Hash then Paging::Provider.new(paginators)
16
- when String then Paging::Provider.new(Aws.load_json(paginators))
18
+ when String, Pathname then Paging::Provider.new(Aws.load_json(paginators))
17
19
  when nil then Paging::NullProvider.new
18
20
  else raise ArgumentError, 'invalid paginators'
19
21
  end
@@ -10,7 +10,7 @@ module Aws
10
10
  case waiters
11
11
  when Waiters::Provider then waiters
12
12
  when Hash then Waiters::Provider.new(waiters)
13
- when String then Waiters::Provider.new(Aws.load_json(waiters))
13
+ when String, Pathname then Waiters::Provider.new(Aws.load_json(waiters))
14
14
  when nil then Waiters::NullProvider.new
15
15
  else raise ArgumentError, 'invalid waiters'
16
16
  end
@@ -2,4 +2,5 @@ Aws.add_service(:CloudFormation, {
2
2
  api: File.join(Aws::API_DIR, 'CloudFormation.api.json'),
3
3
  docs: File.join(Aws::API_DIR, 'CloudFormation.docs.json'),
4
4
  paginators: File.join(Aws::API_DIR, 'CloudFormation.paginators.json'),
5
+ resources: File.join(Aws::API_DIR, 'CloudFormation.resources.json'),
5
6
  })
@@ -1,5 +1,3 @@
1
- require 'jamespath'
2
-
3
1
  module Aws
4
2
 
5
3
  # Decorates a {Seahorse::Client::Response} with paging methods:
@@ -1,3 +1,5 @@
1
+ require 'jmespath'
2
+
1
3
  module Aws
2
4
  module Paging
3
5
  class Pager
@@ -19,7 +21,7 @@ module Aws
19
21
  # @return [Hash]
20
22
  def next_tokens(response)
21
23
  @tokens.each.with_object({}) do |(source, target), next_tokens|
22
- value = Jamespath.search(source, response.data)
24
+ value = JMESPath.search(source, response.data)
23
25
  next_tokens[target.to_sym] = value unless value.nil?
24
26
  end
25
27
  end
@@ -28,7 +30,7 @@ module Aws
28
30
  # @return [Boolean]
29
31
  def truncated?(response)
30
32
  if @more_results
31
- Jamespath.search(@more_results, response.data)
33
+ JMESPath.search(@more_results, response.data)
32
34
  else
33
35
  !next_tokens(response).empty?
34
36
  end
@@ -23,7 +23,7 @@ module Aws
23
23
  if region == 'us-east-1'
24
24
  "#{bucket}.s3-external-1.amazonaws.com"
25
25
  else
26
- "#{bucket}.s3.#{region}.amazonaws.com"
26
+ bucket + '.' + URI.parse(EndpointProvider.resolve(region, 's3')).host
27
27
  end
28
28
  end
29
29
 
@@ -45,8 +45,7 @@ module Aws
45
45
  if cached_region && cached_region != context.config.region
46
46
  context.http_request.endpoint.host = new_hostname(context, cached_region)
47
47
  context[:sigv4_region] = cached_region
48
- context[:signature_version] =
49
- S3.sigv2_region?(cached_region) ? 's3' : 'v4'
48
+ context[:signature_version] = 'v4'
50
49
  end
51
50
  end
52
51
 
@@ -66,10 +65,7 @@ module Aws
66
65
  detect_region_and_retry(response)
67
66
  elsif wrong_sigv4_region?(response)
68
67
  extract_body_region_and_retry(response.context)
69
- elsif moved_permanently?(response) and dns_style?(response.context)
70
- # region detection not supported for 301 moved permanently
71
- # when using path style
72
- detect_region_and_retry(response) else
68
+ else
73
69
  response
74
70
  end
75
71
  end
@@ -85,10 +81,6 @@ module Aws
85
81
  resp.context.http_response.body_contents.match(/<Region>.+?<\/Region>/)
86
82
  end
87
83
 
88
- def moved_permanently?(resp)
89
- resp.context.http_response.status_code == 301
90
- end
91
-
92
84
  def extract_body_region_and_retry(context)
93
85
  actual_region = region_from_body(context)
94
86
  updgrade_to_v4(context, actual_region)
@@ -120,14 +112,9 @@ module Aws
120
112
  signer.sign(context.http_request)
121
113
  end
122
114
 
123
- def dns_style?(context)
124
- bucket = context.params[:bucket]
125
- context.http_request.endpoint.host.match(/^#{Regexp.escape(bucket)}\.s3/)
126
- end
127
-
128
115
  def region_from_location_header(context)
129
116
  location = context.http_response.headers['location']
130
- location.match(/s3\.(.+?)\.amazonaws\.com/)[1]
117
+ location.match(/s3.(.+?)\.amazonaws\.com/)[1]
131
118
  end
132
119
 
133
120
  def log_warning(context, actual_region)
@@ -1,3 +1,3 @@
1
1
  module Aws
2
- VERSION = '2.0.5'
2
+ VERSION = '2.0.6'
3
3
  end
@@ -1,5 +1,3 @@
1
- require 'jamespath'
2
-
3
1
  module Aws
4
2
  module Waiters
5
3
  module Errors
@@ -1,4 +1,4 @@
1
- require 'jamespath'
1
+ require 'jmespath'
2
2
 
3
3
  module Aws
4
4
  module Waiters
@@ -150,7 +150,7 @@ module Aws
150
150
  if resp.error
151
151
  false
152
152
  elsif path
153
- output_value_matches?(value, Jamespath.search(path, resp.data))
153
+ output_value_matches?(value, JMESPath.search(path, resp.data))
154
154
  else
155
155
  true
156
156
  end
@@ -184,7 +184,7 @@ module Seahorse
184
184
  when nil then Model::Api.new({})
185
185
  when Model::Api then api
186
186
  when Hash then Model::Api.new(api)
187
- when String then Model::Api.new(Util.load_json(api))
187
+ when String, Pathname then Model::Api.new(Util.load_json(api))
188
188
  else raise ArgumentError, "invalid api definition #{api}"
189
189
  end
190
190
  define_operation_methods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-23 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: multi_json
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: jamespath
56
+ name: jmespath
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 0.5.1
61
+ version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: 0.5.1
68
+ version: '1.0'
69
69
  description: Provides API clients for AWS.
70
70
  email:
71
71
  executables:
@@ -249,6 +249,7 @@ files:
249
249
  - apis/AutoScaling.paginators.json
250
250
  - apis/CloudFormation.api.json
251
251
  - apis/CloudFormation.paginators.json
252
+ - apis/CloudFormation.resources.json
252
253
  - apis/CloudFront.api.json
253
254
  - apis/CloudFront.paginators.json
254
255
  - apis/CloudFront.waiters.json