aws-sdk-ssmincidents 1.19.0 → 1.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6b2ee80c3185adba475faa323cdcb7aad23956b8e8bed5c0df3618fc028c0c2
4
- data.tar.gz: f6a3606e949f6714d562b103cb01827cae2a8bda0ded4a4cdc05d4818317cf3d
3
+ metadata.gz: 1172a9defe1aa5af2063fc48e262108b8a605966e943e84a085917016215daf1
4
+ data.tar.gz: 6d15ee176e28ea246276f8f3f381877d4e6445e4ad17123338ddacc54f60b1fb
5
5
  SHA512:
6
- metadata.gz: 4b68cd0b5b91f49994327420859795ba8210ea29e8d5f0a00fbfa5bd35d70b310a69758c181b4d1258b9ab729eba46aaa698bcda3d8c065d39474755459beebd
7
- data.tar.gz: 9ce6c014fb9b1f9370d6991cfe00dd21b9b46840974f5ffa71cd4ab2b6e3c2e852621fc231ab09dcac009dd436bd5fef09d68f5440e762bc94381fe3b30988f2
6
+ metadata.gz: 26dfb11b1d240cb6e2773272687561a4fb9395dee076a7bee880e6388891d2251beb9523b2490ad70399e00fcddba968a55d7cd33c6e7f8ed5f35db5d953b5c4
7
+ data.tar.gz: e726935e0c9ac6fcda23894b3c9644a2d21006c88686a9d09685a9ce462402a9d5a94b554d4dcdb246c359dfd3ffa1faf71974dc75a41ca8998daecdc4789aff
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.21.0 (2023-01-18)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
10
+
11
+ 1.20.0 (2022-11-16)
12
+ ------------------
13
+
14
+ * Feature - Add support for PagerDuty integrations on ResponsePlan, IncidentRecord, and RelatedItem APIs
15
+
4
16
  1.19.0 (2022-11-11)
5
17
  ------------------
6
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.19.0
1
+ 1.21.0
@@ -445,6 +445,10 @@ module Aws::SSMIncidents
445
445
  # @option params [required, Types::IncidentTemplate] :incident_template
446
446
  # Details used to create an incident when using this response plan.
447
447
  #
448
+ # @option params [Array<Types::Integration>] :integrations
449
+ # Information about third-party services integrated into the response
450
+ # plan.
451
+ #
448
452
  # @option params [required, String] :name
449
453
  # The short format name of the response plan. Can't include spaces.
450
454
  #
@@ -498,6 +502,17 @@ module Aws::SSMIncidents
498
502
  # summary: "IncidentSummary",
499
503
  # title: "IncidentTitle", # required
500
504
  # },
505
+ # integrations: [
506
+ # {
507
+ # pager_duty_configuration: {
508
+ # name: "PagerDutyConfigurationNameString", # required
509
+ # pager_duty_incident_configuration: { # required
510
+ # service_id: "PagerDutyIncidentConfigurationServiceIdString", # required
511
+ # },
512
+ # secret_id: "PagerDutyConfigurationSecretIdString", # required
513
+ # },
514
+ # },
515
+ # ],
501
516
  # name: "ResponsePlanName", # required
502
517
  # tags: {
503
518
  # "TagKey" => "TagValue",
@@ -868,6 +883,7 @@ module Aws::SSMIncidents
868
883
  # * {Types::GetResponsePlanOutput#display_name #display_name} => String
869
884
  # * {Types::GetResponsePlanOutput#engagements #engagements} => Array&lt;String&gt;
870
885
  # * {Types::GetResponsePlanOutput#incident_template #incident_template} => Types::IncidentTemplate
886
+ # * {Types::GetResponsePlanOutput#integrations #integrations} => Array&lt;Types::Integration&gt;
871
887
  # * {Types::GetResponsePlanOutput#name #name} => String
872
888
  #
873
889
  # @example Request syntax with placeholder values
@@ -902,6 +918,10 @@ module Aws::SSMIncidents
902
918
  # resp.incident_template.notification_targets[0].sns_topic_arn #=> String
903
919
  # resp.incident_template.summary #=> String
904
920
  # resp.incident_template.title #=> String
