aws-sdk-imagebuilder 1.41.0 → 1.43.0

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
  SHA256:
3
- metadata.gz: 1b133608111914afb968d37679c03ebfd263faeb9872a735cb77b2bfdbacc6eb
4
- data.tar.gz: b3eb3c7e9bec39c64d675b008a93a893ef22b14907b6f3cf12737a8265c6397c
3
+ metadata.gz: 6f93298399043dec20bb273600223c83a4a443c924456604a9f82757b9b2cf2a
4
+ data.tar.gz: 8e21c6ec6d95ad5dee70535bc14fc4f886b2461aa863dfea128327c5d2233df0
5
5
  SHA512:
6
- metadata.gz: 4229c6856046eb6e4f09816a4e53c4ec7dc72ed713abb0faf3870e79fa991656b69ac0b9b953a965f367fe490e918f1e7802520ec27ecd71ae030f92cdbb51f3
7
- data.tar.gz: b02e2cd6ac5a918f202fc9b0b9b0987ec457333f297419efa9da60c262c90018dfd03ca67a8a4ade4e526e651ce4dffb52935b47a04a5fbb5e1aa12e7db08ac2
6
+ metadata.gz: b2b424561609f3445c19c8a31df2cc0173f69e091ff14e9bc28d73929758bb5b33195658a3e5515de8a297751963e5a5efca6eb4d2e58d98de78cfbcde18aed2
7
+ data.tar.gz: fb33dc69ada0c42465de1bfba89cbdfd9ffb55f7e98ccfca5f701d0dd7992e16e3cc5a64257763a998eeac0f06fbe6e53461c7d0ec1b1c6be4157821c298f23b
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.43.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.42.0 (2023-01-17)
12
+ ------------------
13
+
14
+ * Feature - Add support for AWS Marketplace product IDs as input during CreateImageRecipe for the parent-image parameter. Add support for listing third-party components.
15
+
4
16
  1.41.0 (2022-10-25)
5
17
  ------------------
6
18
 
@@ -212,4 +224,4 @@ Unreleased Changes
212
224
  1.0.0 (2019-12-02)
213
225
  ------------------
214
226
 
215
- * Feature - Initial release of `aws-sdk-imagebuilder`.
227
+ * Feature - Initial release of `aws-sdk-imagebuilder`.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.41.0
1
+ 1.43.0
@@ -448,8 +448,7 @@ module Aws::Imagebuilder
448
448
  # </note>
449
449
  #
450
450
  # @option params [String] :description
451
- # The description of the component. Describes the contents of the
452
- # component.
451
+ # Describes the contents of the component.
453
452
  #
454
453
  # @option params [String] :change_description
455
454
  # The change description of the component. Describes what change has
@@ -457,7 +456,7 @@ module Aws::Imagebuilder
457
456
  # other versions of this component.
458
457
  #
459
458
  # @option params [required, String] :platform
460
- # The platform of the component.
459
+ # The operating system platform of the component.
461
460
  #
462
461
  # @option params [Array<String>] :supported_os_versions
463
462
  # The operating system (OS) version supported by the component. If the
@@ -479,10 +478,10 @@ module Aws::Imagebuilder
479
478
  # component `data` property. You cannot specify both properties.
480
479
  #
481
480
  # @option params [String] :kms_key_id
482
- # The ID of the KMS key that should be used to encrypt this component.
481
+ # The ID of the KMS key that is used to encrypt this component.
483
482
  #
484
483
  # @option params [Hash<String,String>] :tags
485
- # The tags of the component.
484
+ # The tags that apply to the component.
486
485
  #
487
486
  # @option params [required, String] :client_token
488
487
  # The idempotency token of the component.
@@ -563,7 +562,8 @@ module Aws::Imagebuilder
563
562
  #
564
563
  # @option params [required, Array<Types::ComponentConfiguration>] :components
565
564
  # Components for build and test that are included in the container
