com.amazonaws.services.glacier.model.GetJobOutputRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk Show documentation
/*
* Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.glacier.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
* Container for the parameters to the {@link com.amazonaws.services.glacier.AmazonGlacier#getJobOutput(GetJobOutputRequest) GetJobOutput operation}.
*
* This operation downloads the output of the job you initiated using
* InitiateJob. Depending on the job type you specified when you
* initiated the job, the output will be either the content of an archive
* or a vault inventory.
*
*
* A job ID will not expire for at least 24 hours after Amazon Glacier
* completes the job. That is, you can download the job output within the
* 24 hours period after Amazon Glacier completes the job.
*
*
* If the job output is large, then you can use the Range
* request header to retrieve a portion of the output. This allows you to
* download the entire output in smaller chunks of bytes. For example,
* suppose you have 1 GB of job output you want to download and you
* decide to download 128 MB chunks of data at a time, which is a total
* of eight Get Job Output requests. You use the following process to
* download the job output:
*
* -
* Download a 128 MB chunk of output by specifying the appropriate byte
* range using the Range
header.
*
*
* -
* Along with the data, the response includes a checksum of the payload.
* You compute the checksum of the payload on the client and compare it
* with the checksum you received in the response to ensure you received
* all the expected data.
*
*
* -
* Repeat steps 1 and 2 for all the eight 128 MB chunks of output data,
* each time specifying the appropriate byte range.
*
*
* -
* After downloading all the parts of the job output, you have a list of
* eight checksum values. Compute the tree hash of these values to find
* the checksum of the entire output. Using the DescribeJob API, obtain
* job information of the job that provided you the output. The response
* includes the checksum of the entire archive stored in Amazon Glacier.
* You compare this value with the checksum you computed to ensure you
* have downloaded the entire archive content with no errors.
*
*
*
* An AWS account has full permission to perform all operations
* (actions). However, AWS Identity and Access Management (IAM) users
* don't have any permissions by default. You must grant them explicit
* permission to perform specific actions. For more information, see
* Access Control Using AWS Identity and Access Management (IAM)
* .
*
*
* For conceptual information and the underlying REST API, go to
* Downloading a Vault Inventory , Downloading an Archive , and Get Job Output
*
*
*
* @see com.amazonaws.services.glacier.AmazonGlacier#getJobOutput(GetJobOutputRequest)
*/
public class GetJobOutputRequest extends AmazonWebServiceRequest implements Serializable {
/**
* The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*/
private String accountId;
/**
* The name of the vault.
*/
private String vaultName;
/**
* The job ID whose data is downloaded.
*/
private String jobId;
/**
* The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*/
private String range;
/**
* Default constructor for a new GetJobOutputRequest object. Callers should use the
* setter or fluent setter (with...) methods to initialize this object after creating it.
*/
public GetJobOutputRequest() {}
/**
* Constructs a new GetJobOutputRequest object.
* Callers should use the setter or fluent setter (with...) methods to
* initialize any additional object members.
*
* @param vaultName The name of the vault.
* @param jobId The job ID whose data is downloaded.
* @param range The range of bytes to retrieve from the output. For
* example, if you want to download the first 1,048,576 bytes, specify
* "Range: bytes=0-1048575". By default, this operation downloads the
* entire output.
*/
public GetJobOutputRequest(String vaultName, String jobId, String range) {
setVaultName(vaultName);
setJobId(jobId);
setRange(range);
}
/**
* Constructs a new GetJobOutputRequest object.
* Callers should use the setter or fluent setter (with...) methods to
* initialize any additional object members.
*
* @param accountId The AccountId
is the AWS Account ID. You
* can specify either the AWS Account ID or optionally a '-', in which
* case Amazon Glacier uses the AWS Account ID associated with the
* credentials used to sign the request. If you specify your Account ID,
* do not include hyphens in it.
* @param vaultName The name of the vault.
* @param jobId The job ID whose data is downloaded.
* @param range The range of bytes to retrieve from the output. For
* example, if you want to download the first 1,048,576 bytes, specify
* "Range: bytes=0-1048575". By default, this operation downloads the
* entire output.
*/
public GetJobOutputRequest(String accountId, String vaultName, String jobId, String range) {
setAccountId(accountId);
setVaultName(vaultName);
setJobId(jobId);
setRange(range);
}
/**
* The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*
* @return The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*/
public String getAccountId() {
return accountId;
}
/**
* The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*
* @param accountId The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*/
public void setAccountId(String accountId) {
this.accountId = accountId;
}
/**
* The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param accountId The AccountId
is the AWS Account ID. You can specify
* either the AWS Account ID or optionally a '-', in which case Amazon
* Glacier uses the AWS Account ID associated with the credentials used
* to sign the request. If you specify your Account ID, do not include
* hyphens in it.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetJobOutputRequest withAccountId(String accountId) {
this.accountId = accountId;
return this;
}
/**
* The name of the vault.
*
* @return The name of the vault.
*/
public String getVaultName() {
return vaultName;
}
/**
* The name of the vault.
*
* @param vaultName The name of the vault.
*/
public void setVaultName(String vaultName) {
this.vaultName = vaultName;
}
/**
* The name of the vault.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param vaultName The name of the vault.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetJobOutputRequest withVaultName(String vaultName) {
this.vaultName = vaultName;
return this;
}
/**
* The job ID whose data is downloaded.
*
* @return The job ID whose data is downloaded.
*/
public String getJobId() {
return jobId;
}
/**
* The job ID whose data is downloaded.
*
* @param jobId The job ID whose data is downloaded.
*/
public void setJobId(String jobId) {
this.jobId = jobId;
}
/**
* The job ID whose data is downloaded.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param jobId The job ID whose data is downloaded.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetJobOutputRequest withJobId(String jobId) {
this.jobId = jobId;
return this;
}
/**
* The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*
* @return The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*/
public String getRange() {
return range;
}
/**
* The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*
* @param range The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*/
public void setRange(String range) {
this.range = range;
}
/**
* The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*
* Returns a reference to this object so that method calls can be chained together.
*
* @param range The range of bytes to retrieve from the output. For example, if you
* want to download the first 1,048,576 bytes, specify "Range:
* bytes=0-1048575". By default, this operation downloads the entire
* output.
*
* @return A reference to this updated object so that method calls can be chained
* together.
*/
public GetJobOutputRequest withRange(String range) {
this.range = range;
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getAccountId() != null) sb.append("AccountId: " + getAccountId() + ",");
if (getVaultName() != null) sb.append("VaultName: " + getVaultName() + ",");
if (getJobId() != null) sb.append("JobId: " + getJobId() + ",");
if (getRange() != null) sb.append("Range: " + getRange() );
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAccountId() == null) ? 0 : getAccountId().hashCode());
hashCode = prime * hashCode + ((getVaultName() == null) ? 0 : getVaultName().hashCode());
hashCode = prime * hashCode + ((getJobId() == null) ? 0 : getJobId().hashCode());
hashCode = prime * hashCode + ((getRange() == null) ? 0 : getRange().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null) return false;
if (obj instanceof GetJobOutputRequest == false) return false;
GetJobOutputRequest other = (GetJobOutputRequest)obj;
if (other.getAccountId() == null ^ this.getAccountId() == null) return false;
if (other.getAccountId() != null && other.getAccountId().equals(this.getAccountId()) == false) return false;
if (other.getVaultName() == null ^ this.getVaultName() == null) return false;
if (other.getVaultName() != null && other.getVaultName().equals(this.getVaultName()) == false) return false;
if (other.getJobId() == null ^ this.getJobId() == null) return false;
if (other.getJobId() != null && other.getJobId().equals(this.getJobId()) == false) return false;
if (other.getRange() == null ^ this.getRange() == null) return false;
if (other.getRange() != null && other.getRange().equals(this.getRange()) == false) return false;
return true;
}
}