921
+ # resp.integrations #=> Array
922
+ # resp.integrations[0].pager_duty_configuration.name #=> String
923
+ # resp.integrations[0].pager_duty_configuration.pager_duty_incident_configuration.service_id #=> String
924
+ # resp.integrations[0].pager_duty_configuration.secret_id #=> String
905
925
  # resp.name #=> String
906
926
  #
907
927
  # @see http://docs.aws.amazon.com/goto/WebAPI/ssm-incidents-2018-05-10/GetResponsePlan AWS API Documentation
@@ -1074,6 +1094,9 @@ module Aws::SSMIncidents
1074
1094
  # resp.related_items[0].identifier.type #=> String, one of "ANALYSIS", "INCIDENT", "METRIC", "PARENT", "ATTACHMENT", "OTHER", "AUTOMATION", "INVOLVED_RESOURCE", "TASK"
1075
1095
  # resp.related_items[0].identifier.value.arn #=> String
1076
1096
  # resp.related_items[0].identifier.value.metric_definition #=> String
1097
+ # resp.related_items[0].identifier.value.pager_duty_incident_detail.auto_resolve #=> Boolean
1098
+ # resp.related_items[0].identifier.value.pager_duty_incident_detail.id #=> String
1099
+ # resp.related_items[0].identifier.value.pager_duty_incident_detail.secret_id #=> String
1077
1100
  # resp.related_items[0].identifier.value.url #=> String
1078
1101
  # resp.related_items[0].title #=> String
1079
1102
  #
@@ -1386,6 +1409,11 @@ module Aws::SSMIncidents
1386
1409
  # value: { # required
1387
1410
  # arn: "Arn",
1388
1411
  # metric_definition: "MetricDefinition",
1412
+ # pager_duty_incident_detail: {
1413
+ # auto_resolve: false,
1414
+ # id: "PagerDutyIncidentDetailIdString", # required
1415
+ # secret_id: "PagerDutyIncidentDetailSecretIdString",
1416
+ # },
1389
1417
  # url: "Url",
1390
1418
  # },
1391
1419
  # },
@@ -1630,6 +1658,11 @@ module Aws::SSMIncidents
1630
1658
  # value: { # required
1631
1659
  # arn: "Arn",
1632
1660
  # metric_definition: "MetricDefinition",
1661
+ # pager_duty_incident_detail: {
1662
+ # auto_resolve: false,
1663
+ # id: "PagerDutyIncidentDetailIdString", # required
1664
+ # secret_id: "PagerDutyIncidentDetailSecretIdString",
1665
+ # },
1633
1666
  # url: "Url",
1634
1667
  # },
1635
1668
  # },
@@ -1640,6 +1673,11 @@ module Aws::SSMIncidents
1640
1673
  # value: { # required
1641
1674
  # arn: "Arn",
1642
1675
  # metric_definition: "MetricDefinition",
1676
+ # pager_duty_incident_detail: {
1677
+ # auto_resolve: false,
1678
+ # id: "PagerDutyIncidentDetailIdString", # required
1679
+ # secret_id: "PagerDutyIncidentDetailSecretIdString",
1680
+ # },
1643
1681
  # url: "Url",
1644
1682
  # },
1645
1683
  # },
@@ -1768,6 +1806,10 @@ module Aws::SSMIncidents
1768
1806
  # The short format name of the incident. The title can't contain
1769
1807
  # spaces.
1770
1808
  #
1809
+ # @option params [Array<Types::Integration>] :integrations
1810
+ # Information about third-party services integrated into the response
1811
+ # plan.
1812
+ #
1771
1813
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1772
1814
  #
1773
1815
  # @example Request syntax with placeholder values
@@ -1812,6 +1854,17 @@ module Aws::SSMIncidents
1812
1854
  # "TagKey" => "TagValue",
1813
1855
  # },
1814
1856
  # incident_template_title: "IncidentTitle",
1857
+ # integrations: [
1858
+ # {
1859
+ # pager_duty_configuration: {
1860
+ # name: "PagerDutyConfigurationNameString", # required
1861
+ # pager_duty_incident_configuration: { # required
1862
+ # service_id: "PagerDutyIncidentConfigurationServiceIdString", # required
1863
+ # },
1864
+ # secret_id: "PagerDutyConfigurationSecretIdString", # required
1865
+ # },
1866
+ # },
1867
+ # ],
1815
1868
  # })
1816
1869
  #