566
- # recipe.
565
+ # recipe. Recipes require a minimum of one build component, and can have
566
+ # a maximum of 20 build and test components in any combination.
567
567
  #
568
568
  # @option params [Types::InstanceConfiguration] :instance_configuration
569
569
  # A group of options that can be used to configure an instance for
@@ -997,7 +997,7 @@ module Aws::Imagebuilder
997
997
  # </note>
998
998
  #
999
999
  # @option params [required, Array<Types::ComponentConfiguration>] :components
1000
- # The components of the image recipe.
1000
+ # The components included in the image recipe.
1001
1001
  #
1002
1002
  # @option params [required, String] :parent_image
1003
1003
  # The base image of the image recipe. The value of the string can be the
@@ -1492,6 +1492,8 @@ module Aws::Imagebuilder
1492
1492
  # resp.component.date_created #=> String
1493
1493
  # resp.component.tags #=> Hash
1494
1494
  # resp.component.tags["TagKey"] #=> String
1495
+ # resp.component.publisher #=> String
1496
+ # resp.component.obfuscate #=> Boolean
1495
1497
  #
1496
1498
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetComponent AWS API Documentation
1497
1499
  #
@@ -1893,6 +1895,7 @@ module Aws::Imagebuilder
1893
1895
  # resp.image.tags #=> Hash
1894
1896
  # resp.image.tags["TagKey"] #=> String
1895
1897
  # resp.image.build_type #=> String, one of "USER_INITIATED", "SCHEDULED", "IMPORT"
1898
+ # resp.image.image_source #=> String, one of "AMAZON_MANAGED", "AWS_MARKETPLACE", "IMPORTED", "CUSTOM"
1896
1899
  #
1897
1900
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/GetImage AWS API Documentation
1898
1901
  #
@@ -2400,6 +2403,8 @@ module Aws::Imagebuilder
2400
2403
  # resp.component_summary_list[0].date_created #=> String
2401
2404
  # resp.component_summary_list[0].tags #=> Hash
2402
2405
  # resp.component_summary_list[0].tags["TagKey"] #=> String
2406
+ # resp.component_summary_list[0].publisher #=> String
2407
+ # resp.component_summary_list[0].obfuscate #=> Boolean
2403
2408
  # resp.next_token #=> String
2404
2409
  #
2405
2410
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListComponentBuildVersions AWS API Documentation
@@ -2411,8 +2416,10 @@ module Aws::Imagebuilder
2411
2416
  req.send_request(options)
2412
2417
  end
2413
2418
 
2414
- # Returns the list of component build versions for the specified
2415
- # semantic version.
2419
+ # Returns the list of components that can be filtered by name, or by
2420
+ # using the listed `filters` to streamline results. Newly created
2421
+ # components can take up to two minutes to appear in the ListComponents
2422
+ # API Results.
2416
2423
  #
2417
2424
  # <note markdown="1"> The semantic version has four nodes:
2418
2425
  # &lt;major&gt;.&lt;minor&gt;.&lt;patch&gt;/&lt;build&gt;. You can
@@ -2427,11 +2434,11 @@ module Aws::Imagebuilder
2427
2434
  # </note>
2428
2435
  #
2429
2436
  # @option params [String] :owner
2430
- # The owner defines which components you want to list. By default, this
2431
- # request will only show components owned by your account. You can use
2432
- # this field to specify if you want to view components owned by
2433
- # yourself, by Amazon, or those components that have been shared with
2434
- # you by other customers.
2437
+ # Filters results based on the type of owner for the component. By
2438
+ # default, this request returns a list of components that your account
2439
+ # owns. To see results for other types of owners, you can specify
2440
+ # components that Amazon manages, third party components, or components
2441
+ # that other accounts have shared with you.
2435
2442
  #
2436
2443
  # @option params [Array<Types::Filter>] :filters
2437
2444
  # Use the following filters to streamline results:
@@ -2449,7 +2456,7 @@ module Aws::Imagebuilder
2449
2456
  # * `version`
