software.amazon.awssdk.services.s3.model.UploadPartCopyResponse Maven / Gradle / Ivy
Show all versions of s3 Show documentation
/*
* Copyright 2014-2019 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 software.amazon.awssdk.services.s3.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.PayloadTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class UploadPartCopyResponse extends S3Response implements
ToCopyableBuilder {
private static final SdkField COPY_SOURCE_VERSION_ID_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::copySourceVersionId))
.setter(setter(Builder::copySourceVersionId))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER).locationName("x-amz-copy-source-version-id")
.unmarshallLocationName("x-amz-copy-source-version-id").build()).build();
private static final SdkField COPY_PART_RESULT_FIELD = SdkField
. builder(MarshallingType.SDK_POJO)
.getter(getter(UploadPartCopyResponse::copyPartResult))
.setter(setter(Builder::copyPartResult))
.constructor(CopyPartResult::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CopyPartResult")
.unmarshallLocationName("CopyPartResult").build(), PayloadTrait.create()).build();
private static final SdkField SERVER_SIDE_ENCRYPTION_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::serverSideEncryptionAsString))
.setter(setter(Builder::serverSideEncryption))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER).locationName("x-amz-server-side-encryption")
.unmarshallLocationName("x-amz-server-side-encryption").build()).build();
private static final SdkField SSE_CUSTOMER_ALGORITHM_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::sseCustomerAlgorithm))
.setter(setter(Builder::sseCustomerAlgorithm))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER)
.locationName("x-amz-server-side-encryption-customer-algorithm")
.unmarshallLocationName("x-amz-server-side-encryption-customer-algorithm").build()).build();
private static final SdkField SSE_CUSTOMER_KEY_MD5_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::sseCustomerKeyMD5))
.setter(setter(Builder::sseCustomerKeyMD5))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER)
.locationName("x-amz-server-side-encryption-customer-key-MD5")
.unmarshallLocationName("x-amz-server-side-encryption-customer-key-MD5").build()).build();
private static final SdkField SSEKMS_KEY_ID_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::ssekmsKeyId))
.setter(setter(Builder::ssekmsKeyId))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER)
.locationName("x-amz-server-side-encryption-aws-kms-key-id")
.unmarshallLocationName("x-amz-server-side-encryption-aws-kms-key-id").build()).build();
private static final SdkField REQUEST_CHARGED_FIELD = SdkField
. builder(MarshallingType.STRING)
.getter(getter(UploadPartCopyResponse::requestChargedAsString))
.setter(setter(Builder::requestCharged))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER).locationName("x-amz-request-charged")
.unmarshallLocationName("x-amz-request-charged").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(COPY_SOURCE_VERSION_ID_FIELD,
COPY_PART_RESULT_FIELD, SERVER_SIDE_ENCRYPTION_FIELD, SSE_CUSTOMER_ALGORITHM_FIELD, SSE_CUSTOMER_KEY_MD5_FIELD,
SSEKMS_KEY_ID_FIELD, REQUEST_CHARGED_FIELD));
private final String copySourceVersionId;
private final CopyPartResult copyPartResult;
private final String serverSideEncryption;
private final String sseCustomerAlgorithm;
private final String sseCustomerKeyMD5;
private final String ssekmsKeyId;
private final String requestCharged;
private UploadPartCopyResponse(BuilderImpl builder) {
super(builder);
this.copySourceVersionId = builder.copySourceVersionId;
this.copyPartResult = builder.copyPartResult;
this.serverSideEncryption = builder.serverSideEncryption;
this.sseCustomerAlgorithm = builder.sseCustomerAlgorithm;
this.sseCustomerKeyMD5 = builder.sseCustomerKeyMD5;
this.ssekmsKeyId = builder.ssekmsKeyId;
this.requestCharged = builder.requestCharged;
}
/**
*
* The version of the source object that was copied, if you have enabled versioning on the source bucket.
*
*
* @return The version of the source object that was copied, if you have enabled versioning on the source bucket.
*/
public String copySourceVersionId() {
return copySourceVersionId;
}
/**
*
*
* @return
*/
public CopyPartResult copyPartResult() {
return copyPartResult;
}
/**
*
* The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #serverSideEncryption} will return {@link ServerSideEncryption#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #serverSideEncryptionAsString}.
*
*
* @return The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
* @see ServerSideEncryption
*/
public ServerSideEncryption serverSideEncryption() {
return ServerSideEncryption.fromValue(serverSideEncryption);
}
/**
*
* The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #serverSideEncryption} will return {@link ServerSideEncryption#UNKNOWN_TO_SDK_VERSION}. The raw value
* returned by the service is available from {@link #serverSideEncryptionAsString}.
*
*
* @return The Server-side encryption algorithm used when storing this object in S3 (e.g., AES256, aws:kms).
* @see ServerSideEncryption
*/
public String serverSideEncryptionAsString() {
return serverSideEncryption;
}
/**
*
* If server-side encryption with a customer-provided encryption key was requested, the response will include this
* header confirming the encryption algorithm used.
*
*
* @return If server-side encryption with a customer-provided encryption key was requested, the response will
* include this header confirming the encryption algorithm used.
*/
public String sseCustomerAlgorithm() {
return sseCustomerAlgorithm;
}
/**
*
* If server-side encryption with a customer-provided encryption key was requested, the response will include this
* header to provide round trip message integrity verification of the customer-provided encryption key.
*
*
* @return If server-side encryption with a customer-provided encryption key was requested, the response will
* include this header to provide round trip message integrity verification of the customer-provided
* encryption key.
*/
public String sseCustomerKeyMD5() {
return sseCustomerKeyMD5;
}
/**
*
* If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used for the
* object.
*
*
* @return If present, specifies the ID of the AWS Key Management Service (KMS) master encryption key that was used
* for the object.
*/
public String ssekmsKeyId() {
return ssekmsKeyId;
}
/**
* Returns the value of the RequestCharged property for this object.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #requestCharged}
* will return {@link RequestCharged#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #requestChargedAsString}.
*
*
* @return The value of the RequestCharged property for this object.
* @see RequestCharged
*/
public RequestCharged requestCharged() {
return RequestCharged.fromValue(requestCharged);
}
/**
* Returns the value of the RequestCharged property for this object.
*
* If the service returns an enum value that is not available in the current SDK version, {@link #requestCharged}
* will return {@link RequestCharged#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #requestChargedAsString}.
*
*
* @return The value of the RequestCharged property for this object.
* @see RequestCharged
*/
public String requestChargedAsString() {
return requestCharged;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(copySourceVersionId());
hashCode = 31 * hashCode + Objects.hashCode(copyPartResult());
hashCode = 31 * hashCode + Objects.hashCode(serverSideEncryptionAsString());
hashCode = 31 * hashCode + Objects.hashCode(sseCustomerAlgorithm());
hashCode = 31 * hashCode + Objects.hashCode(sseCustomerKeyMD5());
hashCode = 31 * hashCode + Objects.hashCode(ssekmsKeyId());
hashCode = 31 * hashCode + Objects.hashCode(requestChargedAsString());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof UploadPartCopyResponse)) {
return false;
}
UploadPartCopyResponse other = (UploadPartCopyResponse) obj;
return Objects.equals(copySourceVersionId(), other.copySourceVersionId())
&& Objects.equals(copyPartResult(), other.copyPartResult())
&& Objects.equals(serverSideEncryptionAsString(), other.serverSideEncryptionAsString())
&& Objects.equals(sseCustomerAlgorithm(), other.sseCustomerAlgorithm())
&& Objects.equals(sseCustomerKeyMD5(), other.sseCustomerKeyMD5())
&& Objects.equals(ssekmsKeyId(), other.ssekmsKeyId())
&& Objects.equals(requestChargedAsString(), other.requestChargedAsString());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("UploadPartCopyResponse").add("CopySourceVersionId", copySourceVersionId())
.add("CopyPartResult", copyPartResult()).add("ServerSideEncryption", serverSideEncryptionAsString())
.add("SSECustomerAlgorithm", sseCustomerAlgorithm()).add("SSECustomerKeyMD5", sseCustomerKeyMD5())
.add("SSEKMSKeyId", ssekmsKeyId() == null ? null : "*** Sensitive Data Redacted ***")
.add("RequestCharged", requestChargedAsString()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "CopySourceVersionId":
return Optional.ofNullable(clazz.cast(copySourceVersionId()));
case "CopyPartResult":
return Optional.ofNullable(clazz.cast(copyPartResult()));
case "ServerSideEncryption":
return Optional.ofNullable(clazz.cast(serverSideEncryptionAsString()));
case "SSECustomerAlgorithm":
return Optional.ofNullable(clazz.cast(sseCustomerAlgorithm()));
case "SSECustomerKeyMD5":
return Optional.ofNullable(clazz.cast(sseCustomerKeyMD5()));
case "SSEKMSKeyId":
return Optional.ofNullable(clazz.cast(ssekmsKeyId()));
case "RequestCharged":
return Optional.ofNullable(clazz.cast(requestChargedAsString()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function