aws-sdk-servicecatalog 1.73.0 → 1.75.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.
@@ -49,6 +49,8 @@ module Aws::ServiceCatalog
49
49
  CloudWatchDashboard = Shapes::StructureShape.new(name: 'CloudWatchDashboard')
50
50
  CloudWatchDashboardName = Shapes::StringShape.new(name: 'CloudWatchDashboardName')
51
51
  CloudWatchDashboards = Shapes::ListShape.new(name: 'CloudWatchDashboards')
52
+ CodeStarConnectionArn = Shapes::StringShape.new(name: 'CodeStarConnectionArn')
53
+ CodeStarParameters = Shapes::StructureShape.new(name: 'CodeStarParameters')
52
54
  ConstraintDescription = Shapes::StringShape.new(name: 'ConstraintDescription')
53
55
  ConstraintDetail = Shapes::StructureShape.new(name: 'ConstraintDetail')
54
56
  ConstraintDetails = Shapes::ListShape.new(name: 'ConstraintDetails')
@@ -178,6 +180,11 @@ module Aws::ServiceCatalog
178
180
  InvalidParametersException = Shapes::StructureShape.new(name: 'InvalidParametersException')
179
181
  InvalidStateException = Shapes::StructureShape.new(name: 'InvalidStateException')
180
182
  LastRequestId = Shapes::StringShape.new(name: 'LastRequestId')
183
+ LastSuccessfulSyncTime = Shapes::TimestampShape.new(name: 'LastSuccessfulSyncTime')
184
+ LastSync = Shapes::StructureShape.new(name: 'LastSync')
185
+ LastSyncStatus = Shapes::StringShape.new(name: 'LastSyncStatus')
186
+ LastSyncStatusMessage = Shapes::StringShape.new(name: 'LastSyncStatusMessage')
187
+ LastSyncTime = Shapes::TimestampShape.new(name: 'LastSyncTime')
181
188
  LaunchPath = Shapes::StructureShape.new(name: 'LaunchPath')
182
189
  LaunchPathSummaries = Shapes::ListShape.new(name: 'LaunchPathSummaries')
183
190
  LaunchPathSummary = Shapes::StructureShape.new(name: 'LaunchPathSummary')
@@ -352,6 +359,9 @@ module Aws::ServiceCatalog
352
359
  RejectPortfolioShareInput = Shapes::StructureShape.new(name: 'RejectPortfolioShareInput')
353
360
  RejectPortfolioShareOutput = Shapes::StructureShape.new(name: 'RejectPortfolioShareOutput')
354
361
  Replacement = Shapes::StringShape.new(name: 'Replacement')
362
+ Repository = Shapes::StringShape.new(name: 'Repository')
363
+ RepositoryArtifactPath = Shapes::StringShape.new(name: 'RepositoryArtifactPath')
364
+ RepositoryBranch = Shapes::StringShape.new(name: 'RepositoryBranch')
355
365
  RequiresRecreation = Shapes::StringShape.new(name: 'RequiresRecreation')
356
366
  ResourceARN = Shapes::StringShape.new(name: 'ResourceARN')
357
367
  ResourceAttribute = Shapes::StringShape.new(name: 'ResourceAttribute')
@@ -404,8 +414,13 @@ module Aws::ServiceCatalog
404
414
  ShareStatus = Shapes::StringShape.new(name: 'ShareStatus')
405
415
  SortField = Shapes::StringShape.new(name: 'SortField')
406
416
  SortOrder = Shapes::StringShape.new(name: 'SortOrder')
417
+ SourceConnection = Shapes::StructureShape.new(name: 'SourceConnection')
418
+ SourceConnectionDetail = Shapes::StructureShape.new(name: 'SourceConnectionDetail')
419
+ SourceConnectionParameters = Shapes::StructureShape.new(name: 'SourceConnectionParameters')
407
420
  SourceProvisioningArtifactProperties = Shapes::ListShape.new(name: 'SourceProvisioningArtifactProperties')
408
421
  SourceProvisioningArtifactPropertiesMap = Shapes::MapShape.new(name: 'SourceProvisioningArtifactPropertiesMap')
422
+ SourceRevision = Shapes::StringShape.new(name: 'SourceRevision')
423
+ SourceType = Shapes::StringShape.new(name: 'SourceType')
409
424
  StackInstance = Shapes::StructureShape.new(name: 'StackInstance')