2450
2457
  #
2451
2458
  # @option params [Boolean] :by_name
2452
- # Returns the list of component build versions for the specified name.
2459
+ # Returns the list of components for the specified name.
2453
2460
  #
2454
2461
  # @option params [Integer] :max_results
2455
2462
  # The maximum items to return in a request.
@@ -2469,7 +2476,7 @@ module Aws::Imagebuilder
2469
2476
  # @example Request syntax with placeholder values
2470
2477
  #
2471
2478
  # resp = client.list_components({
2472
- # owner: "Self", # accepts Self, Shared, Amazon
2479
+ # owner: "Self", # accepts Self, Shared, Amazon, ThirdParty
2473
2480
  # filters: [
2474
2481
  # {
2475
2482
  # name: "FilterName",
@@ -2543,7 +2550,7 @@ module Aws::Imagebuilder
2543
2550
  # @example Request syntax with placeholder values
2544
2551
  #
2545
2552
  # resp = client.list_container_recipes({
2546
- # owner: "Self", # accepts Self, Shared, Amazon
2553
+ # owner: "Self", # accepts Self, Shared, Amazon, ThirdParty
2547
2554
  # filters: [
2548
2555
  # {
2549
2556
  # name: "FilterName",
@@ -2712,6 +2719,7 @@ module Aws::Imagebuilder
2712
2719
  # resp.image_summary_list[0].tags #=> Hash
2713
2720
  # resp.image_summary_list[0].tags["TagKey"] #=> String
2714
2721
  # resp.image_summary_list[0].build_type #=> String, one of "USER_INITIATED", "SCHEDULED", "IMPORT"
2722
+ # resp.image_summary_list[0].image_source #=> String, one of "AMAZON_MANAGED", "AWS_MARKETPLACE", "IMPORTED", "CUSTOM"
2715
2723
  # resp.next_token #=> String
2716
2724
  #
2717
2725
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImageBuildVersions AWS API Documentation
@@ -2843,6 +2851,7 @@ module Aws::Imagebuilder
2843
2851
  # resp.image_summary_list[0].tags #=> Hash
2844
2852
  # resp.image_summary_list[0].tags["TagKey"] #=> String
2845
2853
  # resp.image_summary_list[0].build_type #=> String, one of "USER_INITIATED", "SCHEDULED", "IMPORT"
2854
+ # resp.image_summary_list[0].image_source #=> String, one of "AMAZON_MANAGED", "AWS_MARKETPLACE", "IMPORTED", "CUSTOM"
2846
2855
  # resp.next_token #=> String
2847
2856
  #
2848
2857
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImagePipelineImages AWS API Documentation
@@ -2971,7 +2980,7 @@ module Aws::Imagebuilder
2971
2980
  # @example Request syntax with placeholder values
2972
2981
  #
2973
2982
  # resp = client.list_image_recipes({
2974
- # owner: "Self", # accepts Self, Shared, Amazon
2983
+ # owner: "Self", # accepts Self, Shared, Amazon, ThirdParty
2975
2984
  # filters: [
2976
2985
  # {
2977
2986
  # name: "FilterName",
@@ -3005,7 +3014,9 @@ module Aws::Imagebuilder
3005
3014
  req.send_request(options)
3006
3015
  end
3007
3016
 
3008
- # Returns the list of images that you have access to.
3017
+ # Returns the list of images that you have access to. Newly created
3018
+ # images can take up to two minutes to appear in the ListImages API
3019
+ # Results.
3009
3020
  #
3010
3021
  # @option params [String] :owner
3011
3022
  # The owner defines which images you want to list. By default, this
@@ -3051,7 +3062,7 @@ module Aws::Imagebuilder
3051
3062
  # @example Request syntax with placeholder values
3052
3063
  #
3053
3064
  # resp = client.list_images({
