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

software.amazon.awssdk.services.mediaconvert.model.CreateJobRequest Maven / Gradle / Ivy

Go to download

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

There is a newer version: 2.29.15
Show newest version
/*
 * Copyright 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.mediaconvert.model;

import java.beans.Transient;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
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.DefaultValueTrait;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
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 CreateJobRequest extends MediaConvertRequest implements
        ToCopyableBuilder {
    private static final SdkField ACCELERATION_SETTINGS_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO).memberName("AccelerationSettings")
            .getter(getter(CreateJobRequest::accelerationSettings)).setter(setter(Builder::accelerationSettings))
            .constructor(AccelerationSettings::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("accelerationSettings").build())
            .build();

    private static final SdkField BILLING_TAGS_SOURCE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("BillingTagsSource").getter(getter(CreateJobRequest::billingTagsSourceAsString))
            .setter(setter(Builder::billingTagsSource))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("billingTagsSource").build()).build();

    private static final SdkField CLIENT_REQUEST_TOKEN_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("ClientRequestToken")
            .getter(getter(CreateJobRequest::clientRequestToken))
            .setter(setter(Builder::clientRequestToken))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clientRequestToken").build(),
                    DefaultValueTrait.idempotencyToken()).build();

    private static final SdkField> HOP_DESTINATIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("HopDestinations")
            .getter(getter(CreateJobRequest::hopDestinations))
            .setter(setter(Builder::hopDestinations))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("hopDestinations").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(HopDestination::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final SdkField JOB_ENGINE_VERSION_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("JobEngineVersion").getter(getter(CreateJobRequest::jobEngineVersion))
            .setter(setter(Builder::jobEngineVersion))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("jobEngineVersion").build()).build();

    private static final SdkField JOB_TEMPLATE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("JobTemplate").getter(getter(CreateJobRequest::jobTemplate)).setter(setter(Builder::jobTemplate))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("jobTemplate").build()).build();

    private static final SdkField PRIORITY_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("Priority").getter(getter(CreateJobRequest::priority)).setter(setter(Builder::priority))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("priority").build()).build();

    private static final SdkField QUEUE_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Queue")
            .getter(getter(CreateJobRequest::queue)).setter(setter(Builder::queue))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("queue").build()).build();

    private static final SdkField ROLE_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Role")
            .getter(getter(CreateJobRequest::role)).setter(setter(Builder::role))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("role").build()).build();

    private static final SdkField SETTINGS_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
            .memberName("Settings").getter(getter(CreateJobRequest::settings)).setter(setter(Builder::settings))
            .constructor(JobSettings::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("settings").build()).build();

    private static final SdkField SIMULATE_RESERVED_QUEUE_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("SimulateReservedQueue").getter(getter(CreateJobRequest::simulateReservedQueueAsString))
            .setter(setter(Builder::simulateReservedQueue))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("simulateReservedQueue").build())
            .build();

    private static final SdkField STATUS_UPDATE_INTERVAL_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("StatusUpdateInterval").getter(getter(CreateJobRequest::statusUpdateIntervalAsString))
            .setter(setter(Builder::statusUpdateInterval))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("statusUpdateInterval").build())
            .build();

    private static final SdkField> TAGS_FIELD = SdkField
            .> builder(MarshallingType.MAP)
            .memberName("Tags")
            .getter(getter(CreateJobRequest::tags))
            .setter(setter(Builder::tags))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("tags").build(),
                    MapTrait.builder()
                            .keyLocationName("key")
                            .valueLocationName("value")
                            .valueFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("value").build()).build()).build()).build();

    private static final SdkField> USER_METADATA_FIELD = SdkField
            .> builder(MarshallingType.MAP)
            .memberName("UserMetadata")
            .getter(getter(CreateJobRequest::userMetadata))
            .setter(setter(Builder::userMetadata))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("userMetadata").build(),
                    MapTrait.builder()
                            .keyLocationName("key")
                            .valueLocationName("value")
                            .valueFieldInfo(
                                    SdkField. builder(MarshallingType.STRING)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("value").build()).build()).build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ACCELERATION_SETTINGS_FIELD,
            BILLING_TAGS_SOURCE_FIELD, CLIENT_REQUEST_TOKEN_FIELD, HOP_DESTINATIONS_FIELD, JOB_ENGINE_VERSION_FIELD,
            JOB_TEMPLATE_FIELD, PRIORITY_FIELD, QUEUE_FIELD, ROLE_FIELD, SETTINGS_FIELD, SIMULATE_RESERVED_QUEUE_FIELD,
            STATUS_UPDATE_INTERVAL_FIELD, TAGS_FIELD, USER_METADATA_FIELD));

    private final AccelerationSettings accelerationSettings;

    private final String billingTagsSource;

    private final String clientRequestToken;

    private final List hopDestinations;

    private final String jobEngineVersion;

    private final String jobTemplate;

    private final Integer priority;

    private final String queue;

    private final String role;

    private final JobSettings settings;

    private final String simulateReservedQueue;

    private final String statusUpdateInterval;

    private final Map tags;

    private final Map userMetadata;

    private CreateJobRequest(BuilderImpl builder) {
        super(builder);
        this.accelerationSettings = builder.accelerationSettings;
        this.billingTagsSource = builder.billingTagsSource;
        this.clientRequestToken = builder.clientRequestToken;
        this.hopDestinations = builder.hopDestinations;
        this.jobEngineVersion = builder.jobEngineVersion;
        this.jobTemplate = builder.jobTemplate;
        this.priority = builder.priority;
        this.queue = builder.queue;
        this.role = builder.role;
        this.settings = builder.settings;
        this.simulateReservedQueue = builder.simulateReservedQueue;
        this.statusUpdateInterval = builder.statusUpdateInterval;
        this.tags = builder.tags;
        this.userMetadata = builder.userMetadata;
    }

    /**
     * Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content. Outputs
     * that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS Elemental
     * MediaConvert User Guide.
     * 
     * @return Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content.
     *         Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the
     *         AWS Elemental MediaConvert User Guide.
     */
    public final AccelerationSettings accelerationSettings() {
        return accelerationSettings;
    }

    /**
     * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert
     * costs on any billing report that you set up. Any transcoding outputs that don't have an associated tag will
     * appear in your billing report unsorted. If you don't choose a valid value for this field, your job outputs will
     * appear on the billing report unsorted.
     * 

* If the service returns an enum value that is not available in the current SDK version, {@link #billingTagsSource} * will return {@link BillingTagsSource#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #billingTagsSourceAsString}. *

* * @return Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this * field, your job outputs will appear on the billing report unsorted. * @see BillingTagsSource */ public final BillingTagsSource billingTagsSource() { return BillingTagsSource.fromValue(billingTagsSource); } /** * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental MediaConvert * costs on any billing report that you set up. Any transcoding outputs that don't have an associated tag will * appear in your billing report unsorted. If you don't choose a valid value for this field, your job outputs will * appear on the billing report unsorted. *

* If the service returns an enum value that is not available in the current SDK version, {@link #billingTagsSource} * will return {@link BillingTagsSource#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #billingTagsSourceAsString}. *

* * @return Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this * field, your job outputs will appear on the billing report unsorted. * @see BillingTagsSource */ public final String billingTagsSourceAsString() { return billingTagsSource; } /** * Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request token can be * any string that includes up to 64 ASCII characters. If you reuse a client request token within one minute of a * successful request, the API returns the job details of the original request instead. For more information see * https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html. * * @return Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request * token can be any string that includes up to 64 ASCII characters. If you reuse a client request token * within one minute of a successful request, the API returns the job details of the original request * instead. For more information see * https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html. */ public final String clientRequestToken() { return clientRequestToken; } /** * For responses, this returns true if the service returned a value for the HopDestinations property. This DOES NOT * check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasHopDestinations() { return hopDestinations != null && !(hopDestinations instanceof SdkAutoConstructList); } /** * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job to. * Specify an alternate queue and the maximum time that your job will wait in the initial queue before hopping. For * more information about this feature, see the AWS Elemental MediaConvert User Guide. *

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasHopDestinations} method. *

* * @return Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your * job to. Specify an alternate queue and the maximum time that your job will wait in the initial queue * before hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. */ public final List hopDestinations() { return hopDestinations; } /** * Use Job engine versions to run jobs for your production workflow on one version, while you test and validate the * latest version. To specify a Job engine version: Enter a date in a YYYY-MM-DD format. For a list of valid Job * engine versions, submit a ListVersions request. To not specify a Job engine version: Leave blank. * * @return Use Job engine versions to run jobs for your production workflow on one version, while you test and * validate the latest version. To specify a Job engine version: Enter a date in a YYYY-MM-DD format. For a * list of valid Job engine versions, submit a ListVersions request. To not specify a Job engine version: * Leave blank. */ public final String jobEngineVersion() { return jobEngineVersion; } /** * Optional. When you create a job, you can either specify a job template or specify the transcoding settings * individually. * * @return Optional. When you create a job, you can either specify a job template or specify the transcoding * settings individually. */ public final String jobTemplate() { return jobTemplate; } /** * Optional. Specify the relative priority for this job. In any given queue, the service begins processing the job * with the highest value first. When more than one job has the same priority, the service begins processing the job * that you submitted first. If you don't specify a priority, the service uses the default value 0. * * @return Optional. Specify the relative priority for this job. In any given queue, the service begins processing * the job with the highest value first. When more than one job has the same priority, the service begins * processing the job that you submitted first. If you don't specify a priority, the service uses the * default value 0. */ public final Integer priority() { return priority; } /** * Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go to * the default queue. For more about queues, see the User Guide topic at * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html. * * @return Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job * will go to the default queue. For more about queues, see the User Guide topic at * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html. */ public final String queue() { return queue; } /** * Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic at * the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. * * @return Required. The IAM role you use for creating this job. For details about permissions, see the User Guide * topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. */ public final String role() { return role; } /** * JobSettings contains all the transcode settings for a job. * * @return JobSettings contains all the transcode settings for a job. */ public final JobSettings settings() { return settings; } /** * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you * need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what * you will see with one RTS in a reserved queue. This setting is disabled by default. *

* If the service returns an enum value that is not available in the current SDK version, * {@link #simulateReservedQueue} will return {@link SimulateReservedQueue#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #simulateReservedQueueAsString}. *

* * @return Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots * (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar * performance to what you will see with one RTS in a reserved queue. This setting is disabled by default. * @see SimulateReservedQueue */ public final SimulateReservedQueue simulateReservedQueue() { return SimulateReservedQueue.fromValue(simulateReservedQueue); } /** * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you * need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what * you will see with one RTS in a reserved queue. This setting is disabled by default. *

* If the service returns an enum value that is not available in the current SDK version, * {@link #simulateReservedQueue} will return {@link SimulateReservedQueue#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #simulateReservedQueueAsString}. *

* * @return Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots * (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar * performance to what you will see with one RTS in a reserved queue. This setting is disabled by default. * @see SimulateReservedQueue */ public final String simulateReservedQueueAsString() { return simulateReservedQueue; } /** * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the * service begins processing your job to the time it completes the transcode or encounters an error. *

* If the service returns an enum value that is not available in the current SDK version, * {@link #statusUpdateInterval} will return {@link StatusUpdateInterval#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #statusUpdateIntervalAsString}. *

* * @return Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time * the service begins processing your job to the time it completes the transcode or encounters an error. * @see StatusUpdateInterval */ public final StatusUpdateInterval statusUpdateInterval() { return StatusUpdateInterval.fromValue(statusUpdateInterval); } /** * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the * service begins processing your job to the time it completes the transcode or encounters an error. *

* If the service returns an enum value that is not available in the current SDK version, * {@link #statusUpdateInterval} will return {@link StatusUpdateInterval#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #statusUpdateIntervalAsString}. *

* * @return Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time * the service begins processing your job to the time it completes the transcode or encounters an error. * @see StatusUpdateInterval */ public final String statusUpdateIntervalAsString() { return statusUpdateInterval; } /** * For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that * the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful * because the SDK will never return a null collection or map, but you may need to differentiate between the service * returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true * if a value for the property was specified in the request builder, and false if a value was not specified. */ public final boolean hasTags() { return tags != null && !(tags instanceof SdkAutoConstructMap); } /** * Optional. The tags that you want to add to the resource. You can tag resources with a key-value pair or with only * a key. Use standard AWS tags on your job for automatic integration with AWS services and for custom integrations * and workflows. *

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasTags} method. *

* * @return Optional. The tags that you want to add to the resource. You can tag resources with a key-value pair or * with only a key. Use standard AWS tags on your job for automatic integration with AWS services and for * custom integrations and workflows. */ public final Map tags() { return tags; } /** * For responses, this returns true if the service returned a value for the UserMetadata property. This DOES NOT * check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). * This is useful because the SDK will never return a null collection or map, but you may need to differentiate * between the service returning nothing (or null) and the service returning an empty collection or map. For * requests, this returns true if a value for the property was specified in the request builder, and false if a * value was not specified. */ public final boolean hasUserMetadata() { return userMetadata != null && !(userMetadata instanceof SdkAutoConstructMap); } /** * Optional. User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in * key/value pairs. Use only for existing integrations or workflows that rely on job metadata tags. Otherwise, we * recommend that you use standard AWS tags. *

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasUserMetadata} method. *

* * @return Optional. User-defined metadata that you want to associate with an MediaConvert job. You specify metadata * in key/value pairs. Use only for existing integrations or workflows that rely on job metadata tags. * Otherwise, we recommend that you use standard AWS tags. */ public final Map userMetadata() { return userMetadata; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(accelerationSettings()); hashCode = 31 * hashCode + Objects.hashCode(billingTagsSourceAsString()); hashCode = 31 * hashCode + Objects.hashCode(clientRequestToken()); hashCode = 31 * hashCode + Objects.hashCode(hasHopDestinations() ? hopDestinations() : null); hashCode = 31 * hashCode + Objects.hashCode(jobEngineVersion()); hashCode = 31 * hashCode + Objects.hashCode(jobTemplate()); hashCode = 31 * hashCode + Objects.hashCode(priority()); hashCode = 31 * hashCode + Objects.hashCode(queue()); hashCode = 31 * hashCode + Objects.hashCode(role()); hashCode = 31 * hashCode + Objects.hashCode(settings()); hashCode = 31 * hashCode + Objects.hashCode(simulateReservedQueueAsString()); hashCode = 31 * hashCode + Objects.hashCode(statusUpdateIntervalAsString()); hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null); hashCode = 31 * hashCode + Objects.hashCode(hasUserMetadata() ? userMetadata() : null); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateJobRequest)) { return false; } CreateJobRequest other = (CreateJobRequest) obj; return Objects.equals(accelerationSettings(), other.accelerationSettings()) && Objects.equals(billingTagsSourceAsString(), other.billingTagsSourceAsString()) && Objects.equals(clientRequestToken(), other.clientRequestToken()) && hasHopDestinations() == other.hasHopDestinations() && Objects.equals(hopDestinations(), other.hopDestinations()) && Objects.equals(jobEngineVersion(), other.jobEngineVersion()) && Objects.equals(jobTemplate(), other.jobTemplate()) && Objects.equals(priority(), other.priority()) && Objects.equals(queue(), other.queue()) && Objects.equals(role(), other.role()) && Objects.equals(settings(), other.settings()) && Objects.equals(simulateReservedQueueAsString(), other.simulateReservedQueueAsString()) && Objects.equals(statusUpdateIntervalAsString(), other.statusUpdateIntervalAsString()) && hasTags() == other.hasTags() && Objects.equals(tags(), other.tags()) && hasUserMetadata() == other.hasUserMetadata() && Objects.equals(userMetadata(), other.userMetadata()); } /** * 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 final String toString() { return ToString.builder("CreateJobRequest").add("AccelerationSettings", accelerationSettings()) .add("BillingTagsSource", billingTagsSourceAsString()).add("ClientRequestToken", clientRequestToken()) .add("HopDestinations", hasHopDestinations() ? hopDestinations() : null) .add("JobEngineVersion", jobEngineVersion()).add("JobTemplate", jobTemplate()).add("Priority", priority()) .add("Queue", queue()).add("Role", role()).add("Settings", settings()) .add("SimulateReservedQueue", simulateReservedQueueAsString()) .add("StatusUpdateInterval", statusUpdateIntervalAsString()).add("Tags", hasTags() ? tags() : null) .add("UserMetadata", hasUserMetadata() ? userMetadata() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "AccelerationSettings": return Optional.ofNullable(clazz.cast(accelerationSettings())); case "BillingTagsSource": return Optional.ofNullable(clazz.cast(billingTagsSourceAsString())); case "ClientRequestToken": return Optional.ofNullable(clazz.cast(clientRequestToken())); case "HopDestinations": return Optional.ofNullable(clazz.cast(hopDestinations())); case "JobEngineVersion": return Optional.ofNullable(clazz.cast(jobEngineVersion())); case "JobTemplate": return Optional.ofNullable(clazz.cast(jobTemplate())); case "Priority": return Optional.ofNullable(clazz.cast(priority())); case "Queue": return Optional.ofNullable(clazz.cast(queue())); case "Role": return Optional.ofNullable(clazz.cast(role())); case "Settings": return Optional.ofNullable(clazz.cast(settings())); case "SimulateReservedQueue": return Optional.ofNullable(clazz.cast(simulateReservedQueueAsString())); case "StatusUpdateInterval": return Optional.ofNullable(clazz.cast(statusUpdateIntervalAsString())); case "Tags": return Optional.ofNullable(clazz.cast(tags())); case "UserMetadata": return Optional.ofNullable(clazz.cast(userMetadata())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateJobRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends MediaConvertRequest.Builder, SdkPojo, CopyableBuilder { /** * Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content. * Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS * Elemental MediaConvert User Guide. * * @param accelerationSettings * Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content. * Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see * the AWS Elemental MediaConvert User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder accelerationSettings(AccelerationSettings accelerationSettings); /** * Optional. Accelerated transcoding can significantly speed up jobs with long, visually complex content. * Outputs that use this feature incur pro-tier pricing. For information about feature limitations, see the AWS * Elemental MediaConvert User Guide. This is a convenience method that creates an instance of the * {@link AccelerationSettings.Builder} avoiding the need to create one manually via * {@link AccelerationSettings#builder()}. * *

* When the {@link Consumer} completes, {@link AccelerationSettings.Builder#build()} is called immediately and * its result is passed to {@link #accelerationSettings(AccelerationSettings)}. * * @param accelerationSettings * a consumer that will call methods on {@link AccelerationSettings.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #accelerationSettings(AccelerationSettings) */ default Builder accelerationSettings(Consumer accelerationSettings) { return accelerationSettings(AccelerationSettings.builder().applyMutation(accelerationSettings).build()); } /** * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this field, * your job outputs will appear on the billing report unsorted. * * @param billingTagsSource * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this * field, your job outputs will appear on the billing report unsorted. * @see BillingTagsSource * @return Returns a reference to this object so that method calls can be chained together. * @see BillingTagsSource */ Builder billingTagsSource(String billingTagsSource); /** * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this field, * your job outputs will appear on the billing report unsorted. * * @param billingTagsSource * Optional. Choose a tag type that AWS Billing and Cost Management will use to sort your AWS Elemental * MediaConvert costs on any billing report that you set up. Any transcoding outputs that don't have an * associated tag will appear in your billing report unsorted. If you don't choose a valid value for this * field, your job outputs will appear on the billing report unsorted. * @see BillingTagsSource * @return Returns a reference to this object so that method calls can be chained together. * @see BillingTagsSource */ Builder billingTagsSource(BillingTagsSource billingTagsSource); /** * Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request token * can be any string that includes up to 64 ASCII characters. If you reuse a client request token within one * minute of a successful request, the API returns the job details of the original request instead. For more * information see https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html. * * @param clientRequestToken * Prevent duplicate jobs from being created and ensure idempotency for your requests. A client request * token can be any string that includes up to 64 ASCII characters. If you reuse a client request token * within one minute of a successful request, the API returns the job details of the original request * instead. For more information see * https://docs.aws.amazon.com/mediaconvert/latest/apireference/idempotency.html. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientRequestToken(String clientRequestToken); /** * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job * to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before * hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. * * @param hopDestinations * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit * your job to. Specify an alternate queue and the maximum time that your job will wait in the initial * queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User * Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder hopDestinations(Collection hopDestinations); /** * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job * to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before * hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. * * @param hopDestinations * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit * your job to. Specify an alternate queue and the maximum time that your job will wait in the initial * queue before hopping. For more information about this feature, see the AWS Elemental MediaConvert User * Guide. * @return Returns a reference to this object so that method calls can be chained together. */ Builder hopDestinations(HopDestination... hopDestinations); /** * Optional. Use queue hopping to avoid overly long waits in the backlog of the queue that you submit your job * to. Specify an alternate queue and the maximum time that your job will wait in the initial queue before * hopping. For more information about this feature, see the AWS Elemental MediaConvert User Guide. This is a * convenience method that creates an instance of the * {@link software.amazon.awssdk.services.mediaconvert.model.HopDestination.Builder} avoiding the need to create * one manually via {@link software.amazon.awssdk.services.mediaconvert.model.HopDestination#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.mediaconvert.model.HopDestination.Builder#build()} is called * immediately and its result is passed to {@link #hopDestinations(List)}. * * @param hopDestinations * a consumer that will call methods on * {@link software.amazon.awssdk.services.mediaconvert.model.HopDestination.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #hopDestinations(java.util.Collection) */ Builder hopDestinations(Consumer... hopDestinations); /** * Use Job engine versions to run jobs for your production workflow on one version, while you test and validate * the latest version. To specify a Job engine version: Enter a date in a YYYY-MM-DD format. For a list of valid * Job engine versions, submit a ListVersions request. To not specify a Job engine version: Leave blank. * * @param jobEngineVersion * Use Job engine versions to run jobs for your production workflow on one version, while you test and * validate the latest version. To specify a Job engine version: Enter a date in a YYYY-MM-DD format. For * a list of valid Job engine versions, submit a ListVersions request. To not specify a Job engine * version: Leave blank. * @return Returns a reference to this object so that method calls can be chained together. */ Builder jobEngineVersion(String jobEngineVersion); /** * Optional. When you create a job, you can either specify a job template or specify the transcoding settings * individually. * * @param jobTemplate * Optional. When you create a job, you can either specify a job template or specify the transcoding * settings individually. * @return Returns a reference to this object so that method calls can be chained together. */ Builder jobTemplate(String jobTemplate); /** * Optional. Specify the relative priority for this job. In any given queue, the service begins processing the * job with the highest value first. When more than one job has the same priority, the service begins processing * the job that you submitted first. If you don't specify a priority, the service uses the default value 0. * * @param priority * Optional. Specify the relative priority for this job. In any given queue, the service begins * processing the job with the highest value first. When more than one job has the same priority, the * service begins processing the job that you submitted first. If you don't specify a priority, the * service uses the default value 0. * @return Returns a reference to this object so that method calls can be chained together. */ Builder priority(Integer priority); /** * Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job will go * to the default queue. For more about queues, see the User Guide topic at * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html. * * @param queue * Optional. When you create a job, you can specify a queue to send it to. If you don't specify, the job * will go to the default queue. For more about queues, see the User Guide topic at * https://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html. * @return Returns a reference to this object so that method calls can be chained together. */ Builder queue(String queue); /** * Required. The IAM role you use for creating this job. For details about permissions, see the User Guide topic * at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. * * @param role * Required. The IAM role you use for creating this job. For details about permissions, see the User * Guide topic at the User Guide at https://docs.aws.amazon.com/mediaconvert/latest/ug/iam-role.html. * @return Returns a reference to this object so that method calls can be chained together. */ Builder role(String role); /** * JobSettings contains all the transcode settings for a job. * * @param settings * JobSettings contains all the transcode settings for a job. * @return Returns a reference to this object so that method calls can be chained together. */ Builder settings(JobSettings settings); /** * JobSettings contains all the transcode settings for a job. This is a convenience method that creates an * instance of the {@link JobSettings.Builder} avoiding the need to create one manually via * {@link JobSettings#builder()}. * *

* When the {@link Consumer} completes, {@link JobSettings.Builder#build()} is called immediately and its result * is passed to {@link #settings(JobSettings)}. * * @param settings * a consumer that will call methods on {@link JobSettings.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #settings(JobSettings) */ default Builder settings(Consumer settings) { return settings(JobSettings.builder().applyMutation(settings).build()); } /** * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) * you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance * to what you will see with one RTS in a reserved queue. This setting is disabled by default. * * @param simulateReservedQueue * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots * (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar * performance to what you will see with one RTS in a reserved queue. This setting is disabled by * default. * @see SimulateReservedQueue * @return Returns a reference to this object so that method calls can be chained together. * @see SimulateReservedQueue */ Builder simulateReservedQueue(String simulateReservedQueue); /** * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) * you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar performance * to what you will see with one RTS in a reserved queue. This setting is disabled by default. * * @param simulateReservedQueue * Optional. Enable this setting when you run a test job to estimate how many reserved transcoding slots * (RTS) you need. When this is enabled, MediaConvert runs your job from an on-demand queue with similar * performance to what you will see with one RTS in a reserved queue. This setting is disabled by * default. * @see SimulateReservedQueue * @return Returns a reference to this object so that method calls can be chained together. * @see SimulateReservedQueue */ Builder simulateReservedQueue(SimulateReservedQueue simulateReservedQueue); /** * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the * service begins processing your job to the time it completes the transcode or encounters an error. * * @param statusUpdateInterval * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set * the interval, in seconds, between status updates. MediaConvert sends an update at this interval from * the time the service begins processing your job to the time it completes the transcode or encounters * an error. * @see StatusUpdateInterval * @return Returns a reference to this object so that method calls can be chained together. * @see StatusUpdateInterval */ Builder statusUpdateInterval(String statusUpdateInterval); /** * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set the * interval, in seconds, between status updates. MediaConvert sends an update at this interval from the time the * service begins processing your job to the time it completes the transcode or encounters an error. * * @param statusUpdateInterval * Optional. Specify how often MediaConvert sends STATUS_UPDATE events to Amazon CloudWatch Events. Set * the interval, in seconds, between status updates. MediaConvert sends an update at this interval from * the time the service begins processing your job to the time it completes the transcode or encounters * an error. * @see StatusUpdateInterval * @return Returns a reference to this object so that method calls can be chained together. * @see StatusUpdateInterval */ Builder statusUpdateInterval(StatusUpdateInterval statusUpdateInterval); /** * Optional. The tags that you want to add to the resource. You can tag resources with a key-value pair or with * only a key. Use standard AWS tags on your job for automatic integration with AWS services and for custom * integrations and workflows. * * @param tags * Optional. The tags that you want to add to the resource. You can tag resources with a key-value pair * or with only a key. Use standard AWS tags on your job for automatic integration with AWS services and * for custom integrations and workflows. * @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Map tags); /** * Optional. User-defined metadata that you want to associate with an MediaConvert job. You specify metadata in * key/value pairs. Use only for existing integrations or workflows that rely on job metadata tags. Otherwise, * we recommend that you use standard AWS tags. * * @param userMetadata * Optional. User-defined metadata that you want to associate with an MediaConvert job. You specify * metadata in key/value pairs. Use only for existing integrations or workflows that rely on job metadata * tags. Otherwise, we recommend that you use standard AWS tags. * @return Returns a reference to this object so that method calls can be chained together. */ Builder userMetadata(Map userMetadata); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends MediaConvertRequest.BuilderImpl implements Builder { private AccelerationSettings accelerationSettings; private String billingTagsSource; private String clientRequestToken; private List hopDestinations = DefaultSdkAutoConstructList.getInstance(); private String jobEngineVersion; private String jobTemplate; private Integer priority; private String queue; private String role; private JobSettings settings; private String simulateReservedQueue; private String statusUpdateInterval; private Map tags = DefaultSdkAutoConstructMap.getInstance(); private Map userMetadata = DefaultSdkAutoConstructMap.getInstance(); private BuilderImpl() { } private BuilderImpl(CreateJobRequest model) { super(model); accelerationSettings(model.accelerationSettings); billingTagsSource(model.billingTagsSource); clientRequestToken(model.clientRequestToken); hopDestinations(model.hopDestinations); jobEngineVersion(model.jobEngineVersion); jobTemplate(model.jobTemplate); priority(model.priority); queue(model.queue); role(model.role); settings(model.settings); simulateReservedQueue(model.simulateReservedQueue); statusUpdateInterval(model.statusUpdateInterval); tags(model.tags); userMetadata(model.userMetadata); } public final AccelerationSettings.Builder getAccelerationSettings() { return accelerationSettings != null ? accelerationSettings.toBuilder() : null; } public final void setAccelerationSettings(AccelerationSettings.BuilderImpl accelerationSettings) { this.accelerationSettings = accelerationSettings != null ? accelerationSettings.build() : null; } @Override public final Builder accelerationSettings(AccelerationSettings accelerationSettings) { this.accelerationSettings = accelerationSettings; return this; } public final String getBillingTagsSource() { return billingTagsSource; } public final void setBillingTagsSource(String billingTagsSource) { this.billingTagsSource = billingTagsSource; } @Override public final Builder billingTagsSource(String billingTagsSource) { this.billingTagsSource = billingTagsSource; return this; } @Override public final Builder billingTagsSource(BillingTagsSource billingTagsSource) { this.billingTagsSource(billingTagsSource == null ? null : billingTagsSource.toString()); return this; } public final String getClientRequestToken() { return clientRequestToken; } public final void setClientRequestToken(String clientRequestToken) { this.clientRequestToken = clientRequestToken; } @Override public final Builder clientRequestToken(String clientRequestToken) { this.clientRequestToken = clientRequestToken; return this; } public final List getHopDestinations() { List result = ___listOfHopDestinationCopier.copyToBuilder(this.hopDestinations); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setHopDestinations(Collection hopDestinations) { this.hopDestinations = ___listOfHopDestinationCopier.copyFromBuilder(hopDestinations); } @Override public final Builder hopDestinations(Collection hopDestinations) { this.hopDestinations = ___listOfHopDestinationCopier.copy(hopDestinations); return this; } @Override @SafeVarargs public final Builder hopDestinations(HopDestination... hopDestinations) { hopDestinations(Arrays.asList(hopDestinations)); return this; } @Override @SafeVarargs public final Builder hopDestinations(Consumer... hopDestinations) { hopDestinations(Stream.of(hopDestinations).map(c -> HopDestination.builder().applyMutation(c).build()) .collect(Collectors.toList())); return this; } public final String getJobEngineVersion() { return jobEngineVersion; } public final void setJobEngineVersion(String jobEngineVersion) { this.jobEngineVersion = jobEngineVersion; } @Override public final Builder jobEngineVersion(String jobEngineVersion) { this.jobEngineVersion = jobEngineVersion; return this; } public final String getJobTemplate() { return jobTemplate; } public final void setJobTemplate(String jobTemplate) { this.jobTemplate = jobTemplate; } @Override public final Builder jobTemplate(String jobTemplate) { this.jobTemplate = jobTemplate; return this; } public final Integer getPriority() { return priority; } public final void setPriority(Integer priority) { this.priority = priority; } @Override public final Builder priority(Integer priority) { this.priority = priority; return this; } public final String getQueue() { return queue; } public final void setQueue(String queue) { this.queue = queue; } @Override public final Builder queue(String queue) { this.queue = queue; return this; } public final String getRole() { return role; } public final void setRole(String role) { this.role = role; } @Override public final Builder role(String role) { this.role = role; return this; } public final JobSettings.Builder getSettings() { return settings != null ? settings.toBuilder() : null; } public final void setSettings(JobSettings.BuilderImpl settings) { this.settings = settings != null ? settings.build() : null; } @Override @Transient public final Builder settings(JobSettings settings) { this.settings = settings; return this; } public final String getSimulateReservedQueue() { return simulateReservedQueue; } public final void setSimulateReservedQueue(String simulateReservedQueue) { this.simulateReservedQueue = simulateReservedQueue; } @Override public final Builder simulateReservedQueue(String simulateReservedQueue) { this.simulateReservedQueue = simulateReservedQueue; return this; } @Override public final Builder simulateReservedQueue(SimulateReservedQueue simulateReservedQueue) { this.simulateReservedQueue(simulateReservedQueue == null ? null : simulateReservedQueue.toString()); return this; } public final String getStatusUpdateInterval() { return statusUpdateInterval; } public final void setStatusUpdateInterval(String statusUpdateInterval) { this.statusUpdateInterval = statusUpdateInterval; } @Override public final Builder statusUpdateInterval(String statusUpdateInterval) { this.statusUpdateInterval = statusUpdateInterval; return this; } @Override public final Builder statusUpdateInterval(StatusUpdateInterval statusUpdateInterval) { this.statusUpdateInterval(statusUpdateInterval == null ? null : statusUpdateInterval.toString()); return this; } public final Map getTags() { if (tags instanceof SdkAutoConstructMap) { return null; } return tags; } public final void setTags(Map tags) { this.tags = ___mapOf__stringCopier.copy(tags); } @Override public final Builder tags(Map tags) { this.tags = ___mapOf__stringCopier.copy(tags); return this; } public final Map getUserMetadata() { if (userMetadata instanceof SdkAutoConstructMap) { return null; } return userMetadata; } public final void setUserMetadata(Map userMetadata) { this.userMetadata = ___mapOf__stringCopier.copy(userMetadata); } @Override public final Builder userMetadata(Map userMetadata) { this.userMetadata = ___mapOf__stringCopier.copy(userMetadata); return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateJobRequest build() { return new CreateJobRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy