aws-sdk-appconfig 1.27.0 → 1.29.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: 31814c68b62820abc85586f50cb3faf85b1b4c0699b4a1d79d654df8368b7731
4
- data.tar.gz: 1eeae9f0fb9b9d50945f98826b4942fb1d88a7ed94fc48f626558270e51bab61
3
+ metadata.gz: cf9c7b43fcdf678a03151fe88f95923ed639e6821c09446aeb7ffbb50c425052
4
+ data.tar.gz: f0c915c9b30be8fce573e4dece1778eefae6ccafa2a0c3fa695e46045cf54970
5
5
  SHA512:
6
- metadata.gz: 9446799a8f01b8f7231788683a4f1ceb13575f0daaa9c94c1213a69ded60e2f21597fae6cc92b0dfa922af3fc1fc88ea6af9394862db79068a2b1ba45b447cf1
7
- data.tar.gz: 3a104dc0fb0427db86a08abb56cd2859a7849647ef653b5b2459b2041be8a8e21214cc6e2e5744b5265a999393138f2c6dc6ad9cceeb60fef1c972fcb8efdea4
6
+ metadata.gz: e983581d51d15ac9396a7c185150bbcd3ced30c0986a8e818ccca5efdc045ea929dcae474da73e5469789fdedb5b3601f37e271c8faaacc695c62ea79235c0a2
7
+ data.tar.gz: '084ecdfbe31dceb3be0e18fb5636153f0e2b0c5113be101667d967c11e15390d718bb885288bd48a5d859039f21b929a30a026095b51b78d6b88dd50fc92679e'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.29.0 (2023-02-02)
5
+ ------------------
6
+
7
+ * Feature - AWS AppConfig introduces KMS customer-managed key (CMK) encryption of configuration data, along with AWS Secrets Manager as a new configuration data source. S3 objects using SSE-KMS encryption and SSM Parameter Store SecureStrings are also now supported.
8
+
9
+ 1.28.0 (2023-01-18)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ * Issue - Replace runtime endpoint resolution approach with generated ruby code.
15
+
4
16
  1.27.0 (2022-10-25)
5
17
  ------------------
6
18
 
@@ -145,4 +157,4 @@ Unreleased Changes
145
157
  1.0.0 (2019-11-25)
146
158
  ------------------
147
159
 
148
- * Feature - Initial release of `aws-sdk-appconfig`.
160
+ * Feature - Initial release of `aws-sdk-appconfig`.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.27.0
1
+ 1.29.0
@@ -435,11 +435,25 @@ module Aws::AppConfig
435
435
 
436
436
  # Creates a configuration profile, which is information that enables
437
437
  # AppConfig to access the configuration source. Valid configuration
438
- # sources include the AppConfig hosted configuration store, Amazon Web
439
- # Services Systems Manager (SSM) documents, SSM Parameter Store
440
- # parameters, Amazon S3 objects, or any [integration source action][1]
441
- # supported by CodePipeline. A configuration profile includes the
442
- # following information:
438
+ # sources include the following:
439
+ #
440
+ # * Configuration data in YAML, JSON, and other formats stored in the
441
+ # AppConfig hosted configuration store
442
+ #
443
+ # * Configuration data stored as objects in an Amazon Simple Storage
444
+ # Service (Amazon S3) bucket
445
+ #
446
+ # * Pipelines stored in CodePipeline
447
+ #
448
+ # * Secrets stored in Secrets Manager
449
+ #
450
+ # * Standard and secure string parameters stored in Amazon Web Services
451
+ # Systems Manager Parameter Store
452
+ #
453
+ # * Configuration data in SSM documents stored in the Systems Manager
454
+ # document store
455
+ #
456
+ # A configuration profile includes the following information:
443
457
  #
444
458
  # * The URI location of the configuration data.
445
459
  #
@@ -450,12 +464,11 @@ module Aws::AppConfig
450
464
  # either a JSON Schema or an Amazon Web Services Lambda function.
451
465
  #
452
466
  # For more information, see [Create a Configuration and a Configuration
453
- # Profile][2] in the *AppConfig User Guide*.
467
+ # Profile][1] in the *AppConfig User Guide*.
454
468
  #