410
425
  StackInstanceStatus = Shapes::StringShape.new(name: 'StackInstanceStatus')
411
426
  StackInstances = Shapes::ListShape.new(name: 'StackInstances')
@@ -548,6 +563,12 @@ module Aws::ServiceCatalog
548
563
 
549
564
  CloudWatchDashboards.member = Shapes::ShapeRef.new(shape: CloudWatchDashboard)
550
565
 
566
+ CodeStarParameters.add_member(:connection_arn, Shapes::ShapeRef.new(shape: CodeStarConnectionArn, required: true, location_name: "ConnectionArn"))
567
+ CodeStarParameters.add_member(:repository, Shapes::ShapeRef.new(shape: Repository, required: true, location_name: "Repository"))
568
+ CodeStarParameters.add_member(:branch, Shapes::ShapeRef.new(shape: RepositoryBranch, required: true, location_name: "Branch"))
569
+ CodeStarParameters.add_member(:artifact_path, Shapes::ShapeRef.new(shape: RepositoryArtifactPath, required: true, location_name: "ArtifactPath"))
570
+ CodeStarParameters.struct_class = Types::CodeStarParameters
571
+
551
572
  ConstraintDetail.add_member(:constraint_id, Shapes::ShapeRef.new(shape: Id, location_name: "ConstraintId"))
552
573
  ConstraintDetail.add_member(:type, Shapes::ShapeRef.new(shape: ConstraintType, location_name: "Type"))
553
574
  ConstraintDetail.add_member(:description, Shapes::ShapeRef.new(shape: ConstraintDescription, location_name: "Description"))
@@ -609,6 +630,7 @@ module Aws::ServiceCatalog
609
630
  CreatePortfolioShareInput.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "AccountId"))
610
631
  CreatePortfolioShareInput.add_member(:organization_node, Shapes::ShapeRef.new(shape: OrganizationNode, location_name: "OrganizationNode"))
611
632
  CreatePortfolioShareInput.add_member(:share_tag_options, Shapes::ShapeRef.new(shape: Boolean, location_name: "ShareTagOptions"))
633
+ CreatePortfolioShareInput.add_member(:share_principals, Shapes::ShapeRef.new(shape: Boolean, location_name: "SharePrincipals"))
612
634
  CreatePortfolioShareInput.struct_class = Types::CreatePortfolioShareInput
613
635
 
614
636
  CreatePortfolioShareOutput.add_member(:portfolio_share_token, Shapes::ShapeRef.new(shape: Id, location_name: "PortfolioShareToken"))
@@ -624,8 +646,9 @@ module Aws::ServiceCatalog
624
646
  CreateProductInput.add_member(:support_url, Shapes::ShapeRef.new(shape: SupportUrl, location_name: "SupportUrl"))
625
647
  CreateProductInput.add_member(:product_type, Shapes::ShapeRef.new(shape: ProductType, required: true, location_name: "ProductType"))
626
648
  CreateProductInput.add_member(:tags, Shapes::ShapeRef.new(shape: AddTags, location_name: "Tags"))
627
- CreateProductInput.add_member(:provisioning_artifact_parameters, Shapes::ShapeRef.new(shape: ProvisioningArtifactProperties, required: true, location_name: "ProvisioningArtifactParameters"))
649
+ CreateProductInput.add_member(:provisioning_artifact_parameters, Shapes::ShapeRef.new(shape: ProvisioningArtifactProperties, location_name: "ProvisioningArtifactParameters"))
628
650
  CreateProductInput.add_member(:idempotency_token, Shapes::ShapeRef.new(shape: IdempotencyToken, required: true, location_name: "IdempotencyToken", metadata: {"idempotencyToken"=>true}))
651
+ CreateProductInput.add_member(:source_connection, Shapes::ShapeRef.new(shape: SourceConnection, location_name: "SourceConnection"))
629
652
  CreateProductInput.struct_class = Types::CreateProductInput
630
653
 
631
654
  CreateProductOutput.add_member(:product_view_detail, Shapes::ShapeRef.new(shape: ProductViewDetail, location_name: "ProductViewDetail"))