3054
- # owner: "Self", # accepts Self, Shared, Amazon
3065
+ # owner: "Self", # accepts Self, Shared, Amazon, ThirdParty
3055
3066
  # filters: [
3056
3067
  # {
3057
3068
  # name: "FilterName",
@@ -3077,6 +3088,7 @@ module Aws::Imagebuilder
3077
3088
  # resp.image_version_list[0].owner #=> String
3078
3089
  # resp.image_version_list[0].date_created #=> String
3079
3090
  # resp.image_version_list[0].build_type #=> String, one of "USER_INITIATED", "SCHEDULED", "IMPORT"
3091
+ # resp.image_version_list[0].image_source #=> String, one of "AMAZON_MANAGED", "AWS_MARKETPLACE", "IMPORTED", "CUSTOM"
3080
3092
  # resp.next_token #=> String
3081
3093
  #
3082
3094
  # @see http://docs.aws.amazon.com/goto/WebAPI/imagebuilder-2019-12-02/ListImages AWS API Documentation
@@ -3790,7 +3802,7 @@ module Aws::Imagebuilder
3790
3802
  params: params,
3791
3803
  config: config)
3792
3804
  context[:gem_name] = 'aws-sdk-imagebuilder'
3793
- context[:gem_version] = '1.41.0'
3805
+ context[:gem_version] = '1.43.0'
3794
3806
  Seahorse::Client::Request.new(handlers, context)
3795
3807
  end
3796
3808
 
@@ -153,6 +153,7 @@ module Aws::Imagebuilder
153
153
  ImageRecipeArn = Shapes::StringShape.new(name: 'ImageRecipeArn')
154
154
  ImageRecipeSummary = Shapes::StructureShape.new(name: 'ImageRecipeSummary')
155
155
  ImageRecipeSummaryList = Shapes::ListShape.new(name: 'ImageRecipeSummaryList')
156
+ ImageSource = Shapes::StringShape.new(name: 'ImageSource')
156
157
  ImageState = Shapes::StructureShape.new(name: 'ImageState')
157
158
  ImageStatus = Shapes::StringShape.new(name: 'ImageStatus')
158
159
  ImageSummary = Shapes::StructureShape.new(name: 'ImageSummary')
@@ -338,6 +339,8 @@ module Aws::Imagebuilder
338
339
  Component.add_member(:encrypted, Shapes::ShapeRef.new(shape: NullableBoolean, location_name: "encrypted"))
339
340
  Component.add_member(:date_created, Shapes::ShapeRef.new(shape: DateTime, location_name: "dateCreated"))
340
341
  Component.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
342
+ Component.add_member(:publisher, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "publisher"))
343
+ Component.add_member(:obfuscate, Shapes::ShapeRef.new(shape: Boolean, location_name: "obfuscate"))
341
344
  Component.struct_class = Types::Component
342
345
 
343
346
  ComponentConfiguration.add_member(:component_arn, Shapes::ShapeRef.new(shape: ComponentVersionArnOrBuildVersionArn, required: true, location_name: "componentArn"))
@@ -378,6 +381,8 @@ module Aws::Imagebuilder
378
381
  ComponentSummary.add_member(:change_description, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "changeDescription"))
379
382
  ComponentSummary.add_member(:date_created, Shapes::ShapeRef.new(shape: DateTime, location_name: "dateCreated"))
380
383
  ComponentSummary.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
384
+ ComponentSummary.add_member(:publisher, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "publisher"))
385
+ ComponentSummary.add_member(:obfuscate, Shapes::ShapeRef.new(shape: Boolean, location_name: "obfuscate"))
381
386
  ComponentSummary.struct_class = Types::ComponentSummary
382
387
 
383
388
  ComponentSummaryList.member = Shapes::ShapeRef.new(shape: ComponentSummary)
@@ -780,6 +785,7 @@ module Aws::Imagebuilder
780
785
  Image.add_member(:output_resources, Shapes::ShapeRef.new(shape: OutputResources, location_name: "outputResources"))