455
469
  #
456
470
  #
457
- # [1]: http://docs.aws.amazon.com/codepipeline/latest/userguide/integrations-action-type.html#integrations-source
458
- # [2]: http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html
471
+ # [1]: http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html
459
472
  #
460
473
  # @option params [required, String] :application_id
461
474
  # The application ID.
@@ -467,17 +480,24 @@ module Aws::AppConfig
467
480
  # A description of the configuration profile.
468
481
  #
469
482
  # @option params [required, String] :location_uri
470
- # A URI to locate the configuration. You can specify the AppConfig
471
- # hosted configuration store, Systems Manager (SSM) document, an SSM
472
- # Parameter Store parameter, or an Amazon S3 object. For the hosted
473
- # configuration store and for feature flags, specify `hosted`. For an
474
- # SSM document, specify either the document name in the format
475
- # `ssm-document://<Document_name>` or the Amazon Resource Name (ARN).
476
- # For a parameter, specify either the parameter name in the format
477
- # `ssm-parameter://<Parameter_name>` or the ARN. For an Amazon S3
478
- # object, specify the URI in the following format:
479
- # `s3://<bucket>/<objectKey> `. Here is an example:
480
- # `s3://my-bucket/my-app/us-east-1/my-config.json`
483
+ # A URI to locate the configuration. You can specify the following:
484
+ #
485
+ # * For the AppConfig hosted configuration store and for feature flags,
486
+ # specify `hosted`.
487
+ #
488
+ # * For an Amazon Web Services Systems Manager Parameter Store
489
+ # parameter, specify either the parameter name in the format
490
+ # `ssm-parameter://<parameter name>` or the ARN.
491
+ #
492
+ # * For an Secrets Manager secret, specify the URI in the following
493
+ # format: `secrets-manager`\://&lt;secret name&gt;.
494
+ #
495
+ # * For an Amazon S3 object, specify the URI in the following format:
496
+ # `s3://<bucket>/<objectKey> `. Here is an example:
497
+ # `s3://my-bucket/my-app/us-east-1/my-config.json`
498
+ #
499
+ # * For an SSM document, specify either the document name in the format
500
+ # `ssm-document://<document name>` or the Amazon Resource Name (ARN).
481
501
  #
482
502
  # @option params [String] :retrieval_role_arn
483
503
  # The ARN of an IAM role with permission to access the configuration at
@@ -818,12 +838,12 @@ module Aws::AppConfig
818
838
  # inject logic or behavior at different points during the AppConfig
819
839
  # workflow of creating or deploying a configuration.
820
840
  #
821
- # You can create your own extensions or use the Amazon Web
822
- # Services-authored extensions provided by AppConfig. For most
823
- # use-cases, to create your own extension, you must create an Lambda
824
- # function to perform any computation and processing defined in the
825
- # extension. For more information about extensions, see [Working with
826
- # AppConfig extensions][1] in the *AppConfig User Guide*.
841
+ # You can create your own extensions or use the Amazon Web Services
842
+ # authored extensions provided by AppConfig. For most use cases, to
843
+ # create your own extension, you must create an Lambda function to
844
+ # perform any computation and processing defined in the extension. For
845
+ # more information about extensions, see [Working with AppConfig
846
+ # extensions][1] in the *AppConfig User Guide*.
827
847
  #
828
848
  #
829
849
  #
@@ -919,19 +939,18 @@ module Aws::AppConfig
919
939
  req.send_request(options)
920
940
  end
921
941
 