@@ -910,6 +933,7 @@ module Aws::ServiceCatalog
910
933
  DisassociatePrincipalFromPortfolioInput.add_member(:accept_language, Shapes::ShapeRef.new(shape: AcceptLanguage, location_name: "AcceptLanguage"))
911
934
  DisassociatePrincipalFromPortfolioInput.add_member(:portfolio_id, Shapes::ShapeRef.new(shape: Id, required: true, location_name: "PortfolioId"))
912
935
  DisassociatePrincipalFromPortfolioInput.add_member(:principal_arn, Shapes::ShapeRef.new(shape: PrincipalARN, required: true, location_name: "PrincipalARN"))
936
+ DisassociatePrincipalFromPortfolioInput.add_member(:principal_type, Shapes::ShapeRef.new(shape: PrincipalType, location_name: "PrincipalType"))
913
937
  DisassociatePrincipalFromPortfolioInput.struct_class = Types::DisassociatePrincipalFromPortfolioInput
914
938
 
915
939
  DisassociatePrincipalFromPortfolioOutput.struct_class = Types::DisassociatePrincipalFromPortfolioOutput
@@ -1012,6 +1036,13 @@ module Aws::ServiceCatalog
1012
1036
 
1013
1037
  InvalidStateException.struct_class = Types::InvalidStateException
1014
1038
 
1039
+ LastSync.add_member(:last_sync_time, Shapes::ShapeRef.new(shape: LastSyncTime, location_name: "LastSyncTime"))
1040
+ LastSync.add_member(:last_sync_status, Shapes::ShapeRef.new(shape: LastSyncStatus, location_name: "LastSyncStatus"))
1041
+ LastSync.add_member(:last_sync_status_message, Shapes::ShapeRef.new(shape: LastSyncStatusMessage, location_name: "LastSyncStatusMessage"))
1042
+ LastSync.add_member(:last_successful_sync_time, Shapes::ShapeRef.new(shape: LastSuccessfulSyncTime, location_name: "LastSuccessfulSyncTime"))
1043
+ LastSync.add_member(:last_successful_sync_provisioning_artifact_id, Shapes::ShapeRef.new(shape: Id, location_name: "LastSuccessfulSyncProvisioningArtifactId"))
1044
+ LastSync.struct_class = Types::LastSync
1045
+
1015
1046
  LaunchPath.add_member(:id, Shapes::ShapeRef.new(shape: Id, location_name: "Id"))
1016
1047
  LaunchPath.add_member(:name, Shapes::ShapeRef.new(shape: PortfolioName, location_name: "Name"))
1017
1048
  LaunchPath.struct_class = Types::LaunchPath
@@ -1255,6 +1286,7 @@ module Aws::ServiceCatalog
1255
1286
  PortfolioShareDetail.add_member(:type, Shapes::ShapeRef.new(shape: DescribePortfolioShareType, location_name: "Type"))
1256
1287
  PortfolioShareDetail.add_member(:accepted, Shapes::ShapeRef.new(shape: Boolean, location_name: "Accepted"))
1257
1288
  PortfolioShareDetail.add_member(:share_tag_options, Shapes::ShapeRef.new(shape: Boolean, location_name: "ShareTagOptions"))
1289
+ PortfolioShareDetail.add_member(:share_principals, Shapes::ShapeRef.new(shape: Boolean, location_name: "SharePrincipals"))
1258
1290
  PortfolioShareDetail.struct_class = Types::PortfolioShareDetail
1259
1291
 
1260
1292
  PortfolioShareDetails.member = Shapes::ShapeRef.new(shape: PortfolioShareDetail)
@@ -1278,6 +1310,7 @@ module Aws::ServiceCatalog
1278
1310
  ProductViewDetail.add_member(:status, Shapes::ShapeRef.new(shape: Status, location_name: "Status"))
1279
1311
  ProductViewDetail.add_member(:product_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "ProductARN"))
1280
1312
  ProductViewDetail.add_member(:created_time, Shapes::ShapeRef.new(shape: CreatedTime, location_name: "CreatedTime"))
1313
+ ProductViewDetail.add_member(:source_connection, Shapes::ShapeRef.new(shape: SourceConnectionDetail, location_name: "SourceConnection"))
1281
1314
  ProductViewDetail.struct_class = Types::ProductViewDetail
