aws-sdk-core 3.196.1 → 3.197.1
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 +12 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-core/pageable_response.rb +1 -1
- data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
- data/lib/aws-sdk-core/plugins/request_compression.rb +10 -1
- data/lib/aws-sdk-core/plugins/retry_errors.rb +10 -2
- data/lib/aws-sdk-core/plugins/user_agent.rb +58 -24
- data/lib/aws-sdk-core/process_credentials.rb +45 -27
- data/lib/aws-sdk-core/util.rb +4 -4
- data/lib/aws-sdk-core/waiters/poller.rb +1 -1
- data/lib/aws-sdk-sso/client.rb +1 -1
- data/lib/aws-sdk-sso.rb +1 -1
- data/lib/aws-sdk-ssooidc/client.rb +1 -1
- data/lib/aws-sdk-ssooidc.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +1 -1
- data/lib/aws-sdk-sts.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f11249692fa65ae987ba92fad403281cc16a877ccfe8381afb6ae7806c3a50ae
         | 
| 4 | 
            +
              data.tar.gz: 0f8b8f4a441fb62dc3b5c7f296e8e3c5fff877262414796b98fc20dbd4eb680c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e7b0fbfd6d0062f19f0c9ec4f70b909123e98b570a83b156fcbb4bae0e58a685745f1bffdb55c2999d4fd0e8ad0a2927b685bd59373d9008c5f2a3e12a5878e2
         | 
| 7 | 
            +
              data.tar.gz: 356fab036a80251e70ad0ecd0232db0df377a2bfffef5b2631f12fa3d3dd048166f10013105818dfd59ff4e66deef16dfaf2c03ceb889009b8b9d5beb89907f5
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,6 +1,18 @@ | |
| 1 1 | 
             
            Unreleased Changes
         | 
| 2 2 | 
             
            ------------------
         | 
| 3 3 |  | 
| 4 | 
            +
            3.197.1 (2024-06-19)
         | 
| 5 | 
            +
            ------------------
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            * Issue - Support an array of string arguments for `Aws::ProcessCredentials` to be executed by `system`.
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            3.197.0 (2024-06-05)
         | 
| 10 | 
            +
            ------------------
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            * Issue - Ensure no UTC offset when deserializing `iso8601` timestamp format values.
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * Feature - Bump User Agent to version 2.1 to track business metrics. This changes the User Agent plugin order to be just before sending.
         | 
| 15 | 
            +
             | 
| 4 16 | 
             
            3.196.1 (2024-05-14)
         | 
| 5 17 | 
             
            ------------------
         | 
| 6 18 |  | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            3. | 
| 1 | 
            +
            3.197.1
         | 
| @@ -201,7 +201,7 @@ module Aws | |
| 201 201 | 
             
                  def next_response(params)
         | 
| 202 202 | 
             
                    params = next_page_params(params)
         | 
| 203 203 | 
             
                    request = context.client.build_request(context.operation_name, params)
         | 
| 204 | 
            -
                    Aws::Plugins::UserAgent. | 
| 204 | 
            +
                    Aws::Plugins::UserAgent.metric('PAGINATOR') do
         | 
| 205 205 | 
             
                      request.send_request
         | 
| 206 206 | 
             
                    end
         | 
| 207 207 | 
             
                  end
         | 
| @@ -11,6 +11,8 @@ module Aws | |
| 11 11 | 
             
                      # AttemptHandler comes just before we would retry an error.
         | 
| 12 12 | 
             
                      # Or before we would follow redirects.
         | 
| 13 13 | 
             
                      handlers.add(AttemptHandler, step: :sign, priority: 39)
         | 
| 14 | 
            +
                      # ErrorHandler comes after we have parsed an error.
         | 
| 15 | 
            +
                      handlers.add(ErrorHandler, step: :sign, priority: 95)
         | 
| 14 16 | 
             
                      # LatencyHandler is as close to sending as possible.
         | 
| 15 17 | 
             
                      handlers.add(LatencyHandler, step: :sign, priority: 0)
         | 
| 16 18 | 
             
                    end
         | 