922
- # When you create an extension or configure an Amazon Web
923
- # Services-authored extension, you associate the extension with an
924
- # AppConfig application, environment, or configuration profile. For
925
- # example, you can choose to run the `AppConfig deployment events to
926
- # Amazon SNS` Amazon Web Services-authored extension and receive
927
- # notifications on an Amazon SNS topic anytime a configuration
928
- # deployment is started for a specific application. Defining which
929
- # extension to associate with an AppConfig resource is called an
930
- # *extension association*. An extension association is a specified
931
- # relationship between an extension and an AppConfig resource, such as
932
- # an application or a configuration profile. For more information about
933
- # extensions and associations, see [Working with AppConfig
934
- # extensions][1] in the *AppConfig User Guide*.
942
+ # When you create an extension or configure an Amazon Web Services
943
+ # authored extension, you associate the extension with an AppConfig
944
+ # application, environment, or configuration profile. For example, you
945
+ # can choose to run the `AppConfig deployment events to Amazon SNS`
946
+ # Amazon Web Services authored extension and receive notifications on an
947
+ # Amazon SNS topic anytime a configuration deployment is started for a
948
+ # specific application. Defining which extension to associate with an
949
+ # AppConfig resource is called an *extension association*. An extension
950
+ # association is a specified relationship between an extension and an
951
+ # AppConfig resource, such as an application or a configuration profile.
952
+ # For more information about extensions and associations, see [Working
953
+ # with AppConfig extensions][1] in the *AppConfig User Guide*.
935
954
  #
936
955
  #
937
956
  #
@@ -1371,41 +1390,22 @@ module Aws::AppConfig
1371
1390
  req.send_request(options)
1372
1391
  end
1373
1392
 
1374
- # Retrieves the latest deployed configuration.
1393
+ # (Deprecated) Retrieves the latest deployed configuration.
1375
1394
  #
1376
1395
  # Note the following important information.
1377
1396
  #
1378
- # * This API action has been deprecated. Calls to receive configuration
1379
- # data should use the [StartConfigurationSession][1] and
1397
+ # * This API action is deprecated. Calls to receive configuration data
1398
+ # should use the [StartConfigurationSession][1] and
1380
1399
  # [GetLatestConfiguration][2] APIs instead.
1381
1400
  #
1382
1401
  # * `GetConfiguration` is a priced call. For more information, see
1383
1402
  # [Pricing][3].
1384
1403
  #
1385
- # * AppConfig uses the value of the `ClientConfigurationVersion`
1386
- # parameter to identify the configuration version on your clients. If
1387
- # you don’t send `ClientConfigurationVersion` with each call to
1388
- # `GetConfiguration`, your clients receive the current configuration.
1389
- # You are charged each time your clients receive a configuration.
1390
- #
1391
- # To avoid excess charges, we recommend you use the
1392
- # [StartConfigurationSession][4] and [GetLatestConfiguration][5] APIs,
1393
- # which track the client configuration version on your behalf. If you
1394
- # choose to continue using `GetConfiguration`, we recommend that you
1395
- # include the `ClientConfigurationVersion` value with every call to
1396
- # `GetConfiguration`. The value to use for
1397
- # `ClientConfigurationVersion` comes from the `ConfigurationVersion`
1398
- # attribute returned by `GetConfiguration` when there is new or
1399
- # updated data, and should be saved for subsequent calls to
1400
- # `GetConfiguration`.
1401
- #
1402
1404
  #
1403
1405
  #
1404
1406
  # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_StartConfigurationSession.html
1405
1407
  # [2]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_appconfigdata_GetLatestConfiguration.html
1406
1408
  # [3]: https://aws.amazon.com/systems-manager/pricing/
1407
- # [4]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/StartConfigurationSession.html
1408
- # [5]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/GetLatestConfiguration.html
1409
1409
  #
1410
1410
  # @option params [required, String] :application
1411
1411
  # The application to get. Specify either the application name or the
@@ -1435,18 +1435,24 @@ module Aws::AppConfig
1435
1435
  # `GetConfiguration`, your clients receive the current configuration.
1436
1436
  # You are charged each time your clients receive a configuration.
1437
1437
  #
1438
- # To avoid excess charges, we recommend that you include the
1439
- # `ClientConfigurationVersion` value with every call to
1440
- # `GetConfiguration`. This value must be saved on your client.
1441
- # Subsequent calls to `GetConfiguration` must pass this value by using
1442
- # the `ClientConfigurationVersion` parameter.
1438
+ # To avoid excess charges, we recommend you use the
1439
+ # [StartConfigurationSession][1] and [GetLatestConfiguration][2] APIs,
1440
+ # which track the client configuration version on your behalf. If you
1441
+ # choose to continue using `GetConfiguration`, we recommend that you
1442
+ # include the `ClientConfigurationVersion` value with every call to
1443
+ # `GetConfiguration`. The value to use for `ClientConfigurationVersion`
1444
+ # comes from the `ConfigurationVersion` attribute returned by
1445
+ # `GetConfiguration` when there is new or updated data, and should be
1446
+ # saved for subsequent calls to `GetConfiguration`.
1443
1447
  #
