aws-sdk-core 2.8.14 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ {
2
+ "version": "1.0",
3
+ "examples": {
4
+ }
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "pagination": {
3
+ }
4
+ }
@@ -611,6 +611,19 @@
611
611
  {"shape":"InternalServerError"}
612
612
  ]
613
613
  },
614
+ "RefreshCache":{
615
+ "name":"RefreshCache",
616
+ "http":{
617
+ "method":"POST",
618
+ "requestUri":"/"
619
+ },
620
+ "input":{"shape":"RefreshCacheInput"},
621
+ "output":{"shape":"RefreshCacheOutput"},
622
+ "errors":[
623
+ {"shape":"InvalidGatewayRequestException"},
624
+ {"shape":"InternalServerError"}
625
+ ]
626
+ },
614
627
  "RemoveTagsFromResource":{
615
628
  "name":"RemoveTagsFromResource",
616
629
  "http":{
@@ -1037,7 +1050,9 @@
1037
1050
  "Role":{"shape":"Role"},
1038
1051
  "LocationARN":{"shape":"LocationARN"},
1039
1052
  "DefaultStorageClass":{"shape":"StorageClass"},
1040
- "ClientList":{"shape":"FileShareClientList"}
1053
+ "ClientList":{"shape":"FileShareClientList"},
1054
+ "Squash":{"shape":"Squash"},
1055
+ "ReadOnly":{"shape":"Boolean"}
1041
1056
  }
1042
1057
  },
1043
1058
  "CreateNFSFileShareOutput":{
@@ -1956,7 +1971,9 @@
1956
1971
  "Role":{"shape":"Role"},
1957
1972
  "LocationARN":{"shape":"LocationARN"},
1958
1973
  "DefaultStorageClass":{"shape":"StorageClass"},
1959
- "ClientList":{"shape":"FileShareClientList"}
1974
+ "ClientList":{"shape":"FileShareClientList"},
1975
+ "Squash":{"shape":"Squash"},
1976
+ "ReadOnly":{"shape":"Boolean"}
1960
1977
  }
1961
1978
  },
1962
1979
  "NFSFileShareInfoList":{
@@ -2006,6 +2023,19 @@
2006
2023
  "max":24,
2007
2024
  "min":1
2008
2025
  },
2026
+ "RefreshCacheInput":{
2027
+ "type":"structure",
2028
+ "required":["FileShareARN"],
2029
+ "members":{
2030
+ "FileShareARN":{"shape":"FileShareARN"}
2031
+ }
2032
+ },
2033
+ "RefreshCacheOutput":{
2034
+ "type":"structure",
2035
+ "members":{
2036
+ "FileShareARN":{"shape":"FileShareARN"}
2037
+ }
2038
+ },
2009
2039
  "RegionId":{
2010
2040
  "type":"string",
2011
2041
  "max":25,
@@ -2132,6 +2162,11 @@
2132
2162
  "type":"string",
2133
2163
  "pattern":"\\Asnap-([0-9A-Fa-f]{8}|[0-9A-Fa-f]{17})\\z"
2134
2164
  },
2165
+ "Squash":{
2166
+ "type":"string",
2167
+ "max":15,
2168
+ "min":5
2169
+ },
2135
2170
  "StartGatewayInput":{
2136
2171
  "type":"structure",
2137
2172
  "required":["GatewayARN"],
@@ -2403,7 +2438,9 @@
2403
2438
  "KMSKey":{"shape":"KMSKey"},
2404
2439
  "NFSFileShareDefaults":{"shape":"NFSFileShareDefaults"},
2405
2440
  "DefaultStorageClass":{"shape":"StorageClass"},
2406
- "ClientList":{"shape":"FileShareClientList"}
2441
+ "ClientList":{"shape":"FileShareClientList"},
2442
+ "Squash":{"shape":"Squash"},
2443
+ "ReadOnly":{"shape":"Boolean"}
2407
2444
  }
2408
2445
  },
