fog-aws 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fog/aws.rb +2 -0
  3. data/lib/fog/aws/ecs.rb +187 -0
  4. data/lib/fog/aws/models/compute/flavors.rb +10 -0
  5. data/lib/fog/aws/parsers/ecs/base.rb +28 -0
  6. data/lib/fog/aws/parsers/ecs/container_instance.rb +75 -0
  7. data/lib/fog/aws/parsers/ecs/create_cluster.rb +30 -0
  8. data/lib/fog/aws/parsers/ecs/create_service.rb +31 -0
  9. data/lib/fog/aws/parsers/ecs/delete_cluster.rb +30 -0
  10. data/lib/fog/aws/parsers/ecs/delete_service.rb +31 -0
  11. data/lib/fog/aws/parsers/ecs/deregister_container_instance.rb +31 -0
  12. data/lib/fog/aws/parsers/ecs/deregister_task_definition.rb +32 -0
  13. data/lib/fog/aws/parsers/ecs/describe_clusters.rb +55 -0
  14. data/lib/fog/aws/parsers/ecs/describe_container_instances.rb +38 -0
  15. data/lib/fog/aws/parsers/ecs/describe_services.rb +24 -0
  16. data/lib/fog/aws/parsers/ecs/describe_task_definition.rb +32 -0
  17. data/lib/fog/aws/parsers/ecs/describe_tasks.rb +24 -0
  18. data/lib/fog/aws/parsers/ecs/list_clusters.rb +27 -0
  19. data/lib/fog/aws/parsers/ecs/list_container_instances.rb +27 -0
  20. data/lib/fog/aws/parsers/ecs/list_services.rb +27 -0
  21. data/lib/fog/aws/parsers/ecs/list_task_definition_families.rb +27 -0
  22. data/lib/fog/aws/parsers/ecs/list_task_definitions.rb +27 -0
  23. data/lib/fog/aws/parsers/ecs/list_tasks.rb +27 -0
  24. data/lib/fog/aws/parsers/ecs/register_task_definition.rb +32 -0
  25. data/lib/fog/aws/parsers/ecs/run_task.rb +24 -0
  26. data/lib/fog/aws/parsers/ecs/service.rb +82 -0
  27. data/lib/fog/aws/parsers/ecs/start_task.rb +24 -0
  28. data/lib/fog/aws/parsers/ecs/stop_task.rb +23 -0
  29. data/lib/fog/aws/parsers/ecs/task.rb +77 -0
  30. data/lib/fog/aws/parsers/ecs/task_definition.rb +95 -0
  31. data/lib/fog/aws/parsers/ecs/update_service.rb +31 -0
  32. data/lib/fog/aws/requests/compute/create_vpc.rb +1 -1
  33. data/lib/fog/aws/requests/ecs/create_cluster.rb +64 -0
  34. data/lib/fog/aws/requests/ecs/create_service.rb +118 -0
  35. data/lib/fog/aws/requests/ecs/delete_cluster.rb +61 -0
  36. data/lib/fog/aws/requests/ecs/delete_service.rb +72 -0
  37. data/lib/fog/aws/requests/ecs/deregister_container_instance.rb +63 -0
  38. data/lib/fog/aws/requests/ecs/deregister_task_definition.rb +58 -0
  39. data/lib/fog/aws/requests/ecs/describe_clusters.rb +83 -0
  40. data/lib/fog/aws/requests/ecs/describe_container_instances.rb +64 -0
  41. data/lib/fog/aws/requests/ecs/describe_services.rb +76 -0
  42. data/lib/fog/aws/requests/ecs/describe_task_definition.rb +64 -0
  43. data/lib/fog/aws/requests/ecs/describe_tasks.rb +65 -0
  44. data/lib/fog/aws/requests/ecs/list_clusters.rb +45 -0
  45. data/lib/fog/aws/requests/ecs/list_container_instances.rb +46 -0
  46. data/lib/fog/aws/requests/ecs/list_services.rb +59 -0
  47. data/lib/fog/aws/requests/ecs/list_task_definition_families.rb +56 -0
  48. data/lib/fog/aws/requests/ecs/list_task_definitions.rb +55 -0
  49. data/lib/fog/aws/requests/ecs/list_tasks.rb +50 -0
  50. data/lib/fog/aws/requests/ecs/register_task_definition.rb +68 -0
  51. data/lib/fog/aws/requests/ecs/run_task.rb +114 -0
  52. data/lib/fog/aws/requests/ecs/start_task.rb +130 -0
  53. data/lib/fog/aws/requests/ecs/stop_task.rb +64 -0
  54. data/lib/fog/aws/requests/ecs/update_service.rb +81 -0
  55. data/lib/fog/aws/version.rb +1 -1
  56. data/tests/requests/compute/vpc_tests.rb +7 -0
  57. data/tests/requests/ecs/cluster_tests.rb +112 -0
  58. data/tests/requests/ecs/container_instance_tests.rb +119 -0
  59. data/tests/requests/ecs/helper.rb +276 -0
  60. data/tests/requests/ecs/sample_task_definition1.json +56 -0
  61. data/tests/requests/ecs/service_tests.rb +132 -0
  62. data/tests/requests/ecs/task_definitions_tests.rb +97 -0
  63. data/tests/requests/ecs/task_tests.rb +145 -0
  64. metadata +59 -2
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "0.4.1"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -52,6 +52,13 @@ Shindo.tests('Fog::Compute[:aws] | vpc requests', ['aws']) do
52
52
  data