1444
1448
  # For more information about working with configurations, see
1445
- # [Retrieving the Configuration][1] in the *AppConfig User Guide*.
1449
+ # [Retrieving the Configuration][3] in the *AppConfig User Guide*.
1446
1450
  #
1447
1451
  #
1448
1452
  #
1449
- # [1]: http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration.html
1453
+ # [1]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/StartConfigurationSession.html
1454
+ # [2]: https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/GetLatestConfiguration.html
1455
+ # [3]: http://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-retrieving-the-configuration.html
1450
1456
  #
1451
1457
  # @return [Types::Configuration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1452
1458
  #
@@ -1602,6 +1608,8 @@ module Aws::AppConfig
1602
1608
  # * {Types::Deployment#started_at #started_at} => Time
1603
1609
  # * {Types::Deployment#completed_at #completed_at} => Time
1604
1610
  # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
1611
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
1612
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
1605
1613
  #
1606
1614
  #
1607
1615
  # @example Example: To retrieve deployment details
@@ -1725,6 +1733,8 @@ module Aws::AppConfig
1725
1733
  # resp.applied_extensions[0].version_number #=> Integer
1726
1734
  # resp.applied_extensions[0].parameters #=> Hash
1727
1735
  # resp.applied_extensions[0].parameters["Name"] #=> String
1736
+ # resp.kms_key_arn #=> String
1737
+ # resp.kms_key_identifier #=> String
1728
1738
  #
1729
1739
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/GetDeployment AWS API Documentation
1730
1740
  #
@@ -2474,7 +2484,7 @@ module Aws::AppConfig
2474
2484
  req.send_request(options)
2475
2485
  end
2476
2486
 
2477
- # Lists all custom and Amazon Web Services-authored AppConfig extensions
2487
+ # Lists all custom and Amazon Web Services authored AppConfig extensions
2478
2488
  # in the account. For more information about extensions, see [Working
2479
2489
  # with AppConfig extensions][1] in the *AppConfig User Guide*.
2480
2490
  #
@@ -2674,6 +2684,11 @@ module Aws::AppConfig
2674
2684
  # categorize your AppConfig resources. Each tag consists of a key and an
2675
2685
  # optional value, both of which you define.
2676
2686
  #
2687
+ # @option params [String] :kms_key_identifier
2688
+ # The KMS key identifier (key ID, key alias, or key ARN). AppConfig uses
2689
+ # this ID to encrypt the configuration data using a customer managed
2690
+ # key.
2691
+ #
2677
2692
  # @return [Types::Deployment] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2678
2693
  #
2679
2694
  # * {Types::Deployment#application_id #application_id} => String
@@ -2695,6 +2710,8 @@ module Aws::AppConfig
2695
2710
  # * {Types::Deployment#started_at #started_at} => Time
2696
2711
  # * {Types::Deployment#completed_at #completed_at} => Time
2697
2712
  # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
2713
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
2714
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
2698
2715
  #
2699
2716
  #
2700
2717
  # @example Example: To start a configuration deployment
@@ -2752,6 +2769,7 @@ module Aws::AppConfig
2752
2769
  # tags: {
2753
2770
  # "TagKey" => "TagValue",
2754
2771
  # },
2772
+ # kms_key_identifier: "Identifier",
2755
2773
  # })
2756
2774
  #
2757
2775
  # @example Response structure
@@ -2792,6 +2810,8 @@ module Aws::AppConfig
2792
2810
  # resp.applied_extensions[0].version_number #=> Integer
2793
2811
  # resp.applied_extensions[0].parameters #=> Hash
2794
2812
  # resp.applied_extensions[0].parameters["Name"] #=> String
2813
+ # resp.kms_key_arn #=> String
2814
+ # resp.kms_key_identifier #=> String
2795
2815
  #
2796
2816
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StartDeployment AWS API Documentation
2797
2817
  #