1817
1870
  # @see http://docs.aws.amazon.com/goto/WebAPI/ssm-incidents-2018-05-10/UpdateResponsePlan AWS API Documentation
@@ -1905,7 +1958,7 @@ module Aws::SSMIncidents
1905
1958
  params: params,
1906
1959
  config: config)
1907
1960
  context[:gem_name] = 'aws-sdk-ssmincidents'
1908
- context[:gem_version] = '1.19.0'
1961
+ context[:gem_version] = '1.21.0'
1909
1962
  Seahorse::Client::Request.new(handlers, context)
1910
1963
  end
1911
1964
 
@@ -82,6 +82,8 @@ module Aws::SSMIncidents
82
82
  IncidentTitle = Shapes::StringShape.new(name: 'IncidentTitle')
83
83
  Integer = Shapes::IntegerShape.new(name: 'Integer')
84
84
  IntegerList = Shapes::ListShape.new(name: 'IntegerList')
85
+ Integration = Shapes::UnionShape.new(name: 'Integration')
86
+ Integrations = Shapes::ListShape.new(name: 'Integrations')
85
87
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
86
88
  ItemIdentifier = Shapes::StructureShape.new(name: 'ItemIdentifier')
87
89
  ItemType = Shapes::StringShape.new(name: 'ItemType')
@@ -103,6 +105,14 @@ module Aws::SSMIncidents
103
105
  NextToken = Shapes::StringShape.new(name: 'NextToken')
104
106
  NotificationTargetItem = Shapes::UnionShape.new(name: 'NotificationTargetItem')
105
107
  NotificationTargetSet = Shapes::ListShape.new(name: 'NotificationTargetSet')
108
+ PagerDutyConfiguration = Shapes::StructureShape.new(name: 'PagerDutyConfiguration')
109
+ PagerDutyConfigurationNameString = Shapes::StringShape.new(name: 'PagerDutyConfigurationNameString')
110
+ PagerDutyConfigurationSecretIdString = Shapes::StringShape.new(name: 'PagerDutyConfigurationSecretIdString')
111
+ PagerDutyIncidentConfiguration = Shapes::StructureShape.new(name: 'PagerDutyIncidentConfiguration')
112
+ PagerDutyIncidentConfigurationServiceIdString = Shapes::StringShape.new(name: 'PagerDutyIncidentConfigurationServiceIdString')
113
+ PagerDutyIncidentDetail = Shapes::StructureShape.new(name: 'PagerDutyIncidentDetail')
114
+ PagerDutyIncidentDetailIdString = Shapes::StringShape.new(name: 'PagerDutyIncidentDetailIdString')
115
+ PagerDutyIncidentDetailSecretIdString = Shapes::StringShape.new(name: 'PagerDutyIncidentDetailSecretIdString')
106
116
  Policy = Shapes::StringShape.new(name: 'Policy')
107
117
  PolicyId = Shapes::StringShape.new(name: 'PolicyId')
108
118
  PutResourcePolicyInput = Shapes::StructureShape.new(name: 'PutResourcePolicyInput')
@@ -255,6 +265,7 @@ module Aws::SSMIncidents
255
265
  CreateResponsePlanInput.add_member(:display_name, Shapes::ShapeRef.new(shape: ResponsePlanDisplayName, location_name: "displayName"))
256
266
  CreateResponsePlanInput.add_member(:engagements, Shapes::ShapeRef.new(shape: EngagementSet, location_name: "engagements"))
257
267
  CreateResponsePlanInput.add_member(:incident_template, Shapes::ShapeRef.new(shape: IncidentTemplate, required: true, location_name: "incidentTemplate"))
268
+ CreateResponsePlanInput.add_member(:integrations, Shapes::ShapeRef.new(shape: Integrations, location_name: "integrations"))
258
269
  CreateResponsePlanInput.add_member(:name, Shapes::ShapeRef.new(shape: ResponsePlanName, required: true, location_name: "name"))
259
270
  CreateResponsePlanInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
260
271
  CreateResponsePlanInput.struct_class = Types::CreateResponsePlanInput
@@ -373,6 +384,7 @@ module Aws::SSMIncidents
373
384
  GetResponsePlanOutput.add_member(:display_name, Shapes::ShapeRef.new(shape: ResponsePlanDisplayName, location_name: "displayName"))