1282
1315
 
1283
1316
  ProductViewDetails.member = Shapes::ShapeRef.new(shape: ProductViewDetail)
@@ -1410,6 +1443,7 @@ module Aws::ServiceCatalog
1410
1443
  ProvisioningArtifactDetail.add_member(:created_time, Shapes::ShapeRef.new(shape: CreationTime, location_name: "CreatedTime"))
1411
1444
  ProvisioningArtifactDetail.add_member(:active, Shapes::ShapeRef.new(shape: ProvisioningArtifactActive, location_name: "Active"))
1412
1445
  ProvisioningArtifactDetail.add_member(:guidance, Shapes::ShapeRef.new(shape: ProvisioningArtifactGuidance, location_name: "Guidance"))
1446
+ ProvisioningArtifactDetail.add_member(:source_revision, Shapes::ShapeRef.new(shape: SourceRevision, location_name: "SourceRevision"))
1413
1447
  ProvisioningArtifactDetail.struct_class = Types::ProvisioningArtifactDetail
1414
1448
 
1415
1449
  ProvisioningArtifactDetails.member = Shapes::ShapeRef.new(shape: ProvisioningArtifactDetail)
@@ -1439,7 +1473,7 @@ module Aws::ServiceCatalog
1439
1473
 
1440
1474
  ProvisioningArtifactProperties.add_member(:name, Shapes::ShapeRef.new(shape: ProvisioningArtifactName, location_name: "Name"))
1441
1475
  ProvisioningArtifactProperties.add_member(:description, Shapes::ShapeRef.new(shape: ProvisioningArtifactDescription, location_name: "Description"))
1442
- ProvisioningArtifactProperties.add_member(:info, Shapes::ShapeRef.new(shape: ProvisioningArtifactInfo, required: true, location_name: "Info"))
1476
+ ProvisioningArtifactProperties.add_member(:info, Shapes::ShapeRef.new(shape: ProvisioningArtifactInfo, location_name: "Info"))
1443
1477
  ProvisioningArtifactProperties.add_member(:type, Shapes::ShapeRef.new(shape: ProvisioningArtifactType, location_name: "Type"))
1444
1478
  ProvisioningArtifactProperties.add_member(:disable_template_validation, Shapes::ShapeRef.new(shape: DisableTemplateValidation, location_name: "DisableTemplateValidation"))
1445
1479
  ProvisioningArtifactProperties.struct_class = Types::ProvisioningArtifactProperties
@@ -1641,6 +1675,18 @@ module Aws::ServiceCatalog
1641
1675
 
1642
1676
  ShareErrors.member = Shapes::ShapeRef.new(shape: ShareError)
1643
1677
 
1678
+ SourceConnection.add_member(:type, Shapes::ShapeRef.new(shape: SourceType, location_name: "Type"))
1679
+ SourceConnection.add_member(:connection_parameters, Shapes::ShapeRef.new(shape: SourceConnectionParameters, required: true, location_name: "ConnectionParameters"))
1680
+ SourceConnection.struct_class = Types::SourceConnection
1681
+
1682
+ SourceConnectionDetail.add_member(:type, Shapes::ShapeRef.new(shape: SourceType, location_name: "Type"))
1683
+ SourceConnectionDetail.add_member(:connection_parameters, Shapes::ShapeRef.new(shape: SourceConnectionParameters, location_name: "ConnectionParameters"))
1684
+ SourceConnectionDetail.add_member(:last_sync, Shapes::ShapeRef.new(shape: LastSync, location_name: "LastSync"))
1685
+ SourceConnectionDetail.struct_class = Types::SourceConnectionDetail
1686
+
1687
+ SourceConnectionParameters.add_member(:code_star, Shapes::ShapeRef.new(shape: CodeStarParameters, location_name: "CodeStar"))
1688
+ SourceConnectionParameters.struct_class = Types::SourceConnectionParameters
1689
+
1644
1690
  SourceProvisioningArtifactProperties.member = Shapes::ShapeRef.new(shape: SourceProvisioningArtifactPropertiesMap)
1645
1691
 
1646
1692
  SourceProvisioningArtifactPropertiesMap.key = Shapes::ShapeRef.new(shape: ProvisioningArtifactPropertyName)
