code: public <T extends AmazonWebServiceRequest> T withSdkRequestTimeout(int sdkRequestTimeout) {
          setSdkRequestTimeout(sdkRequestTimeout);
          @SuppressWarnings("unchecked")
          T t = (T) this;
          return t;
      }
docs: Sets the amount of time to wait (in milliseconds) for the request to complete before giving
  up and timing out. A non-positive value disables this feature. Returns the updated
  AmazonWebServiceRequest object so that additional method calls may be chained together.
  <p>
  This feature requires buffering the entire response (for non-streaming APIs) into memory to
  enforce a hard timeout when reading the response. For APIs that return large responses this
  could be expensive.
  <p>
  <p>
  The request timeout feature doesn't have strict guarantees on how quickly a request is
  aborted when the timeout is breached. The typical case aborts the request within a few
  milliseconds but there may occasionally be requests that don't get aborted until several
  seconds after the timer has been breached. Because of this the request timeout feature should
  not be used when absolute precision is needed.
  </p>
  <p>
  <b>Note:</b> This feature is not compatible with Java 1.6.
  </p>
  
  @param sdkRequestTimeout
  The amount of time to wait (in milliseconds) for the request to complete before
  giving up and timing out. A non-positive value disables the timeout for this
  request.
  @return The updated {@link AmazonWebServiceRequest} object.
  @see {@link AmazonWebServiceRequest#setSdkClientExecutionTimeout(int)} to enforce a timeout
  across all retries