@@ -2836,6 +2856,8 @@ module Aws::AppConfig
2836
2856
  # * {Types::Deployment#started_at #started_at} => Time
2837
2857
  # * {Types::Deployment#completed_at #completed_at} => Time
2838
2858
  # * {Types::Deployment#applied_extensions #applied_extensions} => Array&lt;Types::AppliedExtension&gt;
2859
+ # * {Types::Deployment#kms_key_arn #kms_key_arn} => String
2860
+ # * {Types::Deployment#kms_key_identifier #kms_key_identifier} => String
2839
2861
  #
2840
2862
  #
2841
2863
  # @example Example: To stop configuration deployment
@@ -2903,6 +2925,8 @@ module Aws::AppConfig
2903
2925
  # resp.applied_extensions[0].version_number #=> Integer
2904
2926
  # resp.applied_extensions[0].parameters #=> Hash
2905
2927
  # resp.applied_extensions[0].parameters["Name"] #=> String
2928
+ # resp.kms_key_arn #=> String
2929
+ # resp.kms_key_identifier #=> String
2906
2930
  #
2907
2931
  # @see http://docs.aws.amazon.com/goto/WebAPI/appconfig-2019-10-09/StopDeployment AWS API Documentation
2908
2932
  #
@@ -3528,7 +3552,7 @@ module Aws::AppConfig
3528
3552
  params: params,
3529
3553
  config: config)
3530
3554
  context[:gem_name] = 'aws-sdk-appconfig'
3531
- context[:gem_version] = '1.27.0'
3555
+ context[:gem_version] = '1.29.0'
3532
3556
  Seahorse::Client::Request.new(handlers, context)
3533
3557
  end
3534
3558
 
@@ -343,6 +343,8 @@ module Aws::AppConfig
343
343
  Deployment.add_member(:started_at, Shapes::ShapeRef.new(shape: Iso8601DateTime, location_name: "StartedAt"))
344
344
  Deployment.add_member(:completed_at, Shapes::ShapeRef.new(shape: Iso8601DateTime, location_name: "CompletedAt"))
345
345
  Deployment.add_member(:applied_extensions, Shapes::ShapeRef.new(shape: AppliedExtensions, location_name: "AppliedExtensions"))
346
+ Deployment.add_member(:kms_key_arn, Shapes::ShapeRef.new(shape: Arn, location_name: "KmsKeyArn"))
347
+ Deployment.add_member(:kms_key_identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "KmsKeyIdentifier"))
346
348
  Deployment.struct_class = Types::Deployment
347
349
 
348
350
  DeploymentEvent.add_member(:event_type, Shapes::ShapeRef.new(shape: DeploymentEventType, location_name: "EventType"))
@@ -602,6 +604,7 @@ module Aws::AppConfig
602
604
  StartDeploymentRequest.add_member(:configuration_version, Shapes::ShapeRef.new(shape: Version, required: true, location_name: "ConfigurationVersion"))
603
605
  StartDeploymentRequest.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
604
606
  StartDeploymentRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
607
+ StartDeploymentRequest.add_member(:kms_key_identifier, Shapes::ShapeRef.new(shape: Identifier, location_name: "KmsKeyIdentifier"))
605
608
  StartDeploymentRequest.struct_class = Types::StartDeploymentRequest
606
609
 
607
610
  StopDeploymentRequest.add_member(:application_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "ApplicationId"))
@@ -50,6 +50,9 @@ module Aws::AppConfig
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,112 +9,49 @@
9
9
 
10
10
  module Aws::AppConfig
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://appconfig-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
+ if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-east-1")
36
+ return Aws::Endpoints::Endpoint.new(url: "https://appconfig.us-gov-east-1.amazonaws.com", headers: {}, properties: {})
37
+ end
38
+ if Aws::Endpoints::Matchers.string_equals?(region, "us-gov-west-1")
39
+ return Aws::Endpoints::Endpoint.new(url: "https://appconfig.us-gov-west-1.amazonaws.com", headers: {}, properties: {})
40
+ end
41
+ return Aws::Endpoints::Endpoint.new(url: "https://appconfig-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
42
+ end
43
+ raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
44
+ end
45
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
46
+ if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
47
+ return Aws::Endpoints::Endpoint.new(url: "https://appconfig.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
48
+ end
49
+ raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
50
+ end
51
+ return Aws::Endpoints::Endpoint.new(url: "https://appconfig.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
21
52
  end
22
- @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
- end
53
+ raise ArgumentError, 'No endpoint could be resolved'
24
54
 
25
- def resolve_endpoint(parameters)
26
- @provider.resolve_endpoint(parameters)
27
55
  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
- dCI6eyJ1cmwiOiJodHRwczovL2FwcGNvbmZpZy1maXBzLntSZWdpb259LntQ
77
- YXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRp
78
- ZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJj
79
- b25kaXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGFuZCBEdWFsU3RhY2sgYXJl
80
- IGVuYWJsZWQsIGJ1dCB0aGlzIHBhcnRpdGlvbiBkb2VzIG5vdCBzdXBwb3J0
81
- IG9uZSBvciBib3RoIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMi
82
- Olt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUZJ
83
- UFMifSx0cnVlXX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25kaXRp
84
- b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZu
85
- IjoiZ2V0QXR0ciIsImFyZ3YiOlt7InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9
86
- LCJzdXBwb3J0c0ZJUFMiXX1dfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7
87
- ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIsInJ1bGVzIjpbeyJjb25k
88
- aXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIsImFyZ3YiOlt7InJlZiI6
89
- IlJlZ2lvbiJ9LCJ1cy1nb3Ytd2VzdC0xIl19XSwiZW5kcG9pbnQiOnsidXJs
90
- IjoiaHR0cHM6Ly9hcHBjb25maWcudXMtZ292LXdlc3QtMS5hbWF6b25hd3Mu
91
- Y29tIiwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlwZSI6ImVu
92
- ZHBvaW50In0seyJjb25kaXRpb25zIjpbeyJmbiI6InN0cmluZ0VxdWFscyIs
93
- ImFyZ3YiOlt7InJlZiI6IlJlZ2lvbiJ9LCJ1cy1nb3YtZWFzdC0xIl19XSwi
94
- ZW5kcG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9hcHBjb25maWcudXMtZ292LWVh
95
- c3QtMS5hbWF6b25hd3MuY29tIiwicHJvcGVydGllcyI6e30sImhlYWRlcnMi
96
- Ont9fSwidHlwZSI6ImVuZHBvaW50In0seyJjb25kaXRpb25zIjpbXSwiZW5k
97
- cG9pbnQiOnsidXJsIjoiaHR0cHM6Ly9hcHBjb25maWctZmlwcy57UmVnaW9u
98
- fS57UGFydGl0aW9uUmVzdWx0I2Ruc1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7
99
- fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19XX0seyJjb25k
100
- aXRpb25zIjpbXSwiZXJyb3IiOiJGSVBTIGlzIGVuYWJsZWQgYnV0IHRoaXMg
101
- cGFydGl0aW9uIGRvZXMgbm90IHN1cHBvcnQgRklQUyIsInR5cGUiOiJlcnJv
102
- ciJ9XX0seyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJh
103
- cmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJ0eXBlIjoi
104
- dHJlZSIsInJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5F
105
- cXVhbHMiLCJhcmd2IjpbdHJ1ZSx7ImZuIjoiZ2V0QXR0ciIsImFyZ3YiOlt7
106
- InJlZiI6IlBhcnRpdGlvblJlc3VsdCJ9LCJzdXBwb3J0c0R1YWxTdGFjayJd
107
- fV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6W10s
108
- ImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vYXBwY29uZmlnLntSZWdpb259
109
- LntQYXJ0aXRpb25SZXN1bHQjZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3Bl
110
- cnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0s
111
- eyJjb25kaXRpb25zIjpbXSwiZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxl
112
- ZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3Rh
113
- Y2siLCJ0eXBlIjoiZXJyb3IifV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBv
114
- aW50Ijp7InVybCI6Imh0dHBzOi8vYXBwY29uZmlnLntSZWdpb259LntQYXJ0
115
- aXRpb25SZXN1bHQjZG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFk
116
- ZXJzIjp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX1dfQ==
117
-
118
- JSON
119
56
  end
120
57
  end