374
385
  GetResponsePlanOutput.add_member(:engagements, Shapes::ShapeRef.new(shape: EngagementSet, location_name: "engagements"))
375
386
  GetResponsePlanOutput.add_member(:incident_template, Shapes::ShapeRef.new(shape: IncidentTemplate, required: true, location_name: "incidentTemplate"))
387
+ GetResponsePlanOutput.add_member(:integrations, Shapes::ShapeRef.new(shape: Integrations, location_name: "integrations"))
376
388
  GetResponsePlanOutput.add_member(:name, Shapes::ShapeRef.new(shape: ResponsePlanName, required: true, location_name: "name"))
377
389
  GetResponsePlanOutput.struct_class = Types::GetResponsePlanOutput
378
390
 
@@ -426,6 +438,14 @@ module Aws::SSMIncidents
426
438
 
427
439
  IntegerList.member = Shapes::ShapeRef.new(shape: Integer)
428
440
 
441
+ Integration.add_member(:pager_duty_configuration, Shapes::ShapeRef.new(shape: PagerDutyConfiguration, location_name: "pagerDutyConfiguration"))
442
+ Integration.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
443
+ Integration.add_member_subclass(:pager_duty_configuration, Types::Integration::PagerDutyConfiguration)
444
+ Integration.add_member_subclass(:unknown, Types::Integration::Unknown)
445
+ Integration.struct_class = Types::Integration
446
+
447
+ Integrations.member = Shapes::ShapeRef.new(shape: Integration)
448
+
429
449
  InternalServerException.add_member(:message, Shapes::ShapeRef.new(shape: ExceptionMessage, required: true, location_name: "message"))
430
450
  InternalServerException.struct_class = Types::InternalServerException
431
451
 
@@ -435,10 +455,12 @@ module Aws::SSMIncidents
435
455
 
436
456
  ItemValue.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, location_name: "arn"))
437
457
  ItemValue.add_member(:metric_definition, Shapes::ShapeRef.new(shape: MetricDefinition, location_name: "metricDefinition"))
458
+ ItemValue.add_member(:pager_duty_incident_detail, Shapes::ShapeRef.new(shape: PagerDutyIncidentDetail, location_name: "pagerDutyIncidentDetail"))
438
459
  ItemValue.add_member(:url, Shapes::ShapeRef.new(shape: Url, location_name: "url"))
439
460
  ItemValue.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
440
461
  ItemValue.add_member_subclass(:arn, Types::ItemValue::Arn)
441
462
  ItemValue.add_member_subclass(:metric_definition, Types::ItemValue::MetricDefinition)
463
+ ItemValue.add_member_subclass(:pager_duty_incident_detail, Types::ItemValue::PagerDutyIncidentDetail)
442
464
  ItemValue.add_member_subclass(:url, Types::ItemValue::Url)
443
465
  ItemValue.add_member_subclass(:unknown, Types::ItemValue::Unknown)
444
466
  ItemValue.struct_class = Types::ItemValue
@@ -503,6 +525,19 @@ module Aws::SSMIncidents
503
525
 
504
526
  NotificationTargetSet.member = Shapes::ShapeRef.new(shape: NotificationTargetItem)
505
527
 
528
+ PagerDutyConfiguration.add_member(:name, Shapes::ShapeRef.new(shape: PagerDutyConfigurationNameString, required: true, location_name: "name"))
529
+ PagerDutyConfiguration.add_member(:pager_duty_incident_configuration, Shapes::ShapeRef.new(shape: PagerDutyIncidentConfiguration, required: true, location_name: "pagerDutyIncidentConfiguration"))
530
+ PagerDutyConfiguration.add_member(:secret_id, Shapes::ShapeRef.new(shape: PagerDutyConfigurationSecretIdString, required: true, location_name: "secretId"))
531
+ PagerDutyConfiguration.struct_class = Types::PagerDutyConfiguration
532
+
533
+ PagerDutyIncidentConfiguration.add_member(:service_id, Shapes::ShapeRef.new(shape: PagerDutyIncidentConfigurationServiceIdString, required: true, location_name: "serviceId"))
534
+ PagerDutyIncidentConfiguration.struct_class = Types::PagerDutyIncidentConfiguration
535
+
536
+ PagerDutyIncidentDetail.add_member(:auto_resolve, Shapes::ShapeRef.new(shape: Boolean, location_name: "autoResolve"))
537
+ PagerDutyIncidentDetail.add_member(:id, Shapes::ShapeRef.new(shape: PagerDutyIncidentDetailIdString, required: true, location_name: "id"))
538
+ PagerDutyIncidentDetail.add_member(:secret_id, Shapes::ShapeRef.new(shape: PagerDutyIncidentDetailSecretIdString, location_name: "secretId"))
539
+ PagerDutyIncidentDetail.struct_class = Types::PagerDutyIncidentDetail
540
+
506
541
  PutResourcePolicyInput.add_member(:policy, Shapes::ShapeRef.new(shape: Policy, required: true, location_name: "policy"))
