aws-sdk-core 3.122.1 → 3.125.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 +4 -4
- data/CHANGELOG.md +19 -0
- data/VERSION +1 -1
- data/lib/aws-defaults/default_configuration.rb +153 -0
- data/lib/aws-defaults/defaults_mode_config_resolver.rb +107 -0
- data/lib/aws-defaults.rb +3 -0
- data/lib/aws-sdk-core/plugins/credentials_configuration.rb +3 -1
- data/lib/aws-sdk-core/plugins/defaults_mode.rb +40 -0
- data/lib/aws-sdk-core/plugins/retry_errors.rb +9 -3
- data/lib/aws-sdk-core/shared_config.rb +2 -1
- data/lib/aws-sdk-core.rb +3 -0
- data/lib/aws-sdk-sso/client.rb +14 -3
- data/lib/aws-sdk-sso.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +84 -112
- data/lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb +5 -1
- data/lib/aws-sdk-sts/types.rb +33 -23
- data/lib/aws-sdk-sts.rb +1 -1
- data/lib/seahorse/client/net_http/connection_pool.rb +7 -0
- data/lib/seahorse/client/plugins/net_http.rb +33 -2
- metadata +6 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: def152a91149637981ad2822c07522bf7362d6ac6a654c8debbcd218e40dad54
         | 
| 4 | 
            +
              data.tar.gz: 79c65b3a466afca388f13f70ad0f4d2b9d6bba431cc5bd62b631d1c0ca538189
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f93f49d7f0dbc42c84db54f5b586cc95867cfe9f69769e0b8b766ddfe26c4a6854b53e34a9ff51b4ffc28190a4629e4473893d43406eaf29c251c5dfb346b3c9
         | 
| 7 | 
            +
              data.tar.gz: b4c3131c2940c25ac868df96d1aa0bcce525aa26b2ee1a233113628533a51f47d39d49cc40878c14c0368399dbc9f51d7ccaec524f53e56a24d909fd20ac1017
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,6 +1,25 @@ | |
| 1 1 | 
             
            Unreleased Changes
         | 
| 2 2 | 
             
            ------------------
         | 
| 3 3 |  | 
| 4 | 
            +
            3.125.0 (2021-12-21)
         | 
| 5 | 
            +
            ------------------
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Feature - Updated Aws::SSO::Client with the latest API changes.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            * Feature - Add `:defaults_mode` configuration - that determines how certain default configuration options are resolved in the SDK.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            3.124.0 (2021-11-30)
         | 
| 12 | 
            +
            ------------------
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Feature - Updated Aws::STS::Client with the latest API changes.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            * Feature - Updated Aws::SSO::Client with the latest API changes.
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            3.123.0 (2021-11-23)
         | 
| 19 | 
            +
            ------------------
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            * Feature - Updated Aws::STS::Client with the latest API changes.
         | 
| 22 | 
            +
             | 
| 4 23 | 
             
            3.122.1 (2021-11-09)
         | 
| 5 24 | 
             
            ------------------
         | 
| 6 25 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            3. | 
| 1 | 
            +
            3.125.0
         | 
| @@ -0,0 +1,153 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require_relative 'defaults_mode_config_resolver'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Aws
         | 
| 6 | 
            +
             | 
| 7 | 
            +
              # A defaults mode determines how certain default configuration options are resolved in the SDK.
         | 
| 8 | 
            +
              #
         | 
| 9 | 
            +
              # *Note*: For any mode other than `'legacy'` the vended default values might change as best practices may
         | 
| 10 | 
            +
              # evolve. As a result, it is encouraged to perform testing when upgrading the SDK if you are using a mode other than
         | 
| 11 | 
            +
              # `'legacy'`.  While the `'legacy'` defaults mode is specific to Ruby,
         | 
| 12 | 
            +
              # other modes are standardized across all of the AWS SDKs.
         | 
| 13 | 
            +
              #
         | 
| 14 | 
            +
              #  The defaults mode can be configured:
         | 
| 15 | 
            +
              #
         | 
| 16 | 
            +
              #  * Directly on a client via `:defaults_mode`
         | 
| 17 | 
            +
              #
         | 
| 18 | 
            +
              #  * On a configuration profile via the "defaults_mode" profile file property.
         | 
| 19 | 
            +
              #
         | 
| 20 | 
            +
              #  * Globally via the "AWS_DEFAULTS_MODE" environment variable.
         | 
| 21 | 
            +
              #
         | 
| 22 | 
            +
              #
         | 
| 23 | 
            +
              # @code_generation START - documentation
         | 
| 24 | 
            +
              # The following `:default_mode` values are supported:
         | 
| 25 | 
            +
              #
         | 
| 26 | 
            +
              # * `'standard'` -
         | 
| 27 | 
            +
              #   The STANDARD mode provides the latest recommended default values
         | 
| 28 | 
            +
              #   that should be safe to run in most scenarios
         | 
| 29 | 
            +
              #
         | 
| 30 | 
            +
              #   Note that the default values vended from this mode might change as
         | 
| 31 | 
            +
              #   best practices may evolve. As a result, it is encouraged to perform
         | 
| 32 | 
            +
              #   tests when upgrading the SDK
         | 
| 33 | 
            +
              #
         | 
| 34 | 
            +
              # * `'in-region'` -
         | 
| 35 | 
            +
              #   The IN\_REGION mode builds on the standard mode and includes
         | 
| 36 | 
            +
              #   optimization tailored for applications which call AWS services from
         | 
| 37 | 
            +
              #   within the same AWS region
         | 
| 38 | 
            +
              #
         | 
| 39 | 
            +
              #   Note that the default values vended from this mode might change as
         | 
| 40 | 
            +
              #   best practices may evolve. As a result, it is encouraged to perform
         | 
| 41 | 
            +
              #   tests when upgrading the SDK
         | 
| 42 | 
            +
              #
         | 
| 43 | 
            +
              # * `'cross-region'` -
         | 
| 44 | 
            +
              #   The CROSS\_REGION mode builds on the standard mode and includes
         | 
| 45 | 
            +
              #   optimization tailored for applications which call AWS services in a
         | 
| 46 | 
            +
              #   different region
         | 
| 47 | 
            +
              #
         | 
| 48 | 
            +
              #   Note that the default values vended from this mode might change as
         | 
| 49 | 
            +
              #   best practices may evolve. As a result, it is encouraged to perform
         | 
| 50 | 
            +
              #   tests when upgrading the SDK
         | 
| 51 | 
            +
              #
         | 
| 52 | 
            +
              # * `'mobile'` -
         | 
| 53 | 
            +
              #   The MOBILE mode builds on the standard mode and includes
         | 
| 54 | 
            +
              #   optimization tailored for mobile applications
         | 
| 55 | 
            +
              #
         | 
| 56 | 
            +
              #   Note that the default values vended from this mode might change as
         | 
| 57 | 
            +
              #   best practices may evolve. As a result, it is encouraged to perform
         | 
| 58 | 
            +
              #   tests when upgrading the SDK
         | 
| 59 | 
            +
              #
         | 
| 60 | 
            +
              # * `'auto'` -
         | 
| 61 | 
            +
              #   The AUTO mode is an experimental mode that builds on the standard
         | 
| 62 | 
            +
              #   mode. The SDK will attempt to discover the execution environment to
         | 
| 63 | 
            +
              #   determine the appropriate settings automatically.
         | 
| 64 | 
            +
              #
         | 
| 65 | 
            +
              #   Note that the auto detection is heuristics-based and does not
         | 
| 66 | 
            +
              #   guarantee 100% accuracy. STANDARD mode will be used if the execution
         | 
| 67 | 
            +
              #   environment cannot be determined. The auto detection might query
         | 
| 68 | 
            +
              #   [EC2 Instance Metadata service][1], which might introduce latency.
         | 
| 69 | 
            +
              #   Therefore we recommend choosing an explicit defaults\_mode instead
         | 
| 70 | 
            +
              #   if startup latency is critical to your application
         | 
| 71 | 
            +
              #
         | 
| 72 | 
            +
              # * `'legacy'` -
         | 
| 73 | 
            +
              #   The LEGACY mode provides default settings that vary per SDK and were
         | 
| 74 | 
            +
              #   used prior to establishment of defaults\_mode
         | 
| 75 | 
            +
              #
         | 
| 76 | 
            +
              # Based on the provided mode, the SDK will vend sensible default values
         | 
| 77 | 
            +
              # tailored to the mode for the following settings:
         | 
| 78 | 
            +
              #
         | 
| 79 | 
            +
              # * `:retry_mode` -
         | 
| 80 | 
            +
              #   A retry mode specifies how the SDK attempts retries. See [Retry
         | 
| 81 | 
            +
              #   Mode][2]
         | 
| 82 | 
            +
              #
         | 
| 83 | 
            +
              # * `:sts_regional_endpoints` -
         | 
| 84 | 
            +
              #   Specifies how the SDK determines the AWS service endpoint that it
         | 
| 85 | 
            +
              #   uses to talk to the AWS Security Token Service (AWS STS). See
         | 
| 86 | 
            +
              #   [Setting STS Regional endpoints][3]
         | 
| 87 | 
            +
              #
         | 
| 88 | 
            +
              # * `:s3_us_east_1_regional_endpoint` -
         | 