53
53
  end
54
54
 
55
+ tests('#create_vpc').formats(@create_vpcs_format) do
56
+ data = Fog::Compute[:aws].create_vpc('10.255.254.0/28',
57
+ {'InstanceTenancy' => 'default'}).body
58
+ @vpc_id = data['vpcSet'].first['vpcId']
59
+ data
60
+ end
61
+
55
62
  tests('#describe_vpcs').formats(@describe_vpcs_format) do
56
63
  Fog::Compute[:aws].describe_vpcs.body
57
64
  end
@@ -0,0 +1,112 @@
1
+ Shindo.tests('AWS::ECS | cluster requests', ['aws', 'ecs']) do
2
+
3
+ Fog::AWS[:ecs].reset_data
4
+
5
+ tests('success') do
6
+
7
+ tests("#create_cluster").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
8
+ result = Fog::AWS[:ecs].create_cluster('clusterName' => 'cluster1').body
9
+ cluster = result['CreateClusterResult']['cluster']
10
+ returns('cluster1') { cluster['clusterName'] }
11
+ returns('ACTIVE') { cluster['status'] }
12
+ result
13
+ end
14
+
15
+ tests("#create_cluster another").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
16
+ result = Fog::AWS[:ecs].create_cluster('clusterName' => 'foobar').body
17
+ cluster = result['CreateClusterResult']['cluster']
18
+ returns('foobar') { cluster['clusterName'] }
19
+ returns('ACTIVE') { cluster['status'] }
20
+ result
21
+ end
22
+
23
+ tests("#create_cluster without params").formats(AWS::ECS::Formats::CREATE_CLUSTER) do
24
+ result = Fog::AWS[:ecs].create_cluster.body
25
+ cluster = result['CreateClusterResult']['cluster']
26
+ returns('default') { cluster['clusterName'] }
27
+ result
28
+ end
29
+
30
+ tests("#list_clusters").formats(AWS::ECS::Formats::LIST_CLUSTERS) do
31
+ result = Fog::AWS[:ecs].list_clusters.body
32
+ clusters = result['ListClustersResult']['clusterArns']
33
+ returns(true) { clusters.size.eql?(3) }
34
+ result
35
+ end
36
+
37
+ tests("#describe_clusters with name").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
38
+ result = Fog::AWS[:ecs].describe_clusters('clusters' => 'cluster1').body
39
+ clusters = result['DescribeClustersResult']['clusters']
40
+ failures = result['DescribeClustersResult']['failures']
41
+ returns(true) { clusters.size.eql?(1) }
42
+ returns('cluster1') { clusters.first['clusterName'] }
43
+ returns(true) { failures.empty? }
44
+ result
45
+ end
46
+
47
+ tests("#describe_clusters without params").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
48
+ result = Fog::AWS[:ecs].describe_clusters.body
49
+ clusters = result['DescribeClustersResult']['clusters']
50
+ failures = result['DescribeClustersResult']['failures']
51
+ returns(true) { clusters.size.eql?(1) }
52
+ returns('default') { clusters.first['clusterName'] }
53
+ result
54
+ end
55
+
56
+ tests("#describe_clusters several with name").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
57
+ result = Fog::AWS[:ecs].describe_clusters('clusters' => %w(cluster1 foobar)).body
58
+ clusters = result['DescribeClustersResult']['clusters']
59
+ cluster_names = clusters.map { |c| c['clusterName'] }.sort
60
+ returns(true) { clusters.size.eql?(2) }
61
+ returns('cluster1') { cluster_names.first }
62
+ returns('foobar') { cluster_names[1] }
63
+ result
64
+ end
65
+
66
+ tests("#describe_clusters with errors").formats(AWS::ECS::Formats::DESCRIBE_CLUSTERS) do
67
+ result = Fog::AWS[:ecs].describe_clusters('clusters' => %w(foobar not_here wtf)).body
68
+ clusters = result['DescribeClustersResult']['clusters']
69
+ failures = result['DescribeClustersResult']['failures']
70
+ returns(true) { failures.size.eql?(2) }
71
+ returns('MISSING') { failures.first['reason'] }
72
+ returns(true) { clusters.size.eql?(1) }
73
+ result
74
+ end
75
+
76
+ tests("#delete_cluster").formats(AWS::ECS::Formats::DELETE_CLUSTER) do
77
+ cluster_name = 'foobar'
78
+ result = Fog::AWS[:ecs].delete_cluster('cluster' => cluster_name).body
79
+ cluster = result['DeleteClusterResult']['cluster']
80
+ returns(true) { cluster['clusterName'].eql?(cluster_name) }
81
+ returns('INACTIVE') { cluster['status'] }
82
+ result
83
+ end
84
+
85
+ tests("#list_clusters after one delete").formats(AWS::ECS::Formats::LIST_CLUSTERS) do
86
+ result = Fog::AWS[:ecs].list_clusters.body
87
+ clusters = result['ListClustersResult']['clusterArns']
88
+ returns(true) { clusters.size.eql?(2) }
89
+ result
90
+ end
91
+
92
+ tests("#delete_cluster by arn").formats(AWS::ECS::Formats::DELETE_CLUSTER) do
93
+ result1 = Fog::AWS[:ecs].describe_clusters.body
94
+ cluster1 = result1['DescribeClustersResult']['clusters'].first
95
+ result2 = Fog::AWS[:ecs].delete_cluster('cluster' => cluster1['clusterArn']).body
96
+ cluster2 = result2['DeleteClusterResult']['cluster']
97
+ returns('default') { cluster2['clusterName'] }
98
+ returns('INACTIVE') { cluster2['status'] }
99
+ result2
100
+ end
101
+
102
+ end
103
+
104
+ tests('failures') do
105
+
106
+ tests('#delete_cluster without params').raises(Fog::AWS::ECS::Error) do
107
+ response = Fog::AWS[:ecs].delete_cluster.body
108
+ end
109
+
110
+ end
111
+
112
+ end
@@ -0,0 +1,119 @@
1
+ Shindo.tests('AWS::ECS | container instance requests', ['aws', 'ecs']) do
2
+
3
+ Fog::AWS[:ecs].reset_data
4
+
5
+ container_instance_arn = 'arn:aws:ecs:us-west-2:738152598183:container-instance/eff1068d-5fcb-4804-89f0-7d18ffc6879c'
6
+ ec2_instance_id = 'i-58f4b4ae'
7
+
8
+ Fog::AWS[:ecs].data[:container_instances] << {
9
+ 'remainingResources' => [
10
+ {
11
+ 'longValue' => 0,
12
+ 'name' => 'CPU',
13
+ 'integerValue' => 1004,
14
+ 'doubleValue' => 0.0,
15
+ 'type' => 'INTEGER'
16
+ },
17
+ {
18
+ 'longValue' => 0,
19
+ 'name' => 'MEMORY',
20
+ 'integerValue' => 496,
21
+ 'doubleValue' => 0.0,
22
+ 'type' => 'INTEGER'
23
+ },
24
+ {
25
+ 'stringSetValue' => [2376, 22, 80, 51678, 2375],
26
+ 'longValue' => 0,
27
+ 'name' => 'PORTS',
28
+ 'integerValue' => 0,
29
+ 'doubleValue' => 0.0,
30
+ 'type' => 'STRINGSET'
31
+ }
32
+ ],
33
+ 'agentConnected' => true,
34
+ 'runningTasksCount' => 1,
35
+ 'status' => 'ACTIVE',
36
+ 'registeredResources' => [
37
+ {
38
+ 'longValue' => 0,
39
+ 'name' => 'CPU',
40
+ 'integerValue' => 1024,
41
+ 'doubleValue' => 0.0,
42
+ 'type' => 'INTEGER'
43
+ },
44
+ {
45
+ 'longValue' => 0,
46
+ 'name' => 'MEMORY',
47
+ 'integerValue' => 996,
48
+ 'doubleValue' => 0.0,
49
+ 'type' => 'INTEGER'
50
+ },
51
+ {
52
+ 'stringSetValue' => [2376, 22, 80, 51678, 2375],
53
+ 'longValue' => 0,
54
+ 'name' => 'PORTS',
55
+ 'integerValue' => 0,
56
+ 'doubleValue' => 0.0,
57
+ 'type' => 'STRINGSET'
58
+ }
59
+ ],
60
+ 'containerInstanceArn' => container_instance_arn,
61
+ 'pendingTasksCount' => 0,
62
+ 'ec2InstanceId' => ec2_instance_id
63
+ }
64
+
65
+ tests('success') do
66
+
67
+ tests("#list_container_instances").formats(AWS::ECS::Formats::LIST_CONTAINER_INSTANCES) do
68
+ result = Fog::AWS[:ecs].list_container_instances.body
69
+ list_instances_arns = result['ListContainerInstancesResult']['containerInstanceArns']
70
+ returns(false) { list_instances_arns.empty? }
71
+ returns(true) { list_instances_arns.first.eql?(container_instance_arn) }
72
+ result
73
+ end
74
+
75
+ tests("#describe_container_instances").formats(AWS::ECS::Formats::DESCRIBE_CONTAINER_INSTANCES) do
76
+ result = Fog::AWS[:ecs].describe_container_instances('containerInstances' => container_instance_arn).body
77
+ instance = result['DescribeContainerInstancesResult']['containerInstances'].first
78
+ returns(true) { instance['containerInstanceArn'].eql?(container_instance_arn) }
79
+ returns(true) { instance['ec2InstanceId'].eql?(ec2_instance_id) }
80
+ returns(true) { instance['status'].eql?('ACTIVE') }
81
+ result
82
+ end
83
+
84
+ tests("#deregister_container_instance").formats(AWS::ECS::Formats::DEREGISTER_CONTAINER_INSTANCE) do
85
+ result = Fog::AWS[:ecs].deregister_container_instance('containerInstance' => container_instance_arn).body
86
+ instance = result['DeregisterContainerInstanceResult']['containerInstance']
87
+ returns(true) { instance['containerInstanceArn'].eql?(container_instance_arn) }
88
+ returns(true) { instance['ec2InstanceId'].eql?(ec2_instance_id) }
89
+ returns(true) { instance['pendingTasksCount'].eql?(0) }
90
+ result
91
+ end
92
+
93
+ tests("#list_container_instances again").formats(AWS::ECS::Formats::LIST_CONTAINER_INSTANCES) do
94
+ result = Fog::AWS[:ecs].list_container_instances.body
95
+ list_instances_arns = result['ListContainerInstancesResult']['containerInstanceArns']
96
+ returns(true) { list_instances_arns.empty? }
97
+ result
98
+ end
99
+
100
+ end
101
+
102
+ tests('failures') do
103
+
104
+ tests('#describe_container_instances without params').raises(Fog::AWS::ECS::Error) do
105
+ response = Fog::AWS[:ecs].describe_container_instances.body
106
+ end
107
+
108
+ tests('#deregister_container_instance without params').raises(Fog::AWS::ECS::Error) do
109
+ response = Fog::AWS[:ecs].deregister_container_instance.body
110
+ end
111
+
112
+ tests('#deregister_container_instance nonexistent').raises(Fog::AWS::ECS::Error) do
113
+ instance_uuid = 'ffffffff-ffff-0000-ffff-deadbeefff'
114
+ response = Fog::AWS[:ecs].deregister_container_instance('containerInstance' => instance_uuid).body
115
+ end
116
+
117
+ end
118
+
119
+ end
@@ -0,0 +1,276 @@
1
+ class AWS
2
+ module ECS
3
+ module Formats
4
+ BASIC = {
5
+ 'ResponseMetadata' => { 'RequestId' => String }
6
+ }
7
+ CREATE_CLUSTER = BASIC.merge({
8
+ 'CreateClusterResult' => {
9
+ 'cluster' => {
10
+ 'clusterName' => String,
11
+ 'clusterArn' => String,
12
+ 'status' => String,
13
+ 'registeredContainerInstancesCount' => Integer,
14
+ 'runningTasksCount' => Integer,
15
+ 'pendingTasksCount' => Integer
16
+ }
17
+ }
18
+ })
19
+ LIST_CLUSTERS = BASIC.merge({
20
+ 'ListClustersResult' => {
21
+ 'clusterArns' => [String],
22
+ 'nextToken' => Fog::Nullable::String
23
+ }
24
+ })
25
+ DELETE_CLUSTER = BASIC.merge({
26
+ 'DeleteClusterResult' => {
27
+ 'cluster' => {
28
+ 'clusterName' => String,
29
+ 'clusterArn' => String,
30
+ 'status' => String,
31
+ 'registeredContainerInstancesCount' => Integer,
32
+ 'runningTasksCount' => Integer,
33
+ 'pendingTasksCount' => Integer
34
+ }
35
+ }
36
+ })
37
+ DESCRIBE_CLUSTERS = BASIC.merge({
38
+ 'DescribeClustersResult' => {
39
+ 'failures' => [Fog::Nullable::Hash],
40
+ 'clusters' => [Fog::Nullable::Hash]
41
+ }
42
+ })
43
+ REGISTER_TASK_DEFINITION = BASIC.merge({
44
+ 'RegisterTaskDefinitionResult' => {
45
+ 'taskDefinition' => {
46
+ 'revision' => Integer,
47
+ 'taskDefinitionArn' => String,
48
+ 'family' => String,
49
+ 'containerDefinitions' => [Hash],
50
+ 'volumes' => Fog::Nullable::Array
51
+ }
52
+ }
53
+ })
54
+ LIST_TASK_DEFINITIONS = BASIC.merge({
55
+ 'ListTaskDefinitionsResult' => {
56
+ 'taskDefinitionArns' => [String]
57
+ }
58
+ })
59
+ DESCRIBE_TASK_DEFINITION = BASIC.merge({
60
+ 'DescribeTaskDefinitionResult' => {
61
+ 'taskDefinition' => {
62
+ 'revision' => Integer,
63
+ 'taskDefinitionArn' => String,
64
+ 'family' => String,
65
+ 'containerDefinitions' => [Hash],
66
+ 'volumes' => Fog::Nullable::Array
67
+ }
68
+ }
69
+ })
70
+ DEREGISTER_TASK_DEFINITION = BASIC.merge({
71
+ 'DeregisterTaskDefinitionResult' => {
72
+ 'taskDefinition' => {
73
+ 'revision' => Integer,
74
+ 'taskDefinitionArn' => String,
75
+ 'family' => String,
76
+ 'containerDefinitions' => [Hash],
77
+ 'volumes' => Fog::Nullable::Array
78
+ }
79
+ }
80
+ })
81
+ LIST_TASK_DEFINITION_FAMILIES = BASIC.merge({
82
+ 'ListTaskDefinitionFamiliesResult' => {
83
+ 'families' => [String]
84
+ }
85
+ })
86
+ CREATE_SERVICE = BASIC.merge({
87
+ 'CreateServiceResult' => {
88
+ 'service' => {
89
+ 'events' => [Fog::Nullable::Hash],
90
+ 'serviceName' => String,
91
+ 'serviceArn' => String,
92
+ 'taskDefinition' => String,
93
+ 'clusterArn' => String,
94
+ 'status' => String,
95
+ 'roleArn' => Fog::Nullable::String,
96
+ 'loadBalancers' => [Fog::Nullable::Hash],
97
+ 'deployments' => [Fog::Nullable::Hash],
98
+ 'desiredCount' => Integer,
99
+ 'pendingCount' => Integer,
100
+ 'runningCount' => Integer
101
+ }
102
+ }
103
+ })
104
+ DELETE_SERVICE = BASIC.merge({
105
+ 'DeleteServiceResult' => {
106
+ 'service' => {
107
+ 'events' => [Fog::Nullable::Hash],
108
+ 'serviceName' => String,
109
+ 'serviceArn' => String,
110
+ 'taskDefinition' => String,
111
+ 'clusterArn' => String,
112
+ 'status' => String,
113
+ 'roleArn' => Fog::Nullable::String,
114
+ 'loadBalancers' => [Fog::Nullable::Hash],
115
+ 'deployments' => [Fog::Nullable::Hash],
116
+ 'desiredCount' => Integer,
117
+ 'pendingCount' => Integer,
118
+ 'runningCount' => Integer
119
+ }
120
+ }
121
+ })
122
+ DESCRIBE_SERVICES = BASIC.merge({
123
+ 'DescribeServicesResult' => {
124
+ 'failures' => [Fog::Nullable::Hash],
125
+ 'services' => [{
126
+ 'events' => [Fog::Nullable::Hash],
127
+ 'serviceName' => String,
128
+ 'serviceArn' => String,
129
+ 'taskDefinition' => String,
130
+ 'clusterArn' => String,
131
+ 'status' => String,
132
+ 'roleArn' => Fog::Nullable::String,
133
+ 'loadBalancers' => [Fog::Nullable::Hash],
134
+ 'deployments' => [Fog::Nullable::Hash],
135
+ 'desiredCount' => Integer,
136
+ 'pendingCount' => Integer,
137
+ 'runningCount' => Integer
138
+ }]
139
+ }
140
+ })
141
+ LIST_SERVICES = BASIC.merge({
142
+ 'ListServicesResult' => {
143
+ 'serviceArns' => [Fog::Nullable::String],
144
+ 'nextToken' => Fog::Nullable::String
145
+ }
146
+ })
147
+ UPDATE_SERVICE = BASIC.merge({
148
+ 'UpdateServiceResult' => {
149
+ 'service' => {
150
+ 'events' => [Fog::Nullable::Hash],
151
+ 'serviceName' => String,
152
+ 'serviceArn' => String,
153
+ 'taskDefinition' => String,
154
+ 'clusterArn' => String,
155
+ 'status' => String,
156
+ 'roleArn' => Fog::Nullable::String,
157
+ 'loadBalancers' => [Fog::Nullable::Hash],
158
+ 'deployments' => [Fog::Nullable::Hash],
159
+ 'desiredCount' => Integer,
160
+ 'pendingCount' => Integer,
161
+ 'runningCount' => Integer
162
+ }
163
+ }
164
+ })
165
+ LIST_CONTAINER_INSTANCES = BASIC.merge({
166
+ 'ListContainerInstancesResult' => {
167
+ 'containerInstanceArns' => [Fog::Nullable::String]
168
+ }
169
+ })
170
+ DESCRIBE_CONTAINER_INSTANCES = BASIC.merge({
171
+ 'DescribeContainerInstancesResult' => {
172
+ 'containerInstances' => [{
173
+ 'remainingResources' => [Hash],
174
+ 'agentConnected' => Fog::Boolean,
175
+ 'runningTasksCount' => Integer,
176
+ 'status' => String,
177
+ 'registeredResources' => [Hash],
178
+ 'containerInstanceArn' => String,
179
+ 'pendingTasksCount' => Integer,
180
+ 'ec2InstanceId' => String
181
+ }],
182
+ 'failures' => [Fog::Nullable::Hash],
183
+ }
184
+ })
185
+ DEREGISTER_CONTAINER_INSTANCE = BASIC.merge({
186
+ 'DeregisterContainerInstanceResult' => {
187
+ 'containerInstance' => {
188
+ 'remainingResources' => [Hash],
189
+ 'agentConnected' => Fog::Boolean,
190
+ 'runningTasksCount' => Integer,
191
+ 'status' => String,
192
+ 'registeredResources' => [Hash],
193
+ 'containerInstanceArn' => String,
194
+ 'pendingTasksCount' => Integer,
195
+ 'ec2InstanceId' => String
196
+ }
197
+ }
198
+ })
199
+ LIST_TASKS = BASIC.merge({
200
+ 'ListTasksResult' => {
201
+ 'taskArns' => [Fog::Nullable::String]
202
+ }
203
+ })
204
+ DESCRIBE_TASKS = BASIC.merge({
205
+ 'DescribeTasksResult' => {
206
+ 'failures' => [Fog::Nullable::Hash],
207
+ 'tasks' => [
208
+ {
209
+ 'clusterArn' => String,
210
+ 'containers' => Array,
211
+ 'overrides' => Fog::Nullable::Hash,
212
+ 'startedBy' => Fog::Nullable::String,
213
+ 'desiredStatus' => String,
214
+ 'taskArn' => String,
215
+ 'containerInstanceArn' => String,
216
+ 'lastStatus' => String,
217
+ 'taskDefinitionArn' => String
218
+ }
219
+ ]
220
+ }
221
+ })
222
+ RUN_TASK = BASIC.merge({
223
+ 'RunTaskResult' => {
224
+ 'failures' => [Fog::Nullable::Hash],
225
+ 'tasks' => [
226
+ {
227
+ 'clusterArn' => String,
228
+ 'containers' => [Hash],
229
+ 'overrides' => Fog::Nullable::Hash,
230
+ 'desiredStatus' => String,
231
+ 'taskArn' => String,
232
+ 'containerInstanceArn' => String,
233
+ 'lastStatus' => String,
234
+ 'taskDefinitionArn' => String
235
+ }
236
+ ]
237
+ }
238
+ })
239
+ STOP_TASK = BASIC.merge({
240
+ 'StopTaskResult' => {
241
+ 'task' => {
242
+ 'clusterArn' => String,
243
+ 'containers' => [Hash],
244
+ 'overrides' => Fog::Nullable::Hash,
245
+ 'desiredStatus' => String,
246
+ 'taskArn' => String,
247
+ 'startedBy' => Fog::Nullable::String,
248
+ 'containerInstanceArn' => String,
249
+ 'lastStatus' => String,
250
+ 'taskDefinitionArn' => String
251
+ }
252
+ }
253
+ })
254
+ START_TASK = BASIC.merge({
255
+ 'StartTaskResult' => {
256
+ 'failures' => [Fog::Nullable::Hash],
257
+ 'tasks' => [
258
+ {
259
+ 'clusterArn' => String,
260
+ 'containers' => [Hash],
261
+ 'overrides' => Fog::Nullable::Hash,
262
+ 'desiredStatus' => String,
263
+ 'taskArn' => String,
264
+ 'containerInstanceArn' => String,
265
+ 'lastStatus' => String,
266
+ 'taskDefinitionArn' => String
267
+ }
268
+ ]
269
+ }
270
+ })
271
+ end
272
+ module Samples
273
+ TASK_DEFINITION_1 = File.dirname(__FILE__) + '/sample_task_definition1.json'
274
+ end
275
+ end
276
+ end