@NotThreadSafe public abstract class AmazonWebServiceRequest extends Object implements Cloneable, ReadLimitInfo, HandlerContextAware
Modifier and Type | Field and Description |
---|---|
static AmazonWebServiceRequest |
NOOP |
Constructor and Description |
---|
AmazonWebServiceRequest() |
Modifier and Type | Method and Description |
---|---|
<X> void |
addHandlerContext(HandlerContextKey<X> key,
X value)
Adds a context to that is visible to all
RequestHandler2 s. |
AmazonWebServiceRequest |
clone()
Creates a shallow clone of this object for all fields except the handler context.
|
AmazonWebServiceRequest |
getCloneRoot()
Returns the root object from which the current object was cloned; or null if there isn't one.
|
AmazonWebServiceRequest |
getCloneSource()
Returns the source object from which the current object was cloned; or null if there isn't
one.
|
Map<String,List<String>> |
getCustomQueryParameters() |
Map<String,String> |
getCustomRequestHeaders()
Returns an immutable map of custom header names to header values.
|
ProgressListener |
getGeneralProgressListener()
Returns the optional progress listener for receiving updates about the progress of the
request.
|
<X> X |
getHandlerContext(HandlerContextKey<X> key)
Return the context for the given key if present; else return null.
|
int |
getReadLimit()
Returns the read limit for mark-and-reset during retries; or -1 if not
available.
|
RequestClientOptions |
getRequestClientOptions()
Gets the options stored with this request object.
|
AWSCredentials |
getRequestCredentials()
Deprecated.
|
AWSCredentialsProvider |
getRequestCredentialsProvider()
Returns the optional credentials provider to use to sign this request, overriding the default
credentials provider at the client level.
|
RequestMetricCollector |
getRequestMetricCollector()
Returns a request level metric collector; or null if not specified.
|
Integer |
getSdkClientExecutionTimeout()
Returns the amount of time (in milliseconds) to allow the client to complete the execution of
an API call.
|
Integer |
getSdkRequestTimeout()
Returns the amount of time to wait (in milliseconds) for the request to complete before
giving up and timing out.
|
void |
putCustomQueryParameter(String name,
String value)
Add a custom query parameter for the request.
|
String |
putCustomRequestHeader(String name,
String value)
Put a new custom header to the map of custom header names to custom header values, and return
the previous value if the header has already been set in this map.
|
void |
setGeneralProgressListener(ProgressListener progressListener)
Sets the optional progress listener for receiving updates about the progress of the request.
|
void |
setRequestCredentials(AWSCredentials credentials)
Deprecated.
by
setRequestCredentialsProvider(AWSCredentialsProvider) . If you must use AWSCredentials you
can wrap it with a AWSStaticCredentialsProvider . |
void |
setRequestCredentialsProvider(AWSCredentialsProvider credentialsProvider)
Sets the optional credentials provider to use for this request, overriding the default credentials
provider at the client level.
|
void |
setRequestMetricCollector(RequestMetricCollector requestMetricCollector)
Sets a request level request metric collector which takes precedence over the ones at the
http client level and AWS SDK level.
|
void |
setSdkClientExecutionTimeout(int sdkClientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of
an API call.
|
void |
setSdkRequestTimeout(int sdkRequestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving
up and timing out.
|
<T extends AmazonWebServiceRequest> |
withGeneralProgressListener(ProgressListener progressListener)
Sets the optional progress listener for receiving updates about the progress of the request,
and returns a reference to this object so that method calls can be chained together.
|
<T extends AmazonWebServiceRequest> |
withRequestCredentialsProvider(AWSCredentialsProvider credentialsProvider)
Sets the optional credentials provider to use for this request, overriding the default credentials
provider at the client level.
|
<T extends AmazonWebServiceRequest> |
withRequestMetricCollector(RequestMetricCollector metricCollector)
Specifies a request level metric collector which takes precedence over the ones at the http
client level and AWS SDK level.
|
<T extends AmazonWebServiceRequest> |
withSdkClientExecutionTimeout(int sdkClientExecutionTimeout)
Sets the amount of time (in milliseconds) to allow the client to complete the execution of
an API call.
|
<T extends AmazonWebServiceRequest> |
withSdkRequestTimeout(int sdkRequestTimeout)
Sets the amount of time to wait (in milliseconds) for the request to complete before giving
up and timing out.
|
public static final AmazonWebServiceRequest NOOP
@Deprecated public void setRequestCredentials(AWSCredentials credentials)
setRequestCredentialsProvider(AWSCredentialsProvider)
. If you must use AWSCredentials
you
can wrap it with a AWSStaticCredentialsProvider
.credentials
- The optional AWS security credentials to use for this request, overriding the default credentials set at
the client level.@Deprecated public AWSCredentials getRequestCredentials()
getRequestCredentialsProvider()
public void setRequestCredentialsProvider(AWSCredentialsProvider credentialsProvider)
credentialsProvider
- The optional AWS security credentials provider to use for this request, overriding the
default credentials provider at the client level.public AWSCredentialsProvider getRequestCredentialsProvider()
public <T extends AmazonWebServiceRequest> T withRequestCredentialsProvider(AWSCredentialsProvider credentialsProvider)
credentialsProvider
- The optional AWS security credentials provider to use for this request, overriding the
default credentials provider at the client level.public RequestClientOptions getRequestClientOptions()
public RequestMetricCollector getRequestMetricCollector()
public void setRequestMetricCollector(RequestMetricCollector requestMetricCollector)
public <T extends AmazonWebServiceRequest> T withRequestMetricCollector(RequestMetricCollector metricCollector)
public void setGeneralProgressListener(ProgressListener progressListener)
progressListener
- The new progress listener.public ProgressListener getGeneralProgressListener()
public <T extends AmazonWebServiceRequest> T withGeneralProgressListener(ProgressListener progressListener)
progressListener
- The new progress listener.public Map<String,String> getCustomRequestHeaders()
public String putCustomRequestHeader(String name, String value)
Any custom headers that are defined are used in the HTTP request to the AWS service. These headers will be silently ignored in the event that AWS does not recognize them.
NOTE: Custom header values set via this method will overwrite any conflicting values coming from the request parameters.
name
- The name of the header to addvalue
- The value of the header to addpublic Map<String,List<String>> getCustomQueryParameters()
public void putCustomQueryParameter(String name, String value)
Any custom query parameters that are defined are used in the HTTP request to the AWS service.
name
- The name of the query parametervalue
- The value of the query parameter. Only the parameter name will be added in the URI
if the value is set to null. For example, putCustomQueryParameter("param", null)
will be serialized to "?param", while putCustomQueryParameter("param", "") will be
serialized to "?param=".public final int getReadLimit()
ReadLimitInfo
getReadLimit
in interface ReadLimitInfo
public AmazonWebServiceRequest getCloneSource()
public AmazonWebServiceRequest getCloneRoot()
public Integer getSdkRequestTimeout()
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.
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.
Note: This feature is not compatible with Java 1.6.
AmazonWebServiceRequest#setSdkClientExecutionTimeout(int)} to enforce a timeout
across all retries
public void setSdkRequestTimeout(int sdkRequestTimeout)
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.
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.
Note: This feature is not compatible with Java 1.6.
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.AmazonWebServiceRequest#setSdkClientExecutionTimeout(int)} to enforce a timeout
across all retries
public <T extends AmazonWebServiceRequest> T withSdkRequestTimeout(int sdkRequestTimeout)
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.
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.
Note: This feature is not compatible with Java 1.6.
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.AmazonWebServiceRequest
object.AmazonWebServiceRequest#setSdkClientExecutionTimeout(int)} to enforce a timeout
across all retries
public Integer getSdkClientExecutionTimeout()
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.
The client execution 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 client execution timeout feature should not be used when absolute precision is needed.
This may be used together with setSdkRequestTimeout(int)
to
enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time
spent on all requests across retries (i.e. the 'client execution' time). A non-positive value
disables this feature.
Note: This feature is not compatible with Java 1.6.
AmazonWebServiceRequest#setSdkRequestTimeout(int)} to enforce a timeout per HTTP
request
public void setSdkClientExecutionTimeout(int sdkClientExecutionTimeout)
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.
The client execution 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 client execution timeout feature should not be used when absolute precision is needed.
This may be used together with setSdkRequestTimeout(int)
to
enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time
spent on all requests across retries (i.e. the 'client execution' time). A non-positive value
disables this feature.
Note: This feature is not compatible with Java 1.6.
sdkClientExecutionTimeout
- The amount of time (in milliseconds) to allow the client to complete the execution
of an API call. A non-positive value disables the timeout for this request.AmazonWebServiceRequest#setSdkRequestTimeout(int)} to enforce a timeout per HTTP
request
public <T extends AmazonWebServiceRequest> T withSdkClientExecutionTimeout(int sdkClientExecutionTimeout)
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.
The client execution 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 client execution timeout feature should not be used when absolute precision is needed.
This may be used together with setSdkRequestTimeout(int)
to
enforce both a timeout on each individual HTTP request (i.e. each retry) and the total time
spent on all requests across retries (i.e. the 'client execution' time). A non-positive value
disables this feature.
Note: This feature is not compatible with Java 1.6.
sdkClientExecutionTimeout
- The amount of time (in milliseconds) to allow the client to complete the execution
of an API call. A non-positive value disables the timeout for this request.AmazonWebServiceRequest#setSdkRequestTimeout(int)} to enforce a timeout per HTTP
request
public <X> void addHandlerContext(HandlerContextKey<X> key, X value)
HandlerContextAware
RequestHandler2
s.
Note that, context added here will available only for the scope of
the request execution and will not be marshalled over the wire.addHandlerContext
in interface HandlerContextAware
key
- the key for the property being set in the request.value
- the value for the property being set in the request.public <X> X getHandlerContext(HandlerContextKey<X> key)
HandlerContextAware
getHandlerContext
in interface HandlerContextAware
key
- the key for the contextpublic AmazonWebServiceRequest clone()
clone
in class Object
Object.clone()
Copyright © 2013 Amazon Web Services, Inc. All Rights Reserved.