| 89 | 
            +
              #   Specifies how the SDK determines the AWS service endpoint that it
         | 
| 90 | 
            +
              #   uses to talk to the Amazon S3 for the us-east-1 region
         | 
| 91 | 
            +
              #
         | 
| 92 | 
            +
              # * `:http_open_timeout` -
         | 
| 93 | 
            +
              #   The amount of time after making an initial connection attempt on a
         | 
| 94 | 
            +
              #   socket, where if the client does not receive a completion of the
         | 
| 95 | 
            +
              #   connect handshake, the client gives up and fails the operation
         | 
| 96 | 
            +
              #
         | 
| 97 | 
            +
              # * `:ssl_timeout` -
         | 
| 98 | 
            +
              #   The maximum amount of time that a TLS handshake is allowed to take
         | 
| 99 | 
            +
              #   from the time the CLIENT HELLO message is sent to ethe time the
         | 
| 100 | 
            +
              #   client and server have fully negotiated ciphers and exchanged keys
         | 
| 101 | 
            +
              #
         | 
| 102 | 
            +
              #  All options above can be configured by users, and the overridden value will take precedence.
         | 
| 103 | 
            +
              #
         | 
| 104 | 
            +
              # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
         | 
| 105 | 
            +
              # [2]: https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-retry_mode.html
         | 
| 106 | 
            +
              # [3]: https://docs.aws.amazon.com/sdkref/latest/guide/setting-global-sts_regional_endpoints.html
         | 
| 107 | 
            +
              #
         | 
| 108 | 
            +
              # @code_generation END - documentation
         | 
| 109 | 
            +
              module DefaultsModeConfiguration
         | 
| 110 | 
            +
                # @api private
         | 
| 111 | 
            +
                # @code_generation START - configuration
         | 
| 112 | 
            +
                SDK_DEFAULT_CONFIGURATION = 
         | 
| 113 | 
            +
                {
         | 
| 114 | 
            +
                  "version" => 1,
         | 
| 115 | 
            +
                  "base" => {
         | 
| 116 | 
            +
                    "retryMode" => "standard",
         | 
| 117 | 
            +
                    "stsRegionalEndpoints" => "regional",
         | 
| 118 | 
            +
                    "s3UsEast1RegionalEndpoints" => "regional",
         | 
| 119 | 
            +
                    "connectTimeoutInMillis" => 1100,
         | 
| 120 | 
            +
                    "tlsNegotiationTimeoutInMillis" => 1100
         | 
| 121 | 
            +
                  },
         | 
| 122 | 
            +
                  "modes" => {
         | 
| 123 | 
            +
                    "standard" => {
         | 
| 124 | 
            +
                      "connectTimeoutInMillis" => {
         | 
| 125 | 
            +
                        "override" => 3100
         | 
| 126 | 
            +
                      },
         | 
| 127 | 
            +
                      "tlsNegotiationTimeoutInMillis" => {
         | 
| 128 | 
            +
                        "override" => 3100
         | 
| 129 | 
            +
                      }
         | 
| 130 | 
            +
                    },
         | 
| 131 | 
            +
                    "in-region" => {
         | 
| 132 | 
            +
                    },
         | 
| 133 | 
            +
                    "cross-region" => {
         | 
| 134 | 
            +
                      "connectTimeoutInMillis" => {
         | 
| 135 | 
            +
                        "override" => 3100
         | 
| 136 | 
            +
                      },
         | 
| 137 | 
            +
                      "tlsNegotiationTimeoutInMillis" => {
         | 
| 138 | 
            +
                        "override" => 3100
         | 
| 139 | 
            +
                      }
         | 
| 140 | 
            +
                    },
         | 
| 141 | 
            +
                    "mobile" => {
         | 
| 142 | 
            +
                      "connectTimeoutInMillis" => {
         | 
| 143 | 
            +
                        "override" => 30000
         | 
| 144 | 
            +
                      },
         | 
| 145 | 
            +
                      "tlsNegotiationTimeoutInMillis" => {
         | 
| 146 | 
            +
                        "override" => 30000
         | 
| 147 | 
            +
                      }
         | 
| 148 | 
            +
                    }
         | 
| 149 | 
            +
                  }
         | 
| 150 | 
            +
                }
         | 
| 151 | 
            +
                # @code_generation END - configuration
         | 
| 152 | 
            +
              end
         | 
| 153 | 
            +
            end
         | 
| @@ -0,0 +1,107 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Aws
         | 
| 4 | 
            +
              #@api private
         | 
| 5 | 
            +
              class DefaultsModeConfigResolver
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                @@application_region = nil
         | 
| 8 | 
            +
                @@application_region_mutex = Mutex.new
         | 
| 9 | 
            +
                @@imds_client = EC2Metadata.new(retries: 0, http_open_timeout: 0.01)
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                # mappings from Ruby SDK configuration names to the
         | 
| 12 | 
            +
                # sdk defaults option names and (optional) scale modifiers
         | 
| 13 | 
            +
                CFG_OPTIONS = {
         | 
| 14 | 
            +
                  retry_mode: { name: "retryMode" },
         | 
| 15 | 
            +
                  sts_regional_endpoints: { name: "stsRegionalEndpoints" },
         | 
| 16 | 
            +
                  s3_us_east_1_regional_endpoint: { name: "s3UsEast1RegionalEndpoints" },
         | 
| 17 | 
            +
                  http_open_timeout: { name: "connectTimeoutInMillis", scale: 0.001 },
         | 
| 18 | 
            +
                  http_read_timeout: { name: "timeToFirstByteTimeoutInMillis", scale: 0.001 },
         | 
| 19 | 
            +
                  ssl_timeout: { name: "tlsNegotiationTimeoutInMillis", scale: 0.001 }
         | 
| 20 | 
            +
                }.freeze
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def initialize(sdk_defaults, cfg)
         | 
| 23 | 
            +
                  @sdk_defaults = sdk_defaults
         | 
| 24 | 
            +
                  @cfg = cfg
         | 
| 25 | 
            +
                  @resolved_mode = nil
         | 
| 26 | 
            +
                  @mutex = Mutex.new
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                # option_name should be the symbolized ruby name to resolve
         | 
| 30 | 
            +
                # returns the ruby appropriate value or nil if none are resolved
         | 
| 31 | 
            +
                def resolve(option_name)
         | 
| 32 | 
            +
                  return unless (std_option = CFG_OPTIONS[option_name])
         | 
| 33 | 
            +
                  mode = resolved_mode.downcase
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  return nil if mode == 'legacy'
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  value = resolve_for_mode(std_option[:name], mode)
         | 
| 38 | 
            +
                  value = value * std_option[:scale] if value && std_option[:scale]
         | 
| 39 | 
            +
             | 
| 40 | 
            +
                  value
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                private
         | 
| 44 | 
            +
                def resolved_mode
         | 
| 45 | 
            +
                  @mutex.synchronize do
         | 
| 46 | 
            +
                    return @resolved_mode unless @resolved_mode.nil?
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                    @resolved_mode = @cfg.defaults_mode == 'auto' ? resolve_auto_mode : @cfg.defaults_mode
         | 
| 49 | 
            +
                  end
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                def resolve_auto_mode
         | 
| 53 | 
            +
                  return "mobile" if env_mobile?
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                  region = application_current_region
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  if region
         | 
| 58 | 
            +
                    @cfg.region == region ? "in-region": "cross-region"
         | 
| 59 | 
            +
                  else
         | 
| 60 | 
            +
                    # We don't seem to be mobile, and we couldn't determine whether we're running within an AWS region. Fall back to standard.
         | 
| 61 | 
            +
                    'standard'
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                def application_current_region
         | 
| 66 | 
            +
                  resolved_region = @@application_region_mutex.synchronize do
         | 
| 67 | 
            +
                    return @@application_region unless @@application_region.nil?
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                    region = nil
         | 
| 70 | 
            +
                    if ENV['AWS_EXECUTION_ENV']
         | 
| 71 | 
            +
                      region = ENV['AWS_REGION'] || ENV['AWS_DEFAULT_REGION']
         | 
| 72 | 
            +
                    end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    if region.nil? && ENV['AWS_EC2_METADATA_DISABLED']&.downcase != "true"
         | 
| 75 | 
            +
                      begin
         | 
| 76 | 
            +
                        region = @@imds_client.get('/latest/meta-data/placement/region')
         | 
| 77 | 
            +
                      rescue
         | 
| 78 | 
            +
                        # unable to get region, leave it unset
         | 
| 79 | 
            +
                      end
         | 
| 80 | 
            +
                    end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                    # required so that we cache the unknown/nil result
         | 
| 83 | 
            +
                    @@application_region = region || :unknown
         | 
| 84 | 
            +
                  end
         | 
| 85 | 
            +
                  resolved_region == :unknown ? nil : resolved_region
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                def resolve_for_mode(name, mode)
         | 
| 89 | 
            +
                  base_value = @sdk_defaults['base'][name]
         | 
| 90 | 
            +
                  mode_value = @sdk_defaults['modes'].fetch(mode, {})[name]
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  if mode_value.nil?
         | 
| 93 | 
            +
                    return base_value
         | 
| 94 | 
            +
                  end
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                  return mode_value['override'] unless mode_value['override'].nil?
         | 
| 97 | 
            +
                  return base_value + mode_value['add'] unless mode_value['add'].nil?
         | 
| 98 | 
            +
                  return base_value * mode_value['multiply'] unless mode_value['multiply'].nil?
         | 
| 99 | 
            +
                  return base_value
         | 
| 100 | 
            +
                end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                def env_mobile?
         | 
| 103 | 
            +
                  false
         | 
| 104 | 
            +
                end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
              end
         | 
| 107 | 
            +
            end
         | 
    
        data/lib/aws-defaults.rb
    ADDED
    
    
| @@ -64,7 +64,9 @@ locations will be searched for credentials: | |
| 64 64 | 
             
            * EC2/ECS IMDS instance profile - When used by default, the timeouts
         | 
| 65 65 | 
             
              are very aggressive. Construct and pass an instance of
         | 
| 66 66 | 
             
              `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
         | 
| 67 | 
            -
              enable retries and extended timeouts.
         | 
| 67 | 
            +
              enable retries and extended timeouts. Instance profile credential
         | 
| 68 | 
            +
              fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
         | 
| 69 | 
            +
              to true.
         | 
| 68 70 | 
             
                    DOCS
         | 
| 69 71 | 
             
                  ) do |config|
         | 
| 70 72 | 
             
                    CredentialProviderChain.new(config).resolve
         | 
| @@ -0,0 +1,40 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Aws
         | 
| 4 | 
            +
              # @api private
         | 
| 5 | 
            +
              module Plugins
         | 
| 6 | 
            +
                # @api private
         | 
| 7 | 
            +
                class DefaultsMode < Seahorse::Client::Plugin
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  option(:defaults_mode,
         | 
| 10 | 
            +
                         default: 'legacy',
         | 
| 11 | 
            +
                         doc_type: String,
         | 
| 12 | 
            +
                         docstring: <<-DOCS
         | 
| 13 | 
            +
            See {Aws::DefaultsModeConfiguration} for a list of the 
         | 
| 14 | 
            +
            accepted modes and the configuration defaults that are included.
         | 
| 15 | 
            +
                  DOCS
         | 
| 16 | 
            +
                  ) do |cfg|
         | 
| 17 | 
            +
                    resolve_defaults_mode(cfg)
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  option(:defaults_mode_config_resolver,
         | 
| 21 | 
            +
                         doc_type: 'Aws::DefaultsModeConfigResolver') do |cfg|
         | 
| 22 | 
            +
                    Aws::DefaultsModeConfigResolver.new(
         | 
| 23 | 
            +
                      Aws::DefaultsModeConfiguration::SDK_DEFAULT_CONFIGURATION, cfg)
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  class << self
         | 
| 27 | 
            +
                    private
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    def resolve_defaults_mode(cfg)
         | 
| 30 | 
            +
                      value = ENV['AWS_DEFAULTS_MODE']
         | 
| 31 | 
            +
                      value ||= Aws.shared_config.defaults_mode(
         | 
| 32 | 
            +
                        profile: cfg.profile
         | 
| 33 | 
            +
                      )
         | 
| 34 | 
            +
                      value&.downcase || "legacy"
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
              end
         | 
| 40 | 
            +
            end
         | 
| @@ -163,9 +163,15 @@ a clock skew correction and retry requests with skewed client clocks. | |
| 163 163 | 
             
                  option(:clock_skew) { Retries::ClockSkew.new }
         | 
| 164 164 |  | 
| 165 165 | 
             
                  def self.resolve_retry_mode(cfg)
         | 
| 166 | 
            -
                     | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 166 | 
            +
                    default_mode_value =
         | 
| 167 | 
            +
                      if cfg.respond_to?(:defaults_mode_config_resolver)
         | 
| 168 | 
            +
                        cfg.defaults_mode_config_resolver.resolve(:retry_mode)
         | 
| 169 | 
            +
                      end
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                      value = ENV['AWS_RETRY_MODE'] ||
         | 
| 172 | 
            +
                              Aws.shared_config.retry_mode(profile: cfg.profile) ||
         | 
| 173 | 
            +
                              default_mode_value ||
         | 
| 174 | 
            +
                              'legacy'
         | 
| 169 175 | 
             
                    # Raise if provided value is not one of the retry modes
         | 
| 170 176 | 
             
                    if value != 'legacy' && value != 'standard' && value != 'adaptive'
         | 
| 171 177 | 
             
                      raise ArgumentError,
         | 
    
        data/lib/aws-sdk-core.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-sso/client.rb
    CHANGED
    
    | @@ -27,6 +27,7 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb' | |
| 27 27 | 
             
            require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
         | 
| 28 28 | 
             
            require 'aws-sdk-core/plugins/transfer_encoding.rb'
         | 
| 29 29 | 
             
            require 'aws-sdk-core/plugins/http_checksum.rb'
         | 
| 30 | 
            +
            require 'aws-sdk-core/plugins/defaults_mode.rb'
         | 
| 30 31 | 
             
            require 'aws-sdk-core/plugins/signature_v4.rb'
         | 
| 31 32 | 
             
            require 'aws-sdk-core/plugins/protocols/rest_json.rb'
         | 
| 32 33 |  | 
| @@ -73,6 +74,7 @@ module Aws::SSO | |
| 73 74 | 
             
                add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
         | 
| 74 75 | 
             
                add_plugin(Aws::Plugins::TransferEncoding)
         | 
| 75 76 | 
             
                add_plugin(Aws::Plugins::HttpChecksum)
         | 
| 77 | 
            +
                add_plugin(Aws::Plugins::DefaultsMode)
         | 
| 76 78 | 
             
                add_plugin(Aws::Plugins::SignatureV4)
         | 
| 77 79 | 
             
                add_plugin(Aws::Plugins::Protocols::RestJson)
         | 
| 78 80 |  | 
| @@ -119,7 +121,9 @@ module Aws::SSO | |
| 119 121 | 
             
                #     * EC2/ECS IMDS instance profile - When used by default, the timeouts
         | 
| 120 122 | 
             
                #       are very aggressive. Construct and pass an instance of
         | 
| 121 123 | 
             
                #       `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
         | 
| 122 | 
            -
                #       enable retries and extended timeouts.
         | 
| 124 | 
            +
                #       enable retries and extended timeouts. Instance profile credential
         | 
| 125 | 
            +
                #       fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
         | 
| 126 | 
            +
                #       to true.
         | 
| 123 127 | 
             
                #
         | 
| 124 128 | 
             
                #   @option options [required, String] :region
         | 
| 125 129 | 
             
                #     The AWS region to connect to.  The configured `:region` is
         | 
| @@ -173,6 +177,10 @@ module Aws::SSO | |
| 173 177 | 
             
                #     Used only in `standard` and adaptive retry modes. Specifies whether to apply
         | 
| 174 178 | 
             
                #     a clock skew correction and retry requests with skewed client clocks.
         | 
| 175 179 | 
             
                #
         | 
| 180 | 
            +
                #   @option options [String] :defaults_mode ("legacy")
         | 
| 181 | 
            +
                #     See {Aws::DefaultsModeConfiguration} for a list of the
         | 
| 182 | 
            +
                #     accepted modes and the configuration defaults that are included.
         | 
| 183 | 
            +
                #
         | 
| 176 184 | 
             
                #   @option options [Boolean] :disable_host_prefix_injection (false)
         | 
| 177 185 | 
             
                #     Set to true to disable SDK automatically adding host prefix
         | 
| 178 186 | 
             
                #     to default service endpoint when available.
         | 
| @@ -295,7 +303,7 @@ module Aws::SSO | |
| 295 303 | 
             
                #     seconds to wait when opening a HTTP session before raising a
         | 
| 296 304 | 
             
                #     `Timeout::Error`.
         | 
| 297 305 | 
             
                #
         | 
| 298 | 
            -
                #   @option options [ | 
| 306 | 
            +
                #   @option options [Float] :http_read_timeout (60) The default
         | 
| 299 307 | 
             
                #     number of seconds to wait for response data.  This value can
         | 
| 300 308 | 
             
                #     safely be set per-request on the session.
         | 
| 301 309 | 
             
                #
         | 
| @@ -311,6 +319,9 @@ module Aws::SSO | |
| 311 319 | 
             
                #     disables this behaviour.  This value can safely be set per
         | 
| 312 320 | 
             
                #     request on the session.
         | 
| 313 321 | 
             
                #
         | 
| 322 | 
            +
                #   @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
         | 
| 323 | 
            +
                #     in seconds.
         | 
| 324 | 
            +
                #
         | 
| 314 325 | 
             
                #   @option options [Boolean] :http_wire_trace (false) When `true`,
         | 
| 315 326 | 
             
                #     HTTP debug output will be sent to the `:logger`.
         | 
| 316 327 | 
             
                #
         | 
| @@ -530,7 +541,7 @@ module Aws::SSO | |
| 530 541 | 
             
                    params: params,
         | 
| 531 542 | 
             
                    config: config)
         | 
| 532 543 | 
             
                  context[:gem_name] = 'aws-sdk-core'
         | 
| 533 | 
            -
                  context[:gem_version] = '3. | 
| 544 | 
            +
                  context[:gem_version] = '3.125.0'
         | 