@@ -1726,6 +1772,7 @@ module Aws::ServiceCatalog
1726
1772
  UpdatePortfolioShareInput.add_member(:account_id, Shapes::ShapeRef.new(shape: AccountId, location_name: "AccountId"))
1727
1773
  UpdatePortfolioShareInput.add_member(:organization_node, Shapes::ShapeRef.new(shape: OrganizationNode, location_name: "OrganizationNode"))
1728
1774
  UpdatePortfolioShareInput.add_member(:share_tag_options, Shapes::ShapeRef.new(shape: NullableBoolean, location_name: "ShareTagOptions"))
1775
+ UpdatePortfolioShareInput.add_member(:share_principals, Shapes::ShapeRef.new(shape: NullableBoolean, location_name: "SharePrincipals"))
1729
1776
  UpdatePortfolioShareInput.struct_class = Types::UpdatePortfolioShareInput
1730
1777
 
1731
1778
  UpdatePortfolioShareOutput.add_member(:portfolio_share_token, Shapes::ShapeRef.new(shape: Id, location_name: "PortfolioShareToken"))
@@ -1743,6 +1790,7 @@ module Aws::ServiceCatalog
1743
1790
  UpdateProductInput.add_member(:support_url, Shapes::ShapeRef.new(shape: SupportUrl, location_name: "SupportUrl"))
1744
1791
  UpdateProductInput.add_member(:add_tags, Shapes::ShapeRef.new(shape: AddTags, location_name: "AddTags"))
1745
1792
  UpdateProductInput.add_member(:remove_tags, Shapes::ShapeRef.new(shape: TagKeys, location_name: "RemoveTags"))
1793
+ UpdateProductInput.add_member(:source_connection, Shapes::ShapeRef.new(shape: SourceConnection, location_name: "SourceConnection"))
1746
1794
  UpdateProductInput.struct_class = Types::UpdateProductInput
1747
1795
 
1748
1796
  UpdateProductOutput.add_member(:product_view_detail, Shapes::ShapeRef.new(shape: ProductViewDetail, location_name: "ProductViewDetail"))
@@ -9,104 +9,43 @@
9
9
 
10
10
  module Aws::ServiceCatalog
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://servicecatalog-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://servicecatalog-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://servicecatalog.#{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://servicecatalog.#{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
- dCI6eyJ1cmwiOiJodHRwczovL3NlcnZpY2VjYXRhbG9nLWZpcHMue1JlZ2lv
77
- bn0ue1BhcnRpdGlvblJlc3VsdCNkdWFsU3RhY2tEbnNTdWZmaXh9IiwicHJv
78
- cGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVuZHBvaW50In1d
79
- fSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJUFMgYW5kIER1YWxTdGFj
80
- ayBhcmUgZW5hYmxlZCwgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1
81
- cHBvcnQgb25lIG9yIGJvdGgiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0
82
- aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoi
83
- VXNlRklQUyJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNv
84
- bmRpdGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVl
85
- LHsiZm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVz
86
- dWx0In0sInN1cHBvcnRzRklQUyJdfV19XSwidHlwZSI6InRyZWUiLCJydWxl
87
- cyI6W3siY29uZGl0aW9ucyI6W10sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
88
- ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczovL3Nl
89
- cnZpY2VjYXRhbG9nLWZpcHMue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3VsdCNk
90
- bnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
91
- ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoi
92
- RklQUyBpcyBlbmFibGVkIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBz
93
- dXBwb3J0IEZJUFMiLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6
94
- W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRHVh
95
- bFN0YWNrIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
96
- ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUs
97
- eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
98
- bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5cGUiOiJ0cmVlIiwi
99
- cnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJo
100
- dHRwczovL3NlcnZpY2VjYXRhbG9nLntSZWdpb259LntQYXJ0aXRpb25SZXN1
101
- bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFk
102
- ZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpb
103
- XSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0
104
- aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJy
105
- b3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0
106
- dHBzOi8vc2VydmljZWNhdGFsb2cue1JlZ2lvbn0ue1BhcnRpdGlvblJlc3Vs
107
- dCNkbnNTdWZmaXh9IiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwi
108
- dHlwZSI6ImVuZHBvaW50In1dfV19
109
-
110
- JSON
111
50
  end
112
51
  end