| @@ -62,17 +64,27 @@ module Aws | |
| 62 64 | 
             
                        call_attempt.x_amzn_request_id = headers["x-amzn-request-id"]
         | 
| 63 65 | 
             
                      end
         | 
| 64 66 | 
             
                      call_attempt.http_status_code = context.http_response.status_code
         | 
| 65 | 
            -
                       | 
| 67 | 
            +
                      context.metadata[:current_call_attempt] = call_attempt
         | 
| 68 | 
            +
                      request_metrics.add_call_attempt(call_attempt)
         | 
| 69 | 
            +
                      resp
         | 
| 70 | 
            +
                    end
         | 
| 71 | 
            +
                  end
         | 
| 72 | 
            +
             | 
| 73 | 
            +
                  class ErrorHandler < Seahorse::Client::Handler
         | 
| 74 | 
            +
                    def call(context)
         | 
| 75 | 
            +
                      resp = @handler.call(context)
         | 
| 76 | 
            +
                      call_attempt = context.metadata[:current_call_attempt]
         | 
| 77 | 
            +
                      if (e = resp.error)
         | 
| 66 78 | 
             
                        e_name = _extract_error_name(e)
         | 
| 67 79 | 
             
                        e_msg = e.message
         | 
| 68 80 | 
             
                        call_attempt.aws_exception = "#{e_name}"
         | 
| 69 81 | 
             
                        call_attempt.aws_exception_msg = "#{e_msg}"
         | 
| 70 82 | 
             
                      end
         | 
| 71 | 
            -
                      request_metrics.add_call_attempt(call_attempt)
         | 
| 72 83 | 
             
                      resp
         | 
| 73 84 | 
             
                    end
         | 
| 74 85 |  | 
| 75 86 | 
             
                    private
         | 
| 87 | 
            +
             | 
| 76 88 | 
             
                    def _extract_error_name(error)
         | 
| 77 89 | 
             
                      if error.is_a?(Aws::Errors::ServiceError)
         | 
| 78 90 | 
             
                        error.class.code
         | 
| @@ -91,11 +91,20 @@ and 10485780 bytes inclusive. | |
| 91 91 | 
             
                          end
         | 
| 92 92 | 
             
                        end
         | 
| 93 93 | 
             
                      end
         | 
| 94 | 
            -
                      @handler.call(context)
         | 
| 94 | 
            +
                      with_metric(selected_encoding) { @handler.call(context) }
         | 
| 95 95 | 
             
                    end
         | 
| 96 96 |  | 
| 97 97 | 
             
                    private
         | 
| 98 98 |  | 
| 99 | 
            +
                    def with_metric(encoding, &block)
         | 
| 100 | 
            +
                      case encoding
         | 
| 101 | 
            +
                      when 'gzip'
         | 
| 102 | 
            +
                        Aws::Plugins::UserAgent.metric('GZIP_REQUEST_COMPRESSION', &block)
         | 
| 103 | 
            +
                      else
         | 
| 104 | 
            +
                        block.call
         | 
| 105 | 
            +
                      end
         | 
| 106 | 
            +
                    end
         | 
| 107 | 
            +
             | 
| 99 108 | 
             
                    def request_encoding_selection(context)
         | 
| 100 109 | 
             
                      encoding_list = context.operation.request_compression['encodings']
         | 
| 101 110 | 
             
                      encoding_list.find { |encoding| RequestCompression::SUPPORTED_ENCODINGS.include?(encoding) }
         | 
| @@ -235,7 +235,7 @@ a clock skew correction and retry requests with skewed client clocks. | |
| 235 235 |  | 
| 236 236 | 
             
                      get_send_token(config)
         | 
| 237 237 | 
             
                      add_retry_headers(context)
         | 
| 238 | 
            -
                      response = @handler.call(context)
         | 
| 238 | 
            +
                      response = with_metric(config.retry_mode) { @handler.call(context) }
         | 
| 239 239 | 
             
                      error_inspector = Retries::ErrorInspector.new(
         | 
| 240 240 | 
             
                        response.error, response.context.http_response.status_code
         | 
| 241 241 | 
             
                      )
         | 