| 534 545 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 535 546 | 
             
                end
         | 
| 536 547 |  | 
    
        data/lib/aws-sdk-sso.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-sts/client.rb
    CHANGED
    
    | @@ -27,6 +27,7 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb' | |
| 27 27 | 
             
            require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
         | 
| 28 28 | 
             
            require 'aws-sdk-core/plugins/transfer_encoding.rb'
         | 
| 29 29 | 
             
            require 'aws-sdk-core/plugins/http_checksum.rb'
         | 
| 30 | 
            +
            require 'aws-sdk-core/plugins/defaults_mode.rb'
         | 
| 30 31 | 
             
            require 'aws-sdk-core/plugins/signature_v4.rb'
         | 
| 31 32 | 
             
            require 'aws-sdk-core/plugins/protocols/query.rb'
         | 
| 32 33 | 
             
            require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
         | 
| @@ -74,6 +75,7 @@ module Aws::STS | |
| 74 75 | 
             
                add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
         | 
| 75 76 | 
             
                add_plugin(Aws::Plugins::TransferEncoding)
         | 
| 76 77 | 
             
                add_plugin(Aws::Plugins::HttpChecksum)
         | 
| 78 | 
            +
                add_plugin(Aws::Plugins::DefaultsMode)
         | 
| 77 79 | 
             
                add_plugin(Aws::Plugins::SignatureV4)
         | 
| 78 80 | 
             
                add_plugin(Aws::Plugins::Protocols::Query)
         | 
| 79 81 | 
             
                add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
         | 
| @@ -121,7 +123,9 @@ module Aws::STS | |
| 121 123 | 
             
                #     * EC2/ECS IMDS instance profile - When used by default, the timeouts
         | 
| 122 124 | 
             
                #       are very aggressive. Construct and pass an instance of
         | 
| 123 125 | 
             
                #       `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
         | 
| 124 | 
            -
                #       enable retries and extended timeouts.
         | 
| 126 | 
            +
                #       enable retries and extended timeouts. Instance profile credential
         | 
| 127 | 
            +
                #       fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
         | 
| 128 | 
            +
                #       to true.
         | 
| 125 129 | 
             
                #
         | 
| 126 130 | 
             
                #   @option options [required, String] :region
         | 
| 127 131 | 
             
                #     The AWS region to connect to.  The configured `:region` is
         | 
| @@ -175,6 +179,10 @@ module Aws::STS | |
| 175 179 | 
             
                #     Used only in `standard` and adaptive retry modes. Specifies whether to apply
         | 
| 176 180 | 
             
                #     a clock skew correction and retry requests with skewed client clocks.
         | 
| 177 181 | 
             
                #
         | 
| 182 | 
            +
                #   @option options [String] :defaults_mode ("legacy")
         | 
| 183 | 
            +
                #     See {Aws::DefaultsModeConfiguration} for a list of the
         | 
| 184 | 
            +
                #     accepted modes and the configuration defaults that are included.
         | 
| 185 | 
            +
                #
         | 
| 178 186 | 
             
                #   @option options [Boolean] :disable_host_prefix_injection (false)
         | 
| 179 187 | 
             
                #     Set to true to disable SDK automatically adding host prefix
         | 
| 180 188 | 
             
                #     to default service endpoint when available.
         | 
| @@ -302,7 +310,7 @@ module Aws::STS | |
| 302 310 | 
             
                #     seconds to wait when opening a HTTP session before raising a
         | 
| 303 311 | 
             
                #     `Timeout::Error`.
         | 
| 304 312 | 
             
                #
         | 
| 305 | 
            -
                #   @option options [ | 
| 313 | 
            +
                #   @option options [Float] :http_read_timeout (60) The default
         | 
| 306 314 | 
             
                #     number of seconds to wait for response data.  This value can
         | 
| 307 315 | 
             
                #     safely be set per-request on the session.
         | 
| 308 316 | 
             
                #
         | 
| @@ -318,6 +326,9 @@ module Aws::STS | |
| 318 326 | 
             
                #     disables this behaviour.  This value can safely be set per
         | 
| 319 327 | 
             
                #     request on the session.
         | 
| 320 328 | 
             
                #
         | 
| 329 | 
            +
                #   @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
         | 
| 330 | 
            +
                #     in seconds.
         | 
| 331 | 
            +
                #
         | 
| 321 332 | 
             
                #   @option options [Boolean] :http_wire_trace (false) When `true`,
         | 
| 322 333 | 
             
                #     HTTP debug output will be sent to the `:logger`.
         | 
| 323 334 | 
             
                #
         | 
| @@ -350,15 +361,15 @@ module Aws::STS | |
| 350 361 | 
             
                # `AssumeRole` within your account or for cross-account access. For a
         | 
| 351 362 | 
             
                # comparison of `AssumeRole` with other API operations that produce
         | 
| 352 363 | 
             
                # temporary credentials, see [Requesting Temporary Security
         | 
| 353 | 
            -
                # Credentials][1] and [Comparing the  | 
| 354 | 
            -
                # User Guide*.
         | 
| 364 | 
            +
                # Credentials][1] and [Comparing the Amazon Web Services STS API
         | 
| 365 | 
            +
                # operations][2] in the *IAM User Guide*.
         | 
| 355 366 | 
             
                #
         | 
| 356 367 | 
             
                # **Permissions**
         | 
| 357 368 | 
             
                #
         | 
| 358 369 | 
             
                # The temporary security credentials created by `AssumeRole` can be used
         | 
| 359 370 | 
             
                # to make API calls to any Amazon Web Services service with the
         | 
| 360 | 
            -
                # following exception: You cannot call the  | 
| 361 | 
            -
                # `GetSessionToken` API operations.
         | 
| 371 | 
            +
                # following exception: You cannot call the Amazon Web Services STS
         | 
| 372 | 
            +
                # `GetFederationToken` or `GetSessionToken` API operations.
         | 
| 362 373 | 
             
                #
         | 
| 363 374 | 
             
                # (Optional) You can pass inline or managed [session policies][3] to
         | 
| 364 375 | 
             
                # this operation. You can pass a single JSON policy document to use as
         | 
| @@ -375,28 +386,37 @@ module Aws::STS | |
| 375 386 | 
             
                # assumed. For more information, see [Session Policies][3] in the *IAM
         | 
| 376 387 | 
             
                # User Guide*.
         | 
| 377 388 | 
             
                #
         | 
| 378 | 
            -
                #  | 
| 379 | 
            -
                #  | 
| 380 | 
            -
                #  | 
| 381 | 
            -
                #  | 
| 389 | 
            +
                # When you create a role, you create two policies: A role trust policy
         | 
| 390 | 
            +
                # that specifies *who* can assume the role and a permissions policy that
         | 
| 391 | 
            +
                # specifies *what* can be done with the role. You specify the trusted
         | 
| 392 | 
            +
                # principal who is allowed to assume the role in the role trust policy.
         | 
| 393 | 
            +
                #
         | 
| 394 | 
            +
                # To assume a role from a different account, your Amazon Web Services
         | 
| 395 | 
            +
                # account must be trusted by the role. The trust relationship is defined
         | 
| 396 | 
            +
                # in the role's trust policy when the role is created. That trust
         | 
| 397 | 
            +
                # policy states which accounts are allowed to delegate that access to
         | 
| 398 | 
            +
                # users in the account.
         | 
| 382 399 | 
             
                #
         | 
| 383 400 | 
             
                # A user who wants to access a role in a different account must also
         | 
| 384 401 | 
             
                # have permissions that are delegated from the user account
         | 
| 385 402 | 
             
                # administrator. The administrator must attach a policy that allows the
         | 
| 386 403 | 
             
                # user to call `AssumeRole` for the ARN of the role in the other
         | 
| 387 | 
            -
                # account. | 
| 388 | 
            -
                # do either of the following:
         | 
| 404 | 
            +
                # account.
         | 
| 389 405 | 
             
                #
         | 
| 390 | 
            -
                #  | 
| 391 | 
            -
                # | 
| 406 | 
            +
                # To allow a user to assume a role in the same account, you can do
         | 
| 407 | 
            +
                # either of the following:
         | 
| 408 | 
            +
                #
         | 
| 409 | 
            +
                # * Attach a policy to the user that allows the user to call
         | 
| 410 | 
            +
                #   `AssumeRole` (as long as the role's trust policy trusts the
         | 
| 411 | 
            +
                #   account).
         | 
| 392 412 | 
             
                #
         | 
| 393 413 | 
             
                # * Add the user as a principal directly in the role's trust policy.
         | 
| 394 414 | 
             
                #
         | 
| 395 | 
            -
                #  | 
| 396 | 
            -
                #  | 
| 397 | 
            -
                #  | 
| 398 | 
            -
                #  | 
| 399 | 
            -
                # Guide*.
         | 
| 415 | 
            +
                # You can do either because the role’s trust policy acts as an IAM
         | 
| 416 | 
            +
                # resource-based policy. When a resource-based policy grants access to a
         | 
| 417 | 
            +
                # principal in the same account, no additional identity-based policy is
         | 
| 418 | 
            +
                # required. For more information about trust policies and resource-based
         | 
| 419 | 
            +
                # policies, see [IAM Policies][4] in the *IAM User Guide*.
         | 
