All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.mediastoredata.model.GetObjectRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Elemental MediaStore Data module holds the client classes that are used for communicating with AWS Elemental MediaStore Data Plane Service

There is a newer version: 2.29.39
Show newest version
/*
 * 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 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 getter(Function g) { return obj -> g.apply((GetObjectRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends MediaStoreDataRequest.Builder, SdkPojo, CopyableBuilder { /** *

* 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. *

* * @param path * 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 Returns a reference to this object so that method calls can be chained together. */ Builder path(String 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. *

* * @param range * 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 Returns a reference to this object so that method calls can be chained together. */ Builder range(String range); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends MediaStoreDataRequest.BuilderImpl implements Builder { private String path; private String range; private BuilderImpl() { } private BuilderImpl(GetObjectRequest model) { super(model); path(model.path); range(model.range); } public final String getPath() { return path; } @Override public final Builder path(String path) { this.path = path; return this; } public final void setPath(String path) { this.path = path; } public final String getRange() { return range; } @Override public final Builder range(String range) { this.range = range; return this; } public final void setRange(String range) { this.range = range; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public GetObjectRequest build() { return new GetObjectRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy