software.amazon.awssdk.services.mediastoredata.model.GetObjectRequest Maven / Gradle / Ivy
Show all versions of mediastoredata 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.mediastoredata.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.awscore.AwsRequestOverrideConfiguration;
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.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class GetObjectRequest extends MediaStoreDataRequest implements
ToCopyableBuilder {
private static final SdkField PATH_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(GetObjectRequest::path)).setter(setter(Builder::path))
.traits(LocationTrait.builder().location(MarshallLocation.GREEDY_PATH).locationName("Path").build()).build();
private static final SdkField RANGE_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(GetObjectRequest::range)).setter(setter(Builder::range))
.traits(LocationTrait.builder().location(MarshallLocation.HEADER).locationName("Range").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(PATH_FIELD, RANGE_FIELD));
private final String path;
private final String range;
private GetObjectRequest(BuilderImpl builder) {
super(builder);
this.path = builder.path;
this.range = builder.range;
}
/**
*
* The path (including the file name) where the object is stored in the container. Format: <folder
* name>/<folder name>/<file name>
*
*
* For example, to upload the file mlaw.avi
to the folder path premium\canada
in the
* container movies
, enter the path premium/canada/mlaw.avi
.
*
*
* Do not include the container name in this path.
*
*
* If the path includes any folders that don't exist yet, the service creates them. For example, suppose you have an
* existing premium/usa
subfolder. If you specify premium/canada
, the service creates a
* canada
subfolder in the premium
folder. You then have two subfolders, usa
* and canada
, in the premium
folder.
*
*
* There is no correlation between the path to the source and the path (folders) in the container in AWS Elemental
* MediaStore.
*
*
* For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide.
*
*
* The file name is the name that is assigned to the file that you upload. The file can have the same name inside
* and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include or omit an
* extension.
*
*
* @return The path (including the file name) where the object is stored in the container. Format: <folder
* name>/<folder name>/<file name>
*
* For example, to upload the file mlaw.avi
to the folder path premium\canada
in
* the container movies
, enter the path premium/canada/mlaw.avi
.
*
*
* Do not include the container name in this path.
*
*
* If the path includes any folders that don't exist yet, the service creates them. For example, suppose you
* have an existing premium/usa
subfolder. If you specify premium/canada
, the
* service creates a canada
subfolder in the premium
folder. You then have two
* subfolders, usa
and canada
, in the premium
folder.
*
*
* There is no correlation between the path to the source and the path (folders) in the container in AWS
* Elemental MediaStore.
*
*
* For more information about folders and how they exist in a container, see the AWS Elemental MediaStore User Guide.
*
*
* The file name is the name that is assigned to the file that you upload. The file can have the same name
* inside and outside of AWS Elemental MediaStore, or it can have the same name. The file name can include
* or omit an extension.
*/
public String path() {
return path;
}
/**
*
* The range bytes of an object to retrieve. For more information about the Range
header, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35. AWS Elemental MediaStore ignores this
* header for partially uploaded objects that have streaming upload availability.
*
*
* @return The range bytes of an object to retrieve. For more information about the Range
header, see
* http://www.w3.org/Protocols/
* rfc2616/rfc2616-sec14.html#sec14.35. AWS Elemental MediaStore ignores this header for partially
* uploaded objects that have streaming upload availability.
*/
public String range() {
return range;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(path());
hashCode = 31 * hashCode + Objects.hashCode(range());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof GetObjectRequest)) {
return false;
}
GetObjectRequest other = (GetObjectRequest) obj;
return Objects.equals(path(), other.path()) && Objects.equals(range(), other.range());
}
/**
* 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("GetObjectRequest").add("Path", path()).add("Range", range()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "Path":
return Optional.ofNullable(clazz.cast(path()));
case "Range":
return Optional.ofNullable(clazz.cast(range()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function