| 400 420 | 
             
                #
         | 
| 401 421 | 
             
                # **Tags**
         | 
| 402 422 | 
             
                #
         | 
| @@ -538,15 +558,25 @@ module Aws::STS | |
| 538 558 | 
             
                #
         | 
| 539 559 | 
             
                # @option params [Integer] :duration_seconds
         | 
| 540 560 | 
             
                #   The duration, in seconds, of the role session. The value specified can
         | 
| 541 | 
            -
                #    | 
| 542 | 
            -
                #    | 
| 543 | 
            -
                #    | 
| 544 | 
            -
                #    | 
| 545 | 
            -
                #    | 
| 546 | 
            -
                #    | 
| 547 | 
            -
                #    | 
| 548 | 
            -
                # | 
| 549 | 
            -
                #    | 
| 561 | 
            +
                #   range from 900 seconds (15 minutes) up to the maximum session duration
         | 
| 562 | 
            +
                #   set for the role. The maximum session duration setting can have a
         | 
| 563 | 
            +
                #   value from 1 hour to 12 hours. If you specify a value higher than this
         | 
| 564 | 
            +
                #   setting or the administrator setting (whichever is lower), the
         | 
| 565 | 
            +
                #   operation fails. For example, if you specify a session duration of 12
         | 
| 566 | 
            +
                #   hours, but your administrator set the maximum session duration to 6
         | 
| 567 | 
            +
                #   hours, your operation fails.
         | 
| 568 | 
            +
                #
         | 
| 569 | 
            +
                #   Role chaining limits your Amazon Web Services CLI or Amazon Web
         | 
| 570 | 
            +
                #   Services API role session to a maximum of one hour. When you use the
         | 
| 571 | 
            +
                #   `AssumeRole` API operation to assume a role, you can specify the
         | 
| 572 | 
            +
                #   duration of your role session with the `DurationSeconds` parameter.
         | 
| 573 | 
            +
                #   You can specify a parameter value of up to 43200 seconds (12 hours),
         | 
| 574 | 
            +
                #   depending on the maximum session duration setting for your role.
         | 
| 575 | 
            +
                #   However, if you assume a role using role chaining and provide a
         | 
| 576 | 
            +
                #   `DurationSeconds` parameter value greater than one hour, the operation
         | 
| 577 | 
            +
                #   fails. To learn how to view the maximum value for your role, see [View
         | 
| 578 | 
            +
                #   the Maximum Session Duration Setting for a Role][1] in the *IAM User
         | 
| 579 | 
            +
                #   Guide*.
         | 
| 550 580 | 
             
                #
         | 
| 551 581 | 
             
                #   By default, the value is set to `3600` seconds.
         | 
| 552 582 | 
             
                #
         | 
| @@ -555,8 +585,8 @@ module Aws::STS | |
| 555 585 | 
             
                #   The request to the federation endpoint for a console sign-in token
         | 
| 556 586 | 
             
                #   takes a `SessionDuration` parameter that specifies the maximum length
         | 
| 557 587 | 
             
                #   of the console session. For more information, see [Creating a URL that
         | 
| 558 | 
            -
                #   Enables Federated Users to Access the  | 
| 559 | 
            -
                #   *IAM User Guide*.
         | 
| 588 | 
            +
                #   Enables Federated Users to Access the Amazon Web Services Management
         | 
| 589 | 
            +
                #   Console][2] in the *IAM User Guide*.
         | 
| 560 590 | 
             
                #
         | 
| 561 591 | 
             
                #    </note>
         | 
| 562 592 | 
             
                #
         | 
| @@ -568,8 +598,8 @@ module Aws::STS | |
| 568 598 | 
             
                # @option params [Array<Types::Tag>] :tags
         | 
| 569 599 | 
             
                #   A list of session tags that you want to pass. Each session tag
         | 
| 570 600 | 
             
                #   consists of a key name and an associated value. For more information
         | 
| 571 | 
            -
                #   about session tags, see [Tagging STS Sessions][1] | 
| 572 | 
            -
                #   Guide*.
         | 
| 601 | 
            +
                #   about session tags, see [Tagging Amazon Web Services STS Sessions][1]
         | 
| 602 | 
            +
                #   in the *IAM User Guide*.
         | 
| 573 603 | 
             
                #
         | 
| 574 604 | 
             
                #   This parameter is optional. You can pass up to 50 session tags. The
         | 
| 575 605 | 
             
                #   plaintext session tag keys can’t exceed 128 characters, and the values
         | 
| @@ -798,8 +828,8 @@ module Aws::STS | |
| 798 828 | 
             
                # user-specific credentials or configuration. For a comparison of
         | 
| 799 829 | 
             
                # `AssumeRoleWithSAML` with the other API operations that produce
         | 
| 800 830 | 
             
                # temporary credentials, see [Requesting Temporary Security
         | 
| 801 | 
            -
                # Credentials][1] and [Comparing the  | 
| 802 | 
            -
                # User Guide*.
         | 
| 831 | 
            +
                # Credentials][1] and [Comparing the Amazon Web Services STS API
         | 
| 832 | 
            +
                # operations][2] in the *IAM User Guide*.
         | 
| 803 833 | 
             
                #
         | 
| 804 834 | 
             
                # The temporary security credentials returned by this operation consist
         | 
| 805 835 | 
             
                # of an access key ID, a secret access key, and a security token.
         | 
| @@ -1051,8 +1081,8 @@ module Aws::STS | |
| 1051 1081 | 
             
                #   The request to the federation endpoint for a console sign-in token
         | 
| 1052 1082 | 
             
                #   takes a `SessionDuration` parameter that specifies the maximum length
         | 
| 1053 1083 | 
             
                #   of the console session. For more information, see [Creating a URL that
         | 
| 1054 | 
            -
                #   Enables Federated Users to Access the  | 
| 1055 | 
            -
                #   *IAM User Guide*.
         | 
| 1084 | 
            +
                #   Enables Federated Users to Access the Amazon Web Services Management
         | 
| 1085 | 
            +
                #   Console][2] in the *IAM User Guide*.
         | 
| 1056 1086 | 
             
                #
         | 
| 1057 1087 | 
             
                #    </note>
         | 
| 1058 1088 | 
             
                #
         | 
| @@ -1172,8 +1202,8 @@ module Aws::STS | |
| 1172 1202 | 
             
                # a token from the web identity provider. For a comparison of
         | 
| 1173 1203 | 
             
                # `AssumeRoleWithWebIdentity` with the other API operations that produce
         | 
| 1174 1204 | 
             
                # temporary credentials, see [Requesting Temporary Security
         | 
| 1175 | 
            -
                # Credentials][5] and [Comparing the  | 
| 1176 | 
            -
                # User Guide*.
         | 
| 1205 | 
            +
                # Credentials][5] and [Comparing the Amazon Web Services STS API
         | 
| 1206 | 
            +
                # operations][6] in the *IAM User Guide*.
         | 
| 1177 1207 | 
             
                #
         | 
| 1178 1208 | 
             
                # The temporary security credentials returned by this API consist of an
         | 
| 1179 1209 | 
             
                # access key ID, a secret access key, and a security token. Applications
         | 
| @@ -1433,8 +1463,8 @@ module Aws::STS | |
| 1433 1463 | 
             
                #   The request to the federation endpoint for a console sign-in token
         | 
| 1434 1464 | 
             
                #   takes a `SessionDuration` parameter that specifies the maximum length
         | 
| 1435 1465 | 
             
                #   of the console session. For more information, see [Creating a URL that
         | 
| 1436 | 
            -
                #   Enables Federated Users to Access the  | 
| 1437 | 
            -
                #   *IAM User Guide*.
         | 
| 1466 | 
            +
                #   Enables Federated Users to Access the Amazon Web Services Management
         | 
| 1467 | 
            +
                #   Console][2] in the *IAM User Guide*.
         | 
| 1438 1468 | 
             
                #
         | 
| 1439 1469 | 
             
                #    </note>
         | 
| 1440 1470 | 
             
                #
         | 
| @@ -1540,17 +1570,17 @@ module Aws::STS | |
| 1540 1570 | 
             
                #  </note>
         | 
| 1541 1571 | 
             
                #
         | 
| 1542 1572 | 
             
                # The message is encoded because the details of the authorization status
         | 
| 1543 | 
            -
                # can  | 
| 1573 | 
            +
                # can contain privileged information that the user who requested the
         | 
| 1544 1574 | 
             
                # operation should not see. To decode an authorization status message, a
         | 
| 1545 | 
            -
                # user must be granted permissions  | 
| 1546 | 
            -
                # `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`)
         | 
| 1575 | 
            +
                # user must be granted permissions through an IAM [policy][1] to request
         | 
| 1576 | 
            +
                # the `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`)
         | 
| 1547 1577 | 
             
                # action.
         | 
| 1548 1578 | 
             
                #
         | 
| 1549 1579 | 
             
                # The decoded message includes the following type of information:
         | 
| 1550 1580 | 
             
                #
         | 
| 1551 1581 | 
             
                # * Whether the request was denied due to an explicit deny or due to the
         | 
| 1552 1582 | 
             
                #   absence of an explicit allow. For more information, see [Determining
         | 
| 1553 | 
            -
                #   Whether a Request is Allowed or Denied][ | 
| 1583 | 
            +
                #   Whether a Request is Allowed or Denied][2] in the *IAM User Guide*.
         | 
| 1554 1584 | 
             
                #
         | 
| 1555 1585 | 
             
                # * The principal who made the request.
         | 
| 1556 1586 | 
             
                #
         | 
| @@ -1562,7 +1592,8 @@ module Aws::STS | |
| 1562 1592 | 
             
                #
         | 
| 1563 1593 | 
             
                #
         | 
| 1564 1594 | 
             
                #
         | 
| 1565 | 
            -
                # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/ | 
| 1595 | 
            +
                # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
         | 
| 1596 | 
            +
                # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow
         | 
| 1566 1597 | 
             
                #
         | 
| 1567 1598 | 
             
                # @option params [required, String] :encoded_message
         | 
| 1568 1599 | 
             
                #   The encoded message that was returned with the response.
         | 
| @@ -1757,8 +1788,8 @@ module Aws::STS | |
| 1757 1788 | 
             
                # can be safely stored, usually in a server-based application. For a
         | 
| 1758 1789 | 
             
                # comparison of `GetFederationToken` with the other API operations that
         | 
| 1759 1790 | 
             
                # produce temporary credentials, see [Requesting Temporary Security
         | 
| 1760 | 
            -
                # Credentials][1] and [Comparing the  | 
| 1761 | 
            -
                # User Guide*.
         | 
| 1791 | 
            +
                # Credentials][1] and [Comparing the Amazon Web Services STS API
         | 
| 1792 | 
            +
                # operations][2] in the *IAM User Guide*.
         | 
| 1762 1793 | 
             
                #
         | 
| 1763 1794 | 
             
                # <note markdown="1"> You can create a mobile-based or browser-based app that can
         | 
| 1764 1795 | 
             
                # authenticate users using a web identity provider like Login with
         | 
| @@ -1782,7 +1813,7 @@ module Aws::STS | |
| 1782 1813 | 
             
                # The temporary credentials are valid for the specified duration, from
         | 
| 1783 1814 | 
             
                # 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36
         | 
| 1784 1815 | 
             
                # hours). The default session duration is 43,200 seconds (12 hours).
         | 
| 1785 | 
            -
                # Temporary credentials  | 
| 1816 | 
            +
                # Temporary credentials obtained by using the Amazon Web Services
         | 
| 1786 1817 | 
             
                # account root user credentials have a maximum duration of 3,600 seconds
         | 
| 1787 1818 | 
             
                # (1 hour).
         | 
| 1788 1819 | 
             
                #
         | 
| @@ -1837,65 +1868,6 @@ module Aws::STS | |
| 1837 1868 | 
             
                #
         | 
| 1838 1869 | 
             
                #  </note>
         | 
| 1839 1870 | 
             
                #
         | 
| 1840 | 
            -
                # You can also call `GetFederationToken` using the security credentials
         | 
| 1841 | 
            -
                # of an Amazon Web Services account root user, but we do not recommend
         | 
| 1842 | 
            -
                # it. Instead, we recommend that you create an IAM user for the purpose
         | 
| 1843 | 
            -
                # of the proxy application. Then attach a policy to the IAM user that
         | 
| 1844 | 
            -
                # limits federated users to only the actions and resources that they
         | 
| 1845 | 
            -
                # need to access. For more information, see [IAM Best Practices][5] in
         | 
| 1846 | 
            -
                # the *IAM User Guide*.
         | 
| 1847 | 
            -
                #
         | 
| 1848 | 
            -
                # **Session duration**
         | 
| 1849 | 
            -
                #
         | 
| 1850 | 
            -
                # The temporary credentials are valid for the specified duration, from
         | 
| 1851 | 
            -
                # 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36
         | 
| 1852 | 
            -
                # hours). The default session duration is 43,200 seconds (12 hours).
         | 
| 1853 | 
            -
                # Temporary credentials that are obtained by using Amazon Web Services
         | 
| 1854 | 
            -
                # account root user credentials have a maximum duration of 3,600 seconds
         | 
| 1855 | 
            -
                # (1 hour).
         | 
| 1856 | 
            -
                #
         | 
| 1857 | 
            -
                # **Permissions**
         | 
| 1858 | 
            -
                #
         | 
| 1859 | 
            -
                # You can use the temporary credentials created by `GetFederationToken`
         | 
| 1860 | 
            -
                # in any Amazon Web Services service except the following:
         | 
| 1861 | 
            -
                #
         | 
| 1862 | 
            -
                # * You cannot call any IAM operations using the CLI or the Amazon Web
         | 
| 1863 | 
            -
                #   Services API.
         | 
| 1864 | 
            -
                #
         | 
| 1865 | 
            -
                # * You cannot call any STS operations except `GetCallerIdentity`.
         | 
| 1866 | 
            -
                #
         | 
| 1867 | 
            -
                # You must pass an inline or managed [session policy][6] to this
         | 
| 1868 | 
            -
                # operation. You can pass a single JSON policy document to use as an
         | 
| 1869 | 
            -
                # inline session policy. You can also specify up to 10 managed policies
         | 
| 1870 | 
            -
                # to use as managed session policies. The plain text that you use for
         | 
| 1871 | 
            -
                # both inline and managed session policies can't exceed 2,048
         | 
| 1872 | 
            -
                # characters.
         | 
| 1873 | 
            -
                #
         | 
| 1874 | 
            -
                # Though the session policy parameters are optional, if you do not pass
         | 
| 1875 | 
            -
                # a policy, then the resulting federated user session has no
         | 
| 1876 | 
            -
                # permissions. When you pass session policies, the session permissions
         | 
| 1877 | 
            -
                # are the intersection of the IAM user policies and the session policies
         | 
| 1878 | 
            -
                # that you pass. This gives you a way to further restrict the
         | 
| 1879 | 
            -
                # permissions for a federated user. You cannot use session policies to
         | 
| 1880 | 
            -
                # grant more permissions than those that are defined in the permissions
         | 
| 1881 | 
            -
                # policy of the IAM user. For more information, see [Session
         | 
| 1882 | 
            -
                # Policies][6] in the *IAM User Guide*. For information about using
         | 
| 1883 | 
            -
                # `GetFederationToken` to create temporary security credentials, see
         | 
| 1884 | 
            -
                # [GetFederationToken—Federation Through a Custom Identity Broker][7].
         | 
| 1885 | 
            -
                #
         | 
| 1886 | 
            -
                # You can use the credentials to access a resource that has a
         | 
| 1887 | 
            -
                # resource-based policy. If that policy specifically references the
         | 
| 1888 | 
            -
                # federated user session in the `Principal` element of the policy, the
         | 
| 1889 | 
            -
                # session has the permissions allowed by the policy. These permissions
         | 
| 1890 | 
            -
                # are granted in addition to the permissions granted by the session
         | 
| 1891 | 
            -
                # policies.
         | 
| 1892 | 
            -
                #
         | 
| 1893 | 
            -
                # **Tags**
         | 
| 1894 | 
            -
                #
         | 
| 1895 | 
            -
                # (Optional) You can pass tag key-value pairs to your session. These are
         | 
| 1896 | 
            -
                # called session tags. For more information about session tags, see
         | 
| 1897 | 
            -
                # [Passing Session Tags in STS][8] in the *IAM User Guide*.
         | 
| 1898 | 
            -
                #
         | 
| 1899 1871 | 
             
                # An administrator must grant you the permissions necessary to pass
         | 
| 1900 1872 | 
             
                # session tags. The administrator can also create granular permissions
         | 
| 1901 1873 | 
             
                # to allow you to pass only specific session tags. For more information,
         | 
| @@ -2164,8 +2136,8 @@ module Aws::STS | |
| 2164 2136 | 
             
                # correct MFA code, then the API returns an access denied error. For a
         | 
| 2165 2137 | 
             
                # comparison of `GetSessionToken` with the other API operations that
         | 
| 2166 2138 | 
             
                # produce temporary credentials, see [Requesting Temporary Security
         | 
| 2167 | 
            -
                # Credentials][1] and [Comparing the  | 
| 2168 | 
            -
                # User Guide*.
         | 
| 2139 | 
            +
                # Credentials][1] and [Comparing the Amazon Web Services STS API
         | 
| 2140 | 
            +
                # operations][2] in the *IAM User Guide*.
         | 
| 2169 2141 | 
             
                #
         | 
| 2170 2142 | 
             
                # **Session Duration**
         | 
| 2171 2143 | 
             
                #
         | 
| @@ -2233,8 +2205,8 @@ module Aws::STS | |
| 2233 2205 | 
             
                #   The value is either the serial number for a hardware device (such as
         | 
| 2234 2206 | 
             
                #   `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual device
         | 
| 2235 2207 | 
             
                #   (such as `arn:aws:iam::123456789012:mfa/user`). You can find the
         | 
| 2236 | 
            -
                #   device for an IAM user by going to the  | 
| 2237 | 
            -
                #   the user's security credentials.
         | 
| 2208 | 
            +
                #   device for an IAM user by going to the Amazon Web Services Management
         | 
| 2209 | 
            +
                #   Console and viewing the user's security credentials.
         | 
| 2238 2210 | 
             
                #
         | 
| 2239 2211 | 
             
                #   The regex used to validate this parameter is a string of characters
         | 
| 2240 2212 | 
             
                #   consisting of upper- and lower-case alphanumeric characters with no
         | 
| @@ -2312,7 +2284,7 @@ module Aws::STS | |
| 2312 2284 | 
             
                    params: params,
         | 
| 2313 2285 | 
             
                    config: config)
         | 
| 2314 2286 | 
             
                  context[:gem_name] = 'aws-sdk-core'
         | 
| 2315 | 
            -
                  context[:gem_version] = '3. | 
| 2287 | 
            +
                  context[:gem_version] = '3.125.0'
         | 
| 2316 2288 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 2317 2289 | 
             
                end
         | 
| 2318 2290 |  | 
| @@ -24,7 +24,11 @@ regions to resolve to the STS global endpoint. | |
| 24 24 | 
             
                      env_mode = nil if env_mode == ''
         | 
| 25 25 | 
             
                      cfg_mode = Aws.shared_config.sts_regional_endpoints(
         | 
| 26 26 | 
             
                        profile: cfg.profile)
         | 
| 27 | 
            -
                       | 
| 27 | 
            +
                      default_mode_value =
         | 
| 28 | 
            +
                        if cfg.respond_to?(:defaults_mode_config_resolver)
         | 
| 29 | 
            +
                          cfg.defaults_mode_config_resolver.resolve(:sts_regional_endpoints)
         | 
| 30 | 
            +
                        end
         | 
| 31 | 
            +
                      env_mode || cfg_mode || default_mode_value || 'regional'
         | 
| 28 32 | 
             
                    end
         | 
| 29 33 |  | 
| 30 34 | 
             
                  end
         | 
    
        data/lib/aws-sdk-sts/types.rb
    CHANGED
    
    | @@ -132,16 +132,25 @@ module Aws::STS | |
| 132 132 | 
             
                #
         | 
| 133 133 | 
             
                # @!attribute [rw] duration_seconds
         | 
| 134 134 | 
             
                #   The duration, in seconds, of the role session. The value specified
         | 
| 135 | 
            -
                #   can  | 
| 136 | 
            -
                #    | 
| 137 | 
            -
                #    | 
| 138 | 
            -
                #    | 
| 139 | 
            -
                #    | 
| 140 | 
            -
                #    | 
| 141 | 
            -
                #    | 
| 142 | 
            -
                # | 
| 143 | 
            -
                #    | 
| 144 | 
            -
                #    | 
| 135 | 
            +
                #   can range from 900 seconds (15 minutes) up to the maximum session
         | 
| 136 | 
            +
                #   duration set for the role. The maximum session duration setting can
         | 
| 137 | 
            +
                #   have a value from 1 hour to 12 hours. If you specify a value higher
         | 
| 138 | 
            +
                #   than this setting or the administrator setting (whichever is lower),
         | 
| 139 | 
            +
                #   the operation fails. For example, if you specify a session duration
         | 
| 140 | 
            +
                #   of 12 hours, but your administrator set the maximum session duration
         | 
| 141 | 
            +
                #   to 6 hours, your operation fails.
         | 
| 142 | 
            +
                #
         | 
| 143 | 
            +
                #   Role chaining limits your Amazon Web Services CLI or Amazon Web
         | 
| 144 | 
            +
                #   Services API role session to a maximum of one hour. When you use the
         | 
| 145 | 
            +
                #   `AssumeRole` API operation to assume a role, you can specify the
         | 
| 146 | 
            +
                #   duration of your role session with the `DurationSeconds` parameter.
         | 
| 147 | 
            +
                #   You can specify a parameter value of up to 43200 seconds (12 hours),
         | 
| 148 | 
            +
                #   depending on the maximum session duration setting for your role.
         | 
| 149 | 
            +
                #   However, if you assume a role using role chaining and provide a
         | 
| 150 | 
            +
                #   `DurationSeconds` parameter value greater than one hour, the
         | 
| 151 | 
            +
                #   operation fails. To learn how to view the maximum value for your
         | 
| 152 | 
            +
                #   role, see [View the Maximum Session Duration Setting for a Role][1]
         | 
| 153 | 
            +
                #   in the *IAM User Guide*.
         | 
| 145 154 | 
             
                #
         | 
| 146 155 | 
             
                #   By default, the value is set to `3600` seconds.
         | 
| 147 156 | 
             
                #
         | 
| @@ -150,8 +159,8 @@ module Aws::STS | |
| 150 159 | 
             
                #   credentials. The request to the federation endpoint for a console
         | 
| 151 160 | 
             
                #   sign-in token takes a `SessionDuration` parameter that specifies the
         | 
| 152 161 | 
             
                #   maximum length of the console session. For more information, see
         | 
| 153 | 
            -
                #   [Creating a URL that Enables Federated Users to Access the
         | 
| 154 | 
            -
                #   Management Console][2] in the *IAM User Guide*.
         | 
| 162 | 
            +
                #   [Creating a URL that Enables Federated Users to Access the Amazon
         | 
| 163 | 
            +
                #   Web Services Management Console][2] in the *IAM User Guide*.
         | 
| 155 164 | 
             
                #
         | 
| 156 165 | 
             
                #    </note>
         | 
| 157 166 | 
             
                #
         | 
| @@ -164,8 +173,8 @@ module Aws::STS | |
| 164 173 | 
             
                # @!attribute [rw] tags
         | 
| 165 174 | 
             
                #   A list of session tags that you want to pass. Each session tag
         | 
| 166 175 | 
             
                #   consists of a key name and an associated value. For more information
         | 
| 167 | 
            -
                #   about session tags, see [Tagging  | 
| 168 | 
            -
                #   Guide*.
         | 
| 176 | 
            +
                #   about session tags, see [Tagging Amazon Web Services STS
         | 
| 177 | 
            +
                #   Sessions][1] in the *IAM User Guide*.
         | 
| 169 178 | 
             
                #
         | 
| 170 179 | 
             
                #   This parameter is optional. You can pass up to 50 session tags. The
         | 
| 171 180 | 
             
                #   plaintext session tag keys can’t exceed 128 characters, and the
         | 
| @@ -516,8 +525,8 @@ module Aws::STS | |
| 516 525 | 
             
                #   credentials. The request to the federation endpoint for a console
         | 
| 517 526 | 
             
                #   sign-in token takes a `SessionDuration` parameter that specifies the
         | 
| 518 527 | 
             
                #   maximum length of the console session. For more information, see
         | 
| 519 | 
            -
                #   [Creating a URL that Enables Federated Users to Access the
         | 
| 520 | 
            -
                #   Management Console][2] in the *IAM User Guide*.
         | 
| 528 | 
            +
                #   [Creating a URL that Enables Federated Users to Access the Amazon
         | 
| 529 | 
            +
                #   Web Services Management Console][2] in the *IAM User Guide*.
         | 
| 521 530 | 
             
                #
         | 
| 522 531 | 
             
                #    </note>
         | 
| 523 532 | 
             
                #
         | 
| @@ -802,8 +811,8 @@ module Aws::STS | |
| 802 811 | 
             
                #   credentials. The request to the federation endpoint for a console
         | 
| 803 812 | 
             
                #   sign-in token takes a `SessionDuration` parameter that specifies the
         | 
| 804 813 | 
             
                #   maximum length of the console session. For more information, see
         | 
| 805 | 
            -
                #   [Creating a URL that Enables Federated Users to Access the
         | 
| 806 | 
            -
                #   Management Console][2] in the *IAM User Guide*.
         | 
| 814 | 
            +
                #   [Creating a URL that Enables Federated Users to Access the Amazon
         | 
| 815 | 
            +
                #   Web Services Management Console][2] in the *IAM User Guide*.
         | 
| 807 816 | 
             
                #
         | 
| 808 817 | 
             
                #    </note>
         | 
| 809 818 | 
             
                #
         | 
| @@ -1012,7 +1021,7 @@ module Aws::STS | |
| 1012 1021 | 
             
                # returned in response to an Amazon Web Services request.
         | 
| 1013 1022 | 
             
                #
         | 
| 1014 1023 | 
             
                # @!attribute [rw] decoded_message
         | 
| 1015 | 
            -
                #    | 
| 1024 | 
            +
                #   The API returns a response with the decoded message.
         | 
| 1016 1025 | 
             
                #   @return [String]
         | 
| 1017 1026 | 
             
                #
         | 
| 1018 1027 | 
             
                # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse AWS API Documentation
         | 
| @@ -1396,8 +1405,8 @@ module Aws::STS | |
| 1396 1405 | 
             
                #   The value is either the serial number for a hardware device (such as
         | 
| 1397 1406 | 
             
                #   `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual
         | 
| 1398 1407 | 
             
                #   device (such as `arn:aws:iam::123456789012:mfa/user`). You can find
         | 
| 1399 | 
            -
                #   the device for an IAM user by going to the  | 
| 1400 | 
            -
                #   viewing the user's security credentials.
         | 
| 1408 | 
            +
                #   the device for an IAM user by going to the Amazon Web Services
         | 
| 1409 | 
            +
                #   Management Console and viewing the user's security credentials.
         | 
| 1401 1410 | 
             
                #
         | 
| 1402 1411 | 
             
                #   The regex used to validate this parameter is a string of characters
         | 
| 1403 1412 | 
             
                #   consisting of upper- and lower-case alphanumeric characters with no
         | 
| @@ -1546,7 +1555,7 @@ module Aws::STS | |
| 1546 1555 | 
             
                #
         | 
| 1547 1556 | 
             
                #
         | 
| 1548 1557 | 
             
                # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
         | 
| 1549 | 
            -
                # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/ | 
| 1558 | 
            +
                # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-limits-entity-length
         | 
| 1550 1559 | 
             
                #
         | 
| 1551 1560 | 
             
                # @!attribute [rw] message
         | 
| 1552 1561 | 
             
                #   @return [String]
         | 
| @@ -1612,7 +1621,8 @@ module Aws::STS | |
| 1612 1621 | 
             
                # You can pass custom key-value pair attributes when you assume a role
         | 
| 1613 1622 | 
             
                # or federate a user. These are called session tags. You can then use
         | 
| 1614 1623 | 
             
                # the session tags to control access to resources. For more information,
         | 
| 1615 | 
            -
                # see [Tagging STS Sessions][1] in the *IAM User | 
| 1624 | 
            +
                # see [Tagging Amazon Web Services STS Sessions][1] in the *IAM User
         | 
| 1625 | 
            +
                # Guide*.
         | 
| 1616 1626 | 
             
                #
         | 
| 1617 1627 | 
             
                #
         | 
| 1618 1628 | 
             
                #
         | 
    
        data/lib/aws-sdk-sts.rb
    CHANGED
    
    
| @@ -34,6 +34,7 @@ module Seahorse | |
| 34 34 | 
             
                      ssl_ca_bundle: nil,
         | 
| 35 35 | 
             
                      ssl_ca_directory: nil,
         | 
| 36 36 | 
             
                      ssl_ca_store: nil,
         | 
| 37 | 
            +
                      ssl_timeout: nil
         | 
| 37 38 | 
             
                    }
         | 
| 38 39 |  | 
| 39 40 | 
             
                    # @api private
         | 
| @@ -187,6 +188,9 @@ module Seahorse | |
| 187 188 | 
             
                      #   disables this behaviour.  This value can safely be set per
         | 
| 188 189 | 
             
                      #   request on the session yielded by {#session_for}.
         | 
| 189 190 | 
             
                      #
         | 
| 191 | 
            +
                      # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
         | 
| 192 | 
            +
                      #   in seconds.
         | 
| 193 | 
            +
                      #
         | 
| 190 194 | 
             
                      # @option options [Boolean] :http_wire_trace (false) When `true`,
         | 
| 191 195 | 
             
                      #   HTTP debug output will be sent to the `:logger`.
         | 
| 192 196 | 
             
                      #
         | 
| @@ -248,6 +252,7 @@ module Seahorse | |
| 248 252 | 
             
                          :ssl_ca_bundle => options[:ssl_ca_bundle],
         | 
| 249 253 | 
             
                          :ssl_ca_directory => options[:ssl_ca_directory],
         | 
| 250 254 | 
             
                          :ssl_ca_store => options[:ssl_ca_store],
         | 
| 255 | 
            +
                          :ssl_timeout => options[:ssl_timeout]
         | 
| 251 256 | 
             
                        }
         | 
| 252 257 | 
             
                      end
         | 
| 253 258 |  | 
| @@ -285,6 +290,8 @@ module Seahorse | |
| 285 290 |  | 
| 286 291 | 
             
                      if endpoint.scheme == 'https'
         | 
| 287 292 | 
             
                        http.use_ssl = true
         | 
| 293 | 
            +
                        http.ssl_timeout = ssl_timeout
         | 
| 294 | 
            +
             | 
| 288 295 | 
             
                        if ssl_verify_peer?
         | 
| 289 296 | 
             
                          http.verify_mode = OpenSSL::SSL::VERIFY_PEER
         | 
| 290 297 | 
             
                          http.ca_file = ssl_ca_bundle if ssl_ca_bundle
         | 
| @@ -9,9 +9,13 @@ module Seahorse | |
| 9 9 |  | 
| 10 10 | 
             
                    option(:http_proxy, default: nil, doc_type: String, docstring: '')
         | 
| 11 11 |  | 
| 12 | 
            -
                    option(:http_open_timeout, default: 15, doc_type: Integer, docstring: '')
         | 
| 12 | 
            +
                    option(:http_open_timeout, default: 15, doc_type: Integer, docstring: '') do |cfg|
         | 
| 13 | 
            +
                      resolve_http_open_timeout(cfg)
         | 
| 14 | 
            +
                    end
         | 
| 13 15 |  | 
| 14 | 
            -
                    option(:http_read_timeout, default: 60, doc_type: Integer, docstring: '')
         | 
| 16 | 
            +
                    option(:http_read_timeout, default: 60, doc_type: Integer, docstring: '') do |cfg|
         | 
| 17 | 
            +
                      resolve_http_read_timeout(cfg)
         | 
| 18 | 
            +
                    end
         | 
| 15 19 |  | 
| 16 20 | 
             
                    option(:http_idle_timeout, default: 5, doc_type: Integer, docstring: '')
         | 
| 17 21 |  | 
| @@ -30,10 +34,37 @@ module Seahorse | |
| 30 34 |  | 
| 31 35 | 
             
                    option(:ssl_ca_store, default: nil, doc_type: String, docstring: '')
         | 
| 32 36 |  | 
| 37 | 
            +
                    option(:ssl_timeout, default: nil, doc_type: Float, docstring: '') do |cfg|
         | 
| 38 | 
            +
                      resolve_ssl_timeout(cfg)
         | 
| 39 | 
            +
                    end
         | 
| 40 | 
            +
             | 
| 33 41 | 
             
                    option(:logger) # for backwards compat
         | 
| 34 42 |  | 
| 35 43 | 
             
                    handler(Client::NetHttp::Handler, step: :send)
         | 
| 36 44 |  | 
| 45 | 
            +
                    def self.resolve_http_open_timeout(cfg)
         | 
| 46 | 
            +
                      default_mode_value =
         | 
| 47 | 
            +
                        if cfg.respond_to?(:defaults_mode_config_resolver)
         | 
| 48 | 
            +
                          cfg.defaults_mode_config_resolver.resolve(:http_open_timeout)
         | 
| 49 | 
            +
                        end
         | 
| 50 | 
            +
                      default_mode_value || 15
         | 
| 51 | 
            +
                    end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                    def self.resolve_http_read_timeout(cfg)
         | 
| 54 | 
            +
                      default_mode_value =
         | 
| 55 | 
            +
                        if cfg.respond_to?(:defaults_mode_config_resolver)
         | 
| 56 | 
            +
                          cfg.defaults_mode_config_resolver.resolve(:http_read_timeout)
         | 
| 57 | 
            +
                        end
         | 
| 58 | 
            +
                      default_mode_value || 60
         | 
| 59 | 
            +
                    end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                    def self.resolve_ssl_timeout(cfg)
         | 
| 62 | 
            +
                      default_mode_value =
         | 
| 63 | 
            +
                        if cfg.respond_to?(:defaults_mode_config_resolver)
         | 
| 64 | 
            +
                          cfg.defaults_mode_config_resolver.resolve(:ssl_timeout)
         | 
| 65 | 
            +
                        end
         | 
| 66 | 
            +
                      default_mode_value || nil
         | 
| 67 | 
            +
                    end
         | 
| 37 68 | 
             
                  end
         | 
| 38 69 | 
             
                end
         | 
| 39 70 | 
             
              end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: aws-sdk-core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3. | 
| 4 | 
            +
              version: 3.125.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Amazon Web Services
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-12-21 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jmespath
         | 
| @@ -89,6 +89,9 @@ files: | |
| 89 89 | 
             
            - LICENSE.txt
         | 
| 90 90 | 
             
            - VERSION
         | 
| 91 91 | 
             
            - ca-bundle.crt
         | 
| 92 | 
            +
            - lib/aws-defaults.rb
         | 
| 93 | 
            +
            - lib/aws-defaults/default_configuration.rb
         | 
| 94 | 
            +
            - lib/aws-defaults/defaults_mode_config_resolver.rb
         | 
| 92 95 | 
             
            - lib/aws-sdk-core.rb
         | 
| 93 96 | 
             
            - lib/aws-sdk-core/arn.rb
         | 
| 94 97 | 
             
            - lib/aws-sdk-core/arn_parser.rb
         | 
| @@ -139,6 +142,7 @@ files: | |
| 139 142 | 
             
            - lib/aws-sdk-core/plugins/client_metrics_plugin.rb
         | 
| 140 143 | 
             
            - lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb
         | 
| 141 144 | 
             
            - lib/aws-sdk-core/plugins/credentials_configuration.rb
         | 
| 145 | 
            +
            - lib/aws-sdk-core/plugins/defaults_mode.rb
         | 
| 142 146 | 
             
            - lib/aws-sdk-core/plugins/endpoint_discovery.rb
         | 
| 143 147 | 
             
            - lib/aws-sdk-core/plugins/endpoint_pattern.rb
         | 
| 144 148 | 
             
            - lib/aws-sdk-core/plugins/event_stream_configuration.rb
         |