781
786
  Image.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
782
787
  Image.add_member(:build_type, Shapes::ShapeRef.new(shape: BuildType, location_name: "buildType"))
788
+ Image.add_member(:image_source, Shapes::ShapeRef.new(shape: ImageSource, location_name: "imageSource"))
783
789
  Image.struct_class = Types::Image
784
790
 
785
791
  ImagePackage.add_member(:package_name, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "packageName"))
@@ -852,6 +858,7 @@ module Aws::Imagebuilder
852
858
  ImageSummary.add_member(:output_resources, Shapes::ShapeRef.new(shape: OutputResources, location_name: "outputResources"))
853
859
  ImageSummary.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
854
860
  ImageSummary.add_member(:build_type, Shapes::ShapeRef.new(shape: BuildType, location_name: "buildType"))
861
+ ImageSummary.add_member(:image_source, Shapes::ShapeRef.new(shape: ImageSource, location_name: "imageSource"))
855
862
  ImageSummary.struct_class = Types::ImageSummary
856
863
 
857
864
  ImageSummaryList.member = Shapes::ShapeRef.new(shape: ImageSummary)
@@ -869,6 +876,7 @@ module Aws::Imagebuilder
869
876
  ImageVersion.add_member(:owner, Shapes::ShapeRef.new(shape: NonEmptyString, location_name: "owner"))
870
877
  ImageVersion.add_member(:date_created, Shapes::ShapeRef.new(shape: DateTime, location_name: "dateCreated"))
871
878
  ImageVersion.add_member(:build_type, Shapes::ShapeRef.new(shape: BuildType, location_name: "buildType"))
879
+ ImageVersion.add_member(:image_source, Shapes::ShapeRef.new(shape: ImageSource, location_name: "imageSource"))
872
880
  ImageVersion.struct_class = Types::ImageVersion
873
881
 
874
882
  ImageVersionList.member = Shapes::ShapeRef.new(shape: ImageVersion)
@@ -50,6 +50,9 @@ module Aws::Imagebuilder
50
50
 
51
51
  def initialize(options = {})
52
52
  self[:region] = options[:region]
53
+ if self[:region].nil?
54
+ raise ArgumentError, "Missing required EndpointParameter: :region"
55
+ end
53
56
  self[:use_dual_stack] = options[:use_dual_stack]
54
57
  self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
58
  if self[:use_dual_stack].nil?
@@ -9,103 +9,43 @@
9
9
 
10
10
  module Aws::Imagebuilder
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)
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://imagebuilder-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://imagebuilder-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://imagebuilder.#{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://imagebuilder.#{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
- dCI6eyJ1cmwiOiJodHRwczovL2ltYWdlYnVpbGRlci1maXBzLntSZWdpb259
77
- LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
78
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
79
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sg
80
- YXJlIGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBw
81
- b3J0IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlv
82
- bnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVz
83
- ZUZJUFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
84
- aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7
85
- ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3Vs
86
- dCJ9LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMi
87
- Olt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOiJodHRwczov
88
- L2ltYWdlYnVpbGRlci1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
89
- ZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5
90
- cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJG
91
- SVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMgcGFydGl0aW9uIGRvZXMgbm90IHN1
92
- cHBvcnQgRklQUyIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRpb25zIjpb
93
- eyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFs
94
- U3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
95
- aXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7
96
- ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3Vs
97
- dCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJdfV19XSwidHlwZSI6InRyZWUiLCJy
98
- dWxlcyI6W3siY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0
99
- dHBzOi8vaW1hZ2VidWlsZGVyLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
100
- ZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJz
101
- Ijp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwi
102
- ZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRp
103
- b24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3Ii
104
- fV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
105
- Oi8vaW1hZ2VidWlsZGVyLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5z
106
- U3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
107
- OiJlbmRwb2ludCJ9XX1dfQ==
108
-
109
- JSON
110
50
  end
111
51
  end