507
542
  PutResourcePolicyInput.add_member(:resource_arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "resourceArn"))
508
543
  PutResourcePolicyInput.struct_class = Types::PutResourcePolicyInput
@@ -699,6 +734,7 @@ module Aws::SSMIncidents
699
734
  UpdateResponsePlanInput.add_member(:incident_template_summary, Shapes::ShapeRef.new(shape: IncidentSummary, location_name: "incidentTemplateSummary"))
700
735
  UpdateResponsePlanInput.add_member(:incident_template_tags, Shapes::ShapeRef.new(shape: TagMapUpdate, location_name: "incidentTemplateTags"))
701
736
  UpdateResponsePlanInput.add_member(:incident_template_title, Shapes::ShapeRef.new(shape: IncidentTitle, location_name: "incidentTemplateTitle"))
737
+ UpdateResponsePlanInput.add_member(:integrations, Shapes::ShapeRef.new(shape: Integrations, location_name: "integrations"))
702
738
  UpdateResponsePlanInput.struct_class = Types::UpdateResponsePlanInput
703
739
 
704
740
  UpdateResponsePlanOutput.struct_class = Types::UpdateResponsePlanOutput
@@ -9,104 +9,43 @@
9
9
 
10
10
  module Aws::SSMIncidents
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) && (url = Aws::Endpoints::Matchers.parse_url(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://ssm-incidents-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
+ return Aws::Endpoints::Endpoint.new(url: "https://ssm-incidents-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
36
+ end
37
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
38
+ end
39
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
40
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
41
+ return Aws::Endpoints::Endpoint.new(url: "https://ssm-incidents.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
44
+ end
45
+ return Aws::Endpoints::Endpoint.new(url: "https://ssm-incidents.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
46
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
47
+ raise ArgumentError, 'No endpoint could be resolved'
24
48
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
49
  end
28
-
29
- # @api private
30
- RULES = <<-JSON
31
- eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
- bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
- dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
- cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
- dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
- ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
- ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
- ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
- aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
- OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
- UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
- dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
- UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
- dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
- ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
- IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
- aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
- bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
- ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
- Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
- cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
- InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
- aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
- cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
- InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
- UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
- SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
- eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
- InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
- LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
- ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
- b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
- fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
- RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
- ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
- In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
- YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
- YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
- cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
- dCI6eyJ1cmwiOiJodHRwczovL3NzbS1pbmNpZGVudHMtZmlwcy57UmVnaW9u
77
- fS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9w
78
- ZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19
79
- LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBhbmQgRHVhbFN0YWNr
80
- IGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3Vw
81
- cG9ydCBvbmUgb3IgYm90aCIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRp
82
- b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJV
83
- c2VGSVBTIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
84
- ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUs
85
- eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
86
- bHQifSwic3VwcG9ydHNGSVBTIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
87
- IjpbeyJjb25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3si
88
- Y29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vc3Nt
89
- LWluY2lkZW50cy1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5z
90
- U3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
91
- OiJlbmRwb2ludCJ9XX1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJ
92
- UFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3Vw
93
- cG9ydCBGSVBTIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7
94
- ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
95
- dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
96
- dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
97
- Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
98
- In0sInN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1
99
- bGVzIjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
100
- cHM6Ly9zc20taW5jaWRlbnRzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
101
- ZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJz
102
- Ijp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwi
103
- ZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRp
104
- b24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3Ii
105
- fV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
106
- Oi8vc3NtLWluY2lkZW50cy57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ru
107
- c1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
108
- IjoiZW5kcG9pbnQifV19XX0=
109
-
110
- JSON
111
50
  end
112
51
  end