2409
2446
  "UpdateNFSFileShareOutput":{
data/endpoints.json CHANGED
@@ -81,6 +81,7 @@
81
81
  "endpoints": {
82
82
  "ap-northeast-1": {},
83
83
  "ap-northeast-2": {},
84
+ "ap-south-1": {},
84
85
  "ap-southeast-1": {},
85
86
  "ap-southeast-2": {},
86
87
  "eu-central-1": {},
@@ -857,6 +858,7 @@
857
858
  "endpoints": {
858
859
  "ap-northeast-1": {},
859
860
  "ap-northeast-2": {},
861
+ "ap-south-1": {},
860
862
  "ap-southeast-1": {},
861
863
  "ap-southeast-2": {},
862
864
  "eu-central-1": {},
@@ -1530,6 +1532,11 @@
1530
1532
  "cn-north-1": {}
1531
1533
  }
1532
1534
  },
1535
+ "codedeploy": {
1536
+ "endpoints": {
1537
+ "cn-north-1": {}
1538
+ }
1539
+ },
1533
1540
  "config": {
1534
1541
  "endpoints": {
1535
1542
  "cn-north-1": {}
data/lib/aws-sdk-core.rb CHANGED
@@ -25,13 +25,12 @@ module Aws
25
25
  SERVICE_MODULE_NAMES = %w(
26
26
  ACM
27
27
  APIGateway
28
+ AppStream
28
29
  ApplicationAutoScaling
29
30
  ApplicationDiscoveryService
30
- AppStream
31
31
  AutoScaling
32
32
  Batch
33
33
  Budgets
34
- CodeBuild
35
34
  CloudDirectory
36
35
  CloudFormation
37
36
  CloudFront
@@ -42,6 +41,7 @@ module Aws
42
41
  CloudWatch
43
42
  CloudWatchEvents
44
43
  CloudWatchLogs
44
+ CodeBuild
45
45
  CodeCommit
46
46
  CodeDeploy
47
47
  CodePipeline
@@ -50,8 +50,8 @@ module Aws
50
50
  CognitoSync
51
51
  ConfigService
52
52
  CostandUsageReportService
53
- DatabaseMigrationService
54
53
  DataPipeline
54
+ DatabaseMigrationService
55
55
  DeviceFarm
56
56
  DirectConnect
57
57
  DirectoryService
@@ -61,13 +61,13 @@ module Aws
61
61
  ECR
62
62
  ECS
63
63
  EFS
64
+ EMR
64
65
  ElastiCache
65
66
  ElasticBeanstalk
66
67
  ElasticLoadBalancing
67
68
  ElasticLoadBalancingV2
68
- ElasticsearchService
69
69
  ElasticTranscoder
70
- EMR
70
+ ElasticsearchService
71
71
  Firehose
72
72
  GameLift
73
73
  Glacier
@@ -77,42 +77,43 @@ module Aws
77
77
  Inspector
78
78
  IoT
79
79
  IoTDataPlane
80
+ KMS
80
81
  Kinesis
81
82
  KinesisAnalytics
82
- KMS
83
83
  Lambda
84
84
  LambdaPreview
85
85
  Lex
86
86
  Lightsail
87
+ MTurk
87
88
  MachineLearning
88
89
  MarketplaceCommerceAnalytics
89
90
  MarketplaceMetering
90
- MTurk
91
91
  OpsWorks
92
92
  OpsWorksCM
93
93
  Organizations
94
94
  Pinpoint
95
95
  Polly
96
96
  RDS
97
- Rekognition
98
97
  Redshift
98
+ Rekognition
99
+ ResourceGroupsTaggingAPI
99
100
  Route53
100
101
  Route53Domains
101
102
  S3
102
- ServiceCatalog
103
103
  SES
104
- Shield
105
- SimpleDB
106
104
  SMS
107
105
  SNS
108
- Snowball
109
106
  SQS
110
107
  SSM
108
+ STS
109
+ SWF
110
+ ServiceCatalog
111
+ Shield
112
+ SimpleDB
113
+ Snowball
111
114
  States
112
115
  StorageGateway
113
- STS
114
116
  Support
115
- SWF
116
117
  WAF
117
118
  WAFRegional
118
119
  WorkDocs
@@ -199,6 +200,7 @@ module Aws
199
200
  autoload :GlobalConfiguration, 'aws-sdk-core/plugins/global_configuration'
200
201
  autoload :HelpfulSocketErrors, 'aws-sdk-core/plugins/helpful_socket_errors'
201
202
  autoload :IdempotencyToken, 'aws-sdk-core/plugins/idempotency_token'
203
+ autoload :JsonvalueConverter, 'aws-sdk-core/plugins/jsonvalue_converter'
202
204
  autoload :Logging, 'aws-sdk-core/plugins/logging'
203
205
  autoload :MachineLearningPredictEndpoint, 'aws-sdk-core/plugins/machine_learning_predict_endpoint'
204
206
  autoload :ParamConverter, 'aws-sdk-core/plugins/param_converter'
@@ -46,11 +46,11 @@ module Aws
46
46
  req = ref.required ? 'required,' : ''
47
47
  type = input_type(ref)
48
48
  docstring = "@option #{@optname} [#{req}#{type}] :#{name}\n"
49
+ docstring << "\n\n This parameter will be auto-filled on your behalf"\
50
+ " with a random UUIDv4 when no value is provided.\n" if ref['idempotencyToken']
51
+ docstring << "\n\n SDK automatically handles json encoding and base64 encoding"\
52
+ " for you when the required value (Hash, Array, etc.) is provided according to the description.\n" if ref['jsonvalue']
49
53
  docstring += ref.documentation.to_s.lines.map { |line| " #{line}" }.join
50
- if ref['idempotencyToken']
51
- docstring << "\n\n This parameter will be auto-filled on your behalf"\
52
- " with a random UUIDv4 when no value is provided.\n"
53
- end
54
54
  tag(docstring)
55
55
  end
56
56
  end
@@ -17,6 +17,7 @@ module Aws
17
17
  'Aws::Plugins::ResponsePaging',
18
18
  'Aws::Plugins::StubResponses',
19
19
  'Aws::Plugins::IdempotencyToken',
20
+ 'Aws::Plugins::JsonvalueConverter'
20
21
  ]
21
22
 
22
23
  # @api private
@@ -1,9 +1,9 @@
1
1
  Aws.add_service(:CloudFront, {
2
- api: "#{Aws::API_DIR}/cloudfront/2016-11-25/api-2.json",
3
- docs: "#{Aws::API_DIR}/cloudfront/2016-11-25/docs-2.json",
4
- examples: "#{Aws::API_DIR}/cloudfront/2016-11-25/examples-1.json",
5
- paginators: "#{Aws::API_DIR}/cloudfront/2016-11-25/paginators-1.json",
6
- waiters: "#{Aws::API_DIR}/cloudfront/2016-11-25/waiters-2.json",
2
+ api: "#{Aws::API_DIR}/cloudfront/2017-03-25/api-2.json",
3
+ docs: "#{Aws::API_DIR}/cloudfront/2017-03-25/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/cloudfront/2017-03-25/examples-1.json",
5
+ paginators: "#{Aws::API_DIR}/cloudfront/2017-03-25/paginators-1.json",
6
+ waiters: "#{Aws::API_DIR}/cloudfront/2017-03-25/waiters-2.json",
7
7
  })
8
8
 
9
9
  module Aws
@@ -0,0 +1,29 @@
1
+ module Aws
2
+ module Plugins
3
+
4
+ # Converts input value to JSON Syntax for members with jsonvalue trait
5
+ class JsonvalueConverter < Seahorse::Client::Plugin
6
+
7
+ # @api private
8
+ class Handler < Seahorse::Client::Handler
9
+
10
+ def call(context)
11
+ context.operation.input.shape.members.each do |m, ref|
12
+ if ref['jsonvalue']
13
+ param_value = context.params[m]
14
+ unless param_value.respond_to?(:to_json)
15
+ raise ArgumentError, "The value of params[#{m}] is not JSON serializable."
16
+ end
17
+ context.params[m] = param_value.to_json
18
+ end
19
+ end
20
+ @handler.call(context)
21
+ end
22
+
23
+ end
24
+
25
+ handler(Handler, step: :initialize)
26
+ end
27
+
28
+ end
29
+ end
@@ -94,7 +94,7 @@ module Aws
94
94
  require_credentials(context)
95
95
  if signer = SIGNERS[context.config.signature_version]
96
96
  require_credentials(context)
97
- signer.sign(context)
97
+ signer.sign(apply_authtype(context))
98
98
  end
99
99
  end
100
100
 
@@ -122,6 +122,14 @@ module Aws
122
122
  end
123
123
  end
124
124
 
125
+ def apply_authtype(context)
126
+ if context.operation['authtype'].eql?('v4-unsigned-body') &&
127
+ context.http_request.endpoint.scheme.eql?('https')
128
+ context.http_request.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'
129
+ end
130
+ context
131
+ end
132
+
125
133
  end
126
134
 
127
135
  def add_handlers(handlers, config)
@@ -0,0 +1,6 @@
1
+ Aws.add_service(:ResourceGroupsTaggingAPI, {
2
+ api: "#{Aws::API_DIR}/resourcegroupstaggingapi/2017-01-26/api-2.json",
3
+ docs: "#{Aws::API_DIR}/resourcegroupstaggingapi/2017-01-26/docs-2.json",
4
+ examples: "#{Aws::API_DIR}/resourcegroupstaggingapi/2017-01-26/examples-1.json",
5
+ paginators: "#{Aws::API_DIR}/resourcegroupstaggingapi/2017-01-26/paginators-1.json",
6
+ })
@@ -1,4 +1,5 @@
1
1
  require 'time'
2
+ require 'base64'
2
3
 
3
4
  module Aws
4
5
  module Rest
@@ -28,6 +29,7 @@ module Aws
28
29
  private
29
30
 
30
31
  def apply_header_value(headers, ref, value)
32
+ value = apply_json_trait(value) if ref['jsonvalue']
31
33
  headers[ref.location_name] =
32
34
  case ref.shape
33
35
  when TimestampShape then value.utc.httpdate
@@ -42,6 +44,13 @@ module Aws
42
44
  end
43
45
  end
44
46
 
47
+ # With complex headers value in json syntax,
48
+ # base64 encodes value to aviod weird characters
49
+ # causing potential issues in headers
50
+ def apply_json_trait(value)
51
+ Base64.strict_encode64(value)
52
+ end
53
+
45
54
  end
46
55
  end
47
56
  end
@@ -1,4 +1,6 @@
1
1
  require 'time'
2
+ require 'base64'
3
+ require 'json'
2
4
 
3
5
  module Aws
4
6
  module Rest
@@ -31,6 +33,7 @@ module Aws
31
33
  end
32
34
 
33
35
  def cast_value(ref, value)
36
+ value = extract_json_trait(value) if ref['jsonvalue']
34
37
  case ref.shape
35
38
  when StringShape then value
36
39
  when IntegerShape then value.to_i
@@ -60,6 +63,10 @@ module Aws
60
63
  end
61
64
  end
62
65
 
66
+ def extract_json_trait(value)
67
+ JSON.parse(Base64.decode64(value))
68
+ end
69
+
63
70
  end
64
71
  end
65
72
  end
@@ -1,3 +1,3 @@
1
1
  module Aws
2
- VERSION = '2.8.14'
2
+ VERSION = '2.9.0'
3
3
  end
data/service-models.json CHANGED
@@ -7,6 +7,10 @@
7
7
  "models": "apigateway/2015-07-09",
8
8
  "endpoint": "apigateway"
9
9
  },
10
+ "AppStream": {
11
+ "models": "appstream/2016-12-01",
12
+ "endpoint": "appstream2"
13
+ },
10
14
  "ApplicationAutoScaling": {
11
15
  "models": "application-autoscaling/2016-02-06",
12
16
  "endpoint": "application-autoscaling"
@@ -15,10 +19,6 @@
15
19
  "models": "discovery/2015-11-01",
16
20
  "endpoint": "discovery"
17
21
  },
18
- "AppStream": {
19
- "models": "appstream/2016-12-01",
20
- "endpoint": "appstream2"
21
- },
22
22
  "AutoScaling": {
23
23
  "models": "autoscaling/2011-01-01",
24
24
  "endpoint": "autoscaling"
@@ -31,10 +31,6 @@
31
31
  "models": "budgets/2016-10-20",
32
32
  "endpoint": "budgets"
33
33
  },
34
- "CodeBuild": {
35
- "models": "codebuild/2016-10-06",
36
- "endpoint": "codebuild"
37
- },
38
34
  "CloudDirectory": {
39
35
  "models": "clouddirectory/2016-05-10",
40
36
  "endpoint": "clouddirectory"
@@ -44,7 +40,7 @@
44
40
  "endpoint": "cloudformation"
45
41
  },
46
42
  "CloudFront": {
47
- "models": "cloudfront/2016-11-25",
43
+ "models": "cloudfront/2017-03-25",
48
44
  "endpoint": "cloudfront"
49
45
  },
50
46
  "CloudHSM": {
@@ -74,6 +70,10 @@
74
70
  "models": "logs/2014-03-28",
75
71
  "endpoint": "logs"
76
72
  },
73
+ "CodeBuild": {
74
+ "models": "codebuild/2016-10-06",
75
+ "endpoint": "codebuild"
76
+ },
77
77
  "CodeCommit": {
78
78
  "models": "codecommit/2015-04-13",
79
79
  "endpoint": "codecommit"
@@ -106,14 +106,14 @@
106
106
  "models": "cur/2017-01-06",
107
107
  "endpoint": "cur"
108
108
  },
109
- "DatabaseMigrationService": {
110
- "models": "dms/2016-01-01",
111
- "endpoint": "dms"
112
- },
113
109
  "DataPipeline": {
114
110
  "models": "datapipeline/2012-10-29",
115
111
  "endpoint": "datapipeline"
116
112
  },
113
+ "DatabaseMigrationService": {
114
+ "models": "dms/2016-01-01",
115
+ "endpoint": "dms"
116
+ },
117
117
  "DeviceFarm": {
118
118
  "models": "devicefarm/2015-06-23",
119
119
  "endpoint": "devicefarm"
@@ -150,6 +150,10 @@
150
150
  "models": "elasticfilesystem/2015-02-01",
151
151
  "endpoint": "elasticfilesystem"
152
152
  },
153
+ "EMR": {
154
+ "models": "elasticmapreduce/2009-03-31",
155
+ "endpoint": "elasticmapreduce"
156
+ },
153
157
  "ElastiCache": {
154
158
  "models": "elasticache/2015-02-02",
155
159
  "endpoint": "elasticache"
@@ -166,17 +170,13 @@
166
170
  "models": "elasticloadbalancingv2/2015-12-01",
167
171
  "endpoint": "elasticloadbalancing"
168
172
  },
169
- "ElasticsearchService": {
170
- "models": "es/2015-01-01",
171
- "endpoint": "es"
172
- },
173
173
  "ElasticTranscoder": {
174
174
  "models": "elastictranscoder/2012-09-25",
175
175
  "endpoint": "elastictranscoder"
176
176
  },
177
- "EMR": {
178
- "models": "elasticmapreduce/2009-03-31",
179
- "endpoint": "elasticmapreduce"
177
+ "ElasticsearchService": {
178
+ "models": "es/2015-01-01",
179
+ "endpoint": "es"
180
180
  },
181
181
  "Firehose": {
182
182
  "models": "firehose/2015-08-04",
@@ -214,6 +214,10 @@
214
214
  "models": "iot-data/2015-05-28",
215
215
  "endpoint": "data.iot"
216
216
  },
217
+ "KMS": {
218
+ "models": "kms/2014-11-01",
219
+ "endpoint": "kms"
220
+ },
217
221
  "Kinesis": {
218
222
  "models": "kinesis/2013-12-02",
219
223
  "endpoint": "kinesis"
@@ -222,10 +226,6 @@
222
226
  "models": "kinesisanalytics/2015-08-14",
223
227
  "endpoint": "kinesisanalytics"
224
228
  },
225
- "KMS": {
226
- "models": "kms/2014-11-01",
227
- "endpoint": "kms"
228
- },
229
229
  "Lambda": {
230
230
  "models": "lambda/2015-03-31",
231
231
  "endpoint": "lambda"
@@ -242,6 +242,10 @@
242
242
  "models": "lightsail/2016-11-28",
243
243
  "endpoint": "lightsail"
244
244
  },
245
+ "MTurk": {
246
+ "models": "mturk-requester/2017-01-17",
247
+ "endpoint": "mturk-requester"
248
+ },
245
249
  "MachineLearning": {
246
250
  "models": "machinelearning/2014-12-12",
247
251
  "endpoint": "machinelearning"
@@ -254,10 +258,6 @@
254
258
  "models": "meteringmarketplace/2016-01-14",
255
259
  "endpoint": "metering.marketplace"
256
260
  },
257
- "MTurk": {
258
- "models": "mturk-requester/2017-01-17",
259
- "endpoint": "mturk-requester"
260
- },
261
261
  "OpsWorks": {
262
262
  "models": "opsworks/2013-02-18",
263
263
  "endpoint": "opsworks"
@@ -282,13 +282,17 @@
282
282
  "models": "rds/2014-10-31",
283
283
  "endpoint": "rds"
284
284
  },
285
+ "Redshift": {
286
+ "models": "redshift/2012-12-01",
287
+ "endpoint": "redshift"
288
+ },
285
289
  "Rekognition": {
286
290
  "models": "rekognition/2016-06-27",
287
291
  "endpoint": "rekognition"
288
292
  },
289
- "Redshift": {
290
- "models": "redshift/2012-12-01",
291
- "endpoint": "redshift"
293
+ "ResourceGroupsTaggingAPI": {
294
+ "models": "resourcegroupstaggingapi/2017-01-26",
295
+ "endpoint": "tagging"
292
296
  },
293
297
  "Route53": {
294
298
  "models": "route53/2013-04-01",
@@ -302,22 +306,10 @@
302
306
  "models": "s3/2006-03-01",
303
307
  "endpoint": "s3"
304
308
  },
305
- "ServiceCatalog": {
306
- "models": "servicecatalog/2015-12-10",
307
- "endpoint": "servicecatalog"
308
- },
309
309
  "SES": {
310
310
  "models": "email/2010-12-01",
311
311
  "endpoint": "email"
312
312
  },
313
- "Shield": {
314
- "models": "shield/2016-06-02",
315
- "endpoint": "shield"
316
- },
317
- "SimpleDB": {
318
- "models": "sdb/2009-04-15",
319
- "endpoint": "sdb"
320
- },
321
313
  "SMS": {
322
314
  "models": "sms/2016-10-24",
323
315
  "endpoint": "sms"
@@ -326,10 +318,6 @@
326
318
  "models": "sns/2010-03-31",
327
319
  "endpoint": "sns"
328
320
  },
329
- "Snowball": {
330
- "models": "snowball/2016-06-30",
331
- "endpoint": "snowball"
332
- },
333
321
  "SQS": {
334
322
  "models": "sqs/2012-11-05",
335
323
  "endpoint": "sqs"
@@ -338,6 +326,30 @@
338
326
  "models": "ssm/2014-11-06",
339
327
  "endpoint": "ssm"
340
328
  },
329
+ "STS": {
330
+ "models": "sts/2011-06-15",
331
+ "endpoint": "sts"
332
+ },
333
+ "SWF": {
334
+ "models": "swf/2012-01-25",
335
+ "endpoint": "swf"
336
+ },
337
+ "ServiceCatalog": {
338
+ "models": "servicecatalog/2015-12-10",
339
+ "endpoint": "servicecatalog"
340
+ },
341
+ "Shield": {
342
+ "models": "shield/2016-06-02",
343
+ "endpoint": "shield"
344
+ },
345
+ "SimpleDB": {
346
+ "models": "sdb/2009-04-15",
347
+ "endpoint": "sdb"
348
+ },
349
+ "Snowball": {
350
+ "models": "snowball/2016-06-30",
351
+ "endpoint": "snowball"
352
+ },
341
353
  "States": {
342
354
  "models": "states/2016-11-23",
343
355
  "endpoint": "states"
@@ -346,18 +358,10 @@
346
358
  "models": "storagegateway/2013-06-30",
347
359
  "endpoint": "storagegateway"
348
360
  },
349
- "STS": {
350
- "models": "sts/2011-06-15",
351
- "endpoint": "sts"
352
- },
353
361
  "Support": {
354
362
  "models": "support/2013-04-15",
355
363
  "endpoint": "support"
356
364
  },
357
- "SWF": {
358
- "models": "swf/2012-01-25",
359
- "endpoint": "swf"
360
- },
361
365
  "WAF": {
362
366
  "models": "waf/2015-08-24",
363
367
  "endpoint": "waf"
@@ -378,4 +382,4 @@
378
382
  "models": "xray/2016-04-12",
379
383
  "endpoint": "xray"
380
384
  }
381
- }
385
+ }