| @@ -272,6 +272,10 @@ a clock skew correction and retry requests with skewed client clocks. | |
| 272 272 |  | 
| 273 273 | 
             
                    private
         | 
| 274 274 |  | 
| 275 | 
            +
                    def with_metric(retry_mode, &block)
         | 
| 276 | 
            +
                      Aws::Plugins::UserAgent.metric("RETRY_MODE_#{retry_mode.upcase}", &block)
         | 
| 277 | 
            +
                    end
         | 
| 278 | 
            +
             | 
| 275 279 | 
             
                    def get_send_token(config)
         | 
| 276 280 | 
             
                      # either fail fast or block until a token becomes available
         | 
| 277 281 | 
             
                      # must be configurable
         | 
| @@ -359,7 +363,7 @@ a clock skew correction and retry requests with skewed client clocks. | |
| 359 363 | 
             
                  class LegacyHandler < Seahorse::Client::Handler
         | 
| 360 364 |  | 
| 361 365 | 
             
                    def call(context)
         | 
| 362 | 
            -
                      response = @handler.call(context)
         | 
| 366 | 
            +
                      response = with_metric { @handler.call(context) }
         | 
| 363 367 | 
             
                      if response.error
         | 
| 364 368 | 
             
                        error_inspector = Retries::ErrorInspector.new(
         | 
| 365 369 | 
             
                          response.error, response.context.http_response.status_code
         | 
| @@ -378,6 +382,10 @@ a clock skew correction and retry requests with skewed client clocks. | |
| 378 382 |  | 
| 379 383 | 
             
                    private
         | 
| 380 384 |  | 
| 385 | 
            +
                    def with_metric(&block)
         | 
| 386 | 
            +
                      Aws::Plugins::UserAgent.metric('RETRY_MODE_LEGACY', &block)
         | 
| 387 | 
            +
                    end
         | 
| 388 | 
            +
             | 
| 381 389 | 
             
                    def retry_if_possible(response, error_inspector)
         | 
| 382 390 | 
             
                      context = response.context
         | 
| 383 391 | 
             
                      if should_retry?(context, error_inspector)
         | 
| @@ -4,6 +4,23 @@ module Aws | |
| 4 4 | 
             
              module Plugins
         | 
| 5 5 | 
             
                # @api private
         | 
| 6 6 | 
             
                class UserAgent < Seahorse::Client::Plugin
         | 
| 7 | 
            +
                  METRICS = Aws::Json.load(<<-METRICS)
         | 
| 8 | 
            +
                    {
         | 
| 9 | 
            +
                      "RESOURCE_MODEL": "A",
         | 
| 10 | 
            +
                      "WAITER": "B",
         | 
| 11 | 
            +
                      "PAGINATOR": "C",
         | 
| 12 | 
            +
                      "RETRY_MODE_LEGACY": "D",
         | 
| 13 | 
            +
                      "RETRY_MODE_STANDARD": "E",
         | 
| 14 | 
            +
                      "RETRY_MODE_ADAPTIVE": "F",
         | 
| 15 | 
            +
                      "S3_TRANSFER": "G",
         | 
| 16 | 
            +
                      "S3_CRYPTO_V1N": "H",
         | 
| 17 | 
            +
                      "S3_CRYPTO_V2": "I",
         | 
| 18 | 
            +
                      "S3_EXPRESS_BUCKET": "J",
         | 
| 19 | 
            +
                      "S3_ACCESS_GRANTS": "K",
         | 
| 20 | 
            +
                      "GZIP_REQUEST_COMPRESSION": "L"
         | 
| 21 | 
            +
                    }
         | 
| 22 | 
            +
                  METRICS
         | 
| 23 | 
            +
             | 
| 7 24 | 
             
                  # @api private
         | 
| 8 25 | 
             
                  option(:user_agent_suffix)
         | 
| 9 26 | 
             
                  # @api private
         | 
| @@ -23,12 +40,20 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 23 40 | 
             
                    app_id
         | 
| 24 41 | 
             
                  end
         | 
| 25 42 |  | 
| 26 | 
            -
                   | 
| 27 | 
            -
             | 
| 28 | 
            -
                     | 
| 43 | 
            +
                  # Deprecated - must exist for old service gems
         | 
| 44 | 
            +
                  def self.feature(_feature, &block)
         | 
| 45 | 
            +
                    block.call
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                  def self.metric(metric, &block)
         | 
| 49 | 
            +
                    Thread.current[:aws_sdk_core_user_agent_metric] ||= []
         | 
| 50 | 
            +
                    Thread.current[:aws_sdk_core_user_agent_metric] << METRICS[metric]
         | 
| 29 51 | 
             
                    block.call
         | 
| 30 52 | 
             
                  ensure
         | 
| 31 | 
            -
                    Thread.current[: | 
| 53 | 
            +
                    Thread.current[:aws_sdk_core_user_agent_metric].pop
         | 
| 54 | 
            +
                    if Thread.current[:aws_sdk_core_user_agent_metric].empty?
         | 
| 55 | 
            +
                      Thread.current[:aws_sdk_core_user_agent_metric] = nil
         | 
| 56 | 
            +
                    end
         | 
| 32 57 | 
             
                  end
         | 
| 33 58 |  | 
| 34 59 | 
             
                  # @api private
         | 
| @@ -49,15 +74,24 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 49 74 |  | 
| 50 75 | 
             
                      def to_s
         | 
| 51 76 | 
             
                        ua = "aws-sdk-ruby3/#{CORE_GEM_VERSION}"
         | 
| 52 | 
            -
                        ua += ' ua/2. | 
| 53 | 
            -
                         | 
| 77 | 
            +
                        ua += ' ua/2.1'
         | 
| 78 | 
            +
                        if (api_m = api_metadata)
         | 
| 79 | 
            +
                          ua += " #{api_m}"
         | 
| 80 | 
            +
                        end
         | 
| 54 81 | 
             
                        ua += " #{os_metadata}"
         | 
| 55 82 | 
             
                        ua += " #{language_metadata}"
         | 
| 56 | 
            -
                         | 
| 57 | 
            -
             | 
| 58 | 
            -
                         | 
| 59 | 
            -
                         | 
| 60 | 
            -
             | 
| 83 | 
            +
                        if (env_m = env_metadata)
         | 
| 84 | 
            +
                          ua += " #{env_m}"
         | 
| 85 | 
            +
                        end
         | 
| 86 | 
            +
                        if (app_id_m = app_id_metadata)
         | 
| 87 | 
            +
                          ua += " #{app_id_m}"
         | 
| 88 | 
            +
                        end
         | 
| 89 | 
            +
                        if (framework_m = framework_metadata)
         | 
| 90 | 
            +
                          ua += " #{framework_m}"
         | 
| 91 | 
            +
                        end
         | 
| 92 | 
            +
                        if (metric_m = metric_metadata)
         | 
| 93 | 
            +
                          ua += " #{metric_m}"
         | 
| 94 | 
            +
                        end
         | 
| 61 95 | 
             
                        if @context.config.user_agent_suffix
         | 
| 62 96 | 
             
                          ua += " #{@context.config.user_agent_suffix}"
         | 
| 63 97 | 
             
                        end
         | 
| @@ -93,7 +127,6 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 93 127 | 
             
                        local_version = Gem::Platform.local.version
         | 
| 94 128 | 
             
                        metadata += "##{local_version}" if local_version
         | 
| 95 129 | 
             
                        metadata += " md/#{RbConfig::CONFIG['host_cpu']}"
         | 
| 96 | 
            -
                        metadata
         | 
| 97 130 | 
             
                      end
         | 
| 98 131 |  | 
| 99 132 | 
             
                      # Used to be RUBY_ENGINE/RUBY_VERSION
         | 
| @@ -107,11 +140,7 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 107 140 | 
             
                        "exec-env/#{execution_env}"
         | 
| 108 141 | 
             
                      end
         | 
| 109 142 |  | 
| 110 | 
            -
                      def  | 
| 111 | 
            -
                        "cfg/retry-mode##{@context.config.retry_mode}"
         | 
| 112 | 
            -
                      end
         | 
| 113 | 
            -
             | 
| 114 | 
            -
                      def app_id
         | 
| 143 | 
            +
                      def app_id_metadata
         | 
| 115 144 | 
             
                        return unless (app_id = @context.config.sdk_ua_app_id)
         | 
| 116 145 |  | 
| 117 146 | 
             
                        # Sanitize and only allow these characters
         | 
| @@ -119,12 +148,6 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 119 148 | 
             
                        "app/#{app_id}"
         | 
| 120 149 | 
             
                      end
         | 
| 121 150 |  | 
| 122 | 
            -
                      def feature_metadata
         | 
| 123 | 
            -
                        return unless Thread.current[:aws_sdk_core_user_agent_feature]
         | 
| 124 | 
            -
             | 
| 125 | 
            -
                        Thread.current[:aws_sdk_core_user_agent_feature].join(' ')
         | 
| 126 | 
            -
                      end
         | 
| 127 | 
            -
             | 
| 128 151 | 
             
                      def framework_metadata
         | 
| 129 152 | 
             
                        if (frameworks_cfg = @context.config.user_agent_frameworks).empty?
         | 
| 130 153 | 
             
                          return
         | 
| @@ -141,10 +164,21 @@ variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id. | |
| 141 164 | 
             
                        end
         | 
| 142 165 | 
             
                        frameworks.map { |n, v| "lib/#{n}##{v}" }.join(' ')
         | 
| 143 166 | 
             
                      end
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                      def metric_metadata
         | 
| 169 | 
            +
                        return unless Thread.current[:aws_sdk_core_user_agent_metric]
         | 
| 170 | 
            +
             | 
| 171 | 
            +
                        metrics = Thread.current[:aws_sdk_core_user_agent_metric].join(',')
         | 
| 172 | 
            +
                        # Metric metadata is limited to 1024 bytes
         | 
| 173 | 
            +
                        return "m/#{metrics}" if metrics.bytesize <= 1024
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                        # Removes the last unfinished metric
         | 
| 176 | 
            +
                        "m/#{metrics[0...metrics[0..1024].rindex(',')]}"
         | 
| 177 | 
            +
                      end
         | 
| 144 178 | 
             
                    end
         | 
| 145 179 | 
             
                  end
         | 
| 146 180 |  | 
| 147 | 
            -
                  handler(Handler, priority:  | 
| 181 | 
            +
                  handler(Handler, step: :sign, priority: 97)
         | 
| 148 182 | 
             
                end
         | 
| 149 183 | 
             
              end
         | 
| 150 184 | 
             
            end
         | 
| @@ -2,9 +2,15 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            module Aws
         | 
| 4 4 | 
             
              # A credential provider that executes a given process and attempts
         | 
| 5 | 
            -
              # to read its stdout to  | 
| 5 | 
            +
              # to read its stdout to receive a JSON payload containing the credentials.
         | 
| 6 6 | 
             
              #
         | 
| 7 | 
            -
              #     credentials = Aws::ProcessCredentials.new('/usr/bin/credential_proc')
         | 
| 7 | 
            +
              #     credentials = Aws::ProcessCredentials.new(['/usr/bin/credential_proc'])
         | 
| 8 | 
            +
              #     ec2 = Aws::EC2::Client.new(credentials: credentials)
         | 
| 9 | 
            +
              #
         | 
| 10 | 
            +
              # Arguments should be provided as strings in the array, for example:
         | 
| 11 | 
            +
              #
         | 
| 12 | 
            +
              #     process = ['/usr/bin/credential_proc', 'arg1', 'arg2']
         | 
| 13 | 
            +
              #     credentials = Aws::ProcessCredentials.new(process)
         | 
| 8 14 | 
             
              #     ec2 = Aws::EC2::Client.new(credentials: credentials)
         | 
| 9 15 | 
             
              #
         | 
| 10 16 | 
             
              # Automatically handles refreshing credentials if an Expiration time is
         | 
| @@ -19,40 +25,49 @@ module Aws | |
| 19 25 | 
             
                # Creates a new ProcessCredentials object, which allows an
         | 
| 20 26 | 
             
                # external process to be used as a credential provider.
         | 
| 21 27 | 
             
                #
         | 
| 22 | 
            -
                # @param [String] process  | 
| 23 | 
            -
                #  | 
| 28 | 
            +
                # @param [Array<String>, String] process An array of strings including
         | 
| 29 | 
            +
                #  the process name and its arguments to execute, or a single string to be
         | 
| 30 | 
            +
                #  executed by the shell (deprecated and insecure).
         | 
| 24 31 | 
             
                def initialize(process)
         | 
| 32 | 
            +
                  if process.is_a?(String)
         | 
| 33 | 
            +
                    warn('Passing a single string to Aws::ProcessCredentials.new '\
         | 
| 34 | 
            +
                         'is insecure, please use use an array of system arguments instead')
         | 
| 35 | 
            +
                  end
         | 
| 25 36 | 
             
                  @process = process
         | 
| 26 | 
            -
                  @credentials = credentials_from_process | 
| 37 | 
            +
                  @credentials = credentials_from_process
         | 
| 27 38 | 
             
                  @async_refresh = false
         | 
| 28 39 |  | 
| 29 40 | 
             
                  super
         | 
| 30 41 | 
             
                end
         | 
| 31 42 |  | 
| 32 43 | 
             
                private
         | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
                   | 
| 38 | 
            -
             | 
| 44 | 
            +
             | 
| 45 | 
            +
                def credentials_from_process
         | 
| 46 | 
            +
                  r, w = IO.pipe
         | 
| 47 | 
            +
                  success = system(*@process, out: w)
         | 
| 48 | 
            +
                  w.close
         | 
| 49 | 
            +
                  raw_out = r.read
         | 
| 50 | 
            +
                  r.close
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  unless success
         | 
| 53 | 
            +
                    raise Errors::InvalidProcessCredentialsPayload.new(
         | 
| 54 | 
            +
                      'credential_process provider failure, the credential process had '\
         | 
| 55 | 
            +
                      'non zero exit status and failed to provide credentials'
         | 
| 56 | 
            +
                    )
         | 
| 39 57 | 
             
                  end
         | 
| 40 58 |  | 
| 41 | 
            -
                   | 
| 42 | 
            -
                     | 
| 43 | 
            -
             | 
| 44 | 
            -
                     | 
| 45 | 
            -
                      raise Errors::InvalidProcessCredentialsPayload.new("Invalid JSON response")
         | 
| 46 | 
            -
                    end
         | 
| 47 | 
            -
                    payload_version = creds_json['Version']
         | 
| 48 | 
            -
                    if payload_version == 1
         | 
| 49 | 
            -
                      _parse_payload_format_v1(creds_json)
         | 
| 50 | 
            -
                    else
         | 
| 51 | 
            -
                      raise Errors::InvalidProcessCredentialsPayload.new("Invalid version #{payload_version} for credentials payload")
         | 
| 52 | 
            -
                    end
         | 
| 53 | 
            -
                  else
         | 
| 54 | 
            -
                    raise Errors::InvalidProcessCredentialsPayload.new('credential_process provider failure, the credential process had non zero exit status and failed to provide credentials')
         | 
| 59 | 
            +
                  begin
         | 
| 60 | 
            +
                    creds_json = Aws::Json.load(raw_out)
         | 
| 61 | 
            +
                  rescue Aws::Json::ParseError
         | 
| 62 | 
            +
                    raise Errors::InvalidProcessCredentialsPayload.new('Invalid JSON response')
         | 
| 55 63 | 
             
                  end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  payload_version = creds_json['Version']
         | 
| 66 | 
            +
                  return _parse_payload_format_v1(creds_json) if payload_version == 1
         | 
| 67 | 
            +
             | 
| 68 | 
            +
                  raise Errors::InvalidProcessCredentialsPayload.new(
         | 
| 69 | 
            +
                    "Invalid version #{payload_version} for credentials payload"
         | 
| 70 | 
            +
                  )
         | 
| 56 71 | 
             
                end
         | 
| 57 72 |  | 
| 58 73 | 
             
                def _parse_payload_format_v1(creds_json)
         | 
| @@ -64,11 +79,14 @@ module Aws | |
| 64 79 |  | 
| 65 80 | 
             
                  @expiration = creds_json['Expiration'] ? Time.iso8601(creds_json['Expiration']) : nil
         | 
| 66 81 | 
             
                  return creds if creds.set?
         | 
| 67 | 
            -
             | 
| 82 | 
            +
             | 
| 83 | 
            +
                  raise Errors::InvalidProcessCredentialsPayload.new(
         | 
| 84 | 
            +
                    'Invalid payload for JSON credentials version 1'
         | 
| 85 | 
            +
                  )
         | 
| 68 86 | 
             
                end
         | 
| 69 87 |  | 
| 70 88 | 
             
                def refresh
         | 
| 71 | 
            -
                  @credentials = credentials_from_process | 
| 89 | 
            +
                  @credentials = credentials_from_process
         | 
| 72 90 | 
             
                end
         | 
| 73 91 |  | 
| 74 92 | 
             
                def near_expiration?(expiration_length)
         | 
    
        data/lib/aws-sdk-core/util.rb
    CHANGED
    
    | @@ -90,16 +90,16 @@ module Aws | |
| 90 90 | 
             
                    end
         | 
| 91 91 | 
             
                  end
         | 
| 92 92 |  | 
| 93 | 
            -
                  # @param [String | 
| 93 | 
            +
                  # @param [String] value
         | 
| 94 94 | 
             
                  # @return [Time]
         | 
| 95 95 | 
             
                  def deserialize_time(value)
         | 
| 96 96 | 
             
                    case value
         | 
| 97 97 | 
             
                    when nil then nil
         | 
| 98 | 
            -
                    when  | 
| 98 | 
            +
                    when /^[\d.]+$/ then Time.at(value.to_f).utc
         | 
| 99 99 | 
             
                    else
         | 
| 100 100 | 
             
                      begin
         | 
| 101 | 
            -
                        fractional_time = Time.parse(value). | 
| 102 | 
            -
                        Time.at(fractional_time)
         | 
| 101 | 
            +
                        fractional_time = Time.parse(value).to_f
         | 
| 102 | 
            +
                        Time.at(fractional_time).utc
         | 
| 103 103 | 
             
                      rescue ArgumentError
         | 
| 104 104 | 
             
                        raise "unhandled timestamp format `#{value}'"
         | 
| 105 105 | 
             
                      end
         | 
| @@ -62,7 +62,7 @@ module Aws | |
| 62 62 | 
             
                  def send_request(options)
         | 
| 63 63 | 
             
                    req = options[:client].build_request(@operation_name, options[:params])
         | 
| 64 64 | 
             
                    req.handlers.remove(RAISE_HANDLER)
         | 
| 65 | 
            -
                    Aws::Plugins::UserAgent. | 
| 65 | 
            +
                    Aws::Plugins::UserAgent.metric('WAITER') do
         | 
| 66 66 | 
             
                      req.send_request
         | 
| 67 67 | 
             
                    end
         | 
| 68 68 | 
             
                  end
         | 
    
        data/lib/aws-sdk-sso/client.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-sso.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-ssooidc.rb
    CHANGED
    
    
    
        data/lib/aws-sdk-sts/client.rb
    CHANGED
    
    | @@ -2377,7 +2377,7 @@ module Aws::STS | |
| 2377 2377 | 
             
                    params: params,
         | 
| 2378 2378 | 
             
                    config: config)
         | 
| 2379 2379 | 
             
                  context[:gem_name] = 'aws-sdk-core'
         | 
| 2380 | 
            -
                  context[:gem_version] = '3. | 
| 2380 | 
            +
                  context[:gem_version] = '3.197.1'
         | 
| 2381 2381 | 
             
                  Seahorse::Client::Request.new(handlers, context)
         | 
| 2382 2382 | 
             
                end
         | 
| 2383 2383 |  | 
    
        data/lib/aws-sdk-sts.rb
    CHANGED
    
    
    
        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.197.1
         | 
| 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: 2024- | 
| 11 | 
            +
            date: 2024-06-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jmespath
         |