software.amazon.awssdk.services.mediaconvert.model.JobSettings Maven / Gradle / Ivy
Show all versions of mediaconvert Show documentation
/*
* 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.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
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 java.util.stream.Collectors;
import java.util.stream.Stream;
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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
* JobSettings contains all the transcode settings for a job.
*/
@Generated("software.amazon.awssdk:codegen")
public final class JobSettings implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField AD_AVAIL_OFFSET_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("AdAvailOffset").getter(getter(JobSettings::adAvailOffset)).setter(setter(Builder::adAvailOffset))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("adAvailOffset").build()).build();
private static final SdkField AVAIL_BLANKING_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("AvailBlanking")
.getter(getter(JobSettings::availBlanking)).setter(setter(Builder::availBlanking))
.constructor(AvailBlanking::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("availBlanking").build()).build();
private static final SdkField> COLOR_CONVERSION3_DLUT_SETTINGS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("ColorConversion3DLUTSettings")
.getter(getter(JobSettings::colorConversion3DLUTSettings))
.setter(setter(Builder::colorConversion3DLUTSettings))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("colorConversion3DLUTSettings")
.build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(ColorConversion3DLUTSetting::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField ESAM_FIELD = SdkField. builder(MarshallingType.SDK_POJO)
.memberName("Esam").getter(getter(JobSettings::esam)).setter(setter(Builder::esam))
.constructor(EsamSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("esam").build()).build();
private static final SdkField EXTENDED_DATA_SERVICES_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("ExtendedDataServices")
.getter(getter(JobSettings::extendedDataServices)).setter(setter(Builder::extendedDataServices))
.constructor(ExtendedDataServices::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("extendedDataServices").build())
.build();
private static final SdkField FOLLOW_SOURCE_FIELD = SdkField. builder(MarshallingType.INTEGER)
.memberName("FollowSource").getter(getter(JobSettings::followSource)).setter(setter(Builder::followSource))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("followSource").build()).build();
private static final SdkField> INPUTS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("Inputs")
.getter(getter(JobSettings::inputs))
.setter(setter(Builder::inputs))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("inputs").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(Input::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField KANTAR_WATERMARK_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("KantarWatermark")
.getter(getter(JobSettings::kantarWatermark)).setter(setter(Builder::kantarWatermark))
.constructor(KantarWatermarkSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("kantarWatermark").build()).build();
private static final SdkField MOTION_IMAGE_INSERTER_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("MotionImageInserter")
.getter(getter(JobSettings::motionImageInserter)).setter(setter(Builder::motionImageInserter))
.constructor(MotionImageInserter::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("motionImageInserter").build())
.build();
private static final SdkField NIELSEN_CONFIGURATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("NielsenConfiguration")
.getter(getter(JobSettings::nielsenConfiguration)).setter(setter(Builder::nielsenConfiguration))
.constructor(NielsenConfiguration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("nielsenConfiguration").build())
.build();
private static final SdkField NIELSEN_NON_LINEAR_WATERMARK_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("NielsenNonLinearWatermark")
.getter(getter(JobSettings::nielsenNonLinearWatermark)).setter(setter(Builder::nielsenNonLinearWatermark))
.constructor(NielsenNonLinearWatermarkSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("nielsenNonLinearWatermark").build())
.build();
private static final SdkField> OUTPUT_GROUPS_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("OutputGroups")
.getter(getter(JobSettings::outputGroups))
.setter(setter(Builder::outputGroups))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("outputGroups").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(OutputGroup::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final SdkField TIMECODE_CONFIG_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("TimecodeConfig")
.getter(getter(JobSettings::timecodeConfig)).setter(setter(Builder::timecodeConfig))
.constructor(TimecodeConfig::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timecodeConfig").build()).build();
private static final SdkField TIMED_METADATA_INSERTION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("TimedMetadataInsertion")
.getter(getter(JobSettings::timedMetadataInsertion)).setter(setter(Builder::timedMetadataInsertion))
.constructor(TimedMetadataInsertion::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timedMetadataInsertion").build())
.build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(AD_AVAIL_OFFSET_FIELD,
AVAIL_BLANKING_FIELD, COLOR_CONVERSION3_DLUT_SETTINGS_FIELD, ESAM_FIELD, EXTENDED_DATA_SERVICES_FIELD,
FOLLOW_SOURCE_FIELD, INPUTS_FIELD, KANTAR_WATERMARK_FIELD, MOTION_IMAGE_INSERTER_FIELD, NIELSEN_CONFIGURATION_FIELD,
NIELSEN_NON_LINEAR_WATERMARK_FIELD, OUTPUT_GROUPS_FIELD, TIMECODE_CONFIG_FIELD, TIMED_METADATA_INSERTION_FIELD));
private static final long serialVersionUID = 1L;
private final Integer adAvailOffset;
private final AvailBlanking availBlanking;
private final List colorConversion3DLUTSettings;
private final EsamSettings esam;
private final ExtendedDataServices extendedDataServices;
private final Integer followSource;
private final List inputs;
private final KantarWatermarkSettings kantarWatermark;
private final MotionImageInserter motionImageInserter;
private final NielsenConfiguration nielsenConfiguration;
private final NielsenNonLinearWatermarkSettings nielsenNonLinearWatermark;
private final List outputGroups;
private final TimecodeConfig timecodeConfig;
private final TimedMetadataInsertion timedMetadataInsertion;
private JobSettings(BuilderImpl builder) {
this.adAvailOffset = builder.adAvailOffset;
this.availBlanking = builder.availBlanking;
this.colorConversion3DLUTSettings = builder.colorConversion3DLUTSettings;
this.esam = builder.esam;
this.extendedDataServices = builder.extendedDataServices;
this.followSource = builder.followSource;
this.inputs = builder.inputs;
this.kantarWatermark = builder.kantarWatermark;
this.motionImageInserter = builder.motionImageInserter;
this.nielsenConfiguration = builder.nielsenConfiguration;
this.nielsenNonLinearWatermark = builder.nielsenNonLinearWatermark;
this.outputGroups = builder.outputGroups;
this.timecodeConfig = builder.timecodeConfig;
this.timedMetadataInsertion = builder.timedMetadataInsertion;
}
/**
* When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.
*
* @return When specified, this offset (in milliseconds) is added to the input Ad Avail PTS time.
*/
public final Integer adAvailOffset() {
return adAvailOffset;
}
/**
* Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during SCTE-35
* triggered ad avails.
*
* @return Settings for ad avail blanking. Video can be blanked or overlaid with an image, and audio muted during
* SCTE-35 triggered ad avails.
*/
public final AvailBlanking availBlanking() {
return availBlanking;
}
/**
* For responses, this returns true if the service returned a value for the ColorConversion3DLUTSettings 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 hasColorConversion3DLUTSettings() {
return colorConversion3DLUTSettings != null && !(colorConversion3DLUTSettings instanceof SdkAutoConstructList);
}
/**
* Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another. You can
* include up to 8 different 3D LUTs. For more information, see:
* https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html
*
* 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 #hasColorConversion3DLUTSettings} method.
*
*
* @return Use 3D LUTs to specify custom color mapping behavior when you convert from one color space into another.
* You can include up to 8 different 3D LUTs. For more information, see:
* https://docs.aws.amazon.com/mediaconvert/latest/ug/3d-luts.html
*/
public final List colorConversion3DLUTSettings() {
return colorConversion3DLUTSettings;
}
/**
* Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these settings.
*
* @return Settings for Event Signaling And Messaging (ESAM). If you don't do ad insertion, you can ignore these
* settings.
*/
public final EsamSettings esam() {
return esam;
}
/**
* If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what MediaConvert does
* with the Extended Data Services (XDS) packets. You can choose to pass through XDS packets, or remove them from
* the output. For more information about XDS, see EIA-608 Line Data Services, section 9.5.1.5 05h Content Advisory.
*
* @return If your source content has EIA-608 Line 21 Data Services, enable this feature to specify what
* MediaConvert does with the Extended Data Services (XDS) packets. You can choose to pass through XDS
* packets, or remove them from the output. For more information about XDS, see EIA-608 Line Data Services,
* section 9.5.1.5 05h Content Advisory.
*/
public final ExtendedDataServices extendedDataServices() {
return extendedDataServices;
}
/**
* Specify the input that MediaConvert references for your default output settings. MediaConvert uses this input's
* Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify different output
* settings for. Enabling this setting will disable "Follow source" for all other inputs. If MediaConvert cannot
* follow your source, for example if you specify an audio-only input, MediaConvert uses the first followable input
* instead. In your JSON job specification, enter an integer from 1 to 150 corresponding to the order of your
* inputs.
*
* @return Specify the input that MediaConvert references for your default output settings. MediaConvert uses this
* input's Resolution, Frame rate, and Pixel aspect ratio for all outputs that you don't manually specify
* different output settings for. Enabling this setting will disable "Follow source" for all other inputs.
* If MediaConvert cannot follow your source, for example if you specify an audio-only input, MediaConvert
* uses the first followable input instead. In your JSON job specification, enter an integer from 1 to 150
* corresponding to the order of your inputs.
*/
public final Integer followSource() {
return followSource;
}
/**
* For responses, this returns true if the service returned a value for the Inputs 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 hasInputs() {
return inputs != null && !(inputs instanceof SdkAutoConstructList);
}
/**
* Use Inputs to define source file used in the transcode job. There can be multiple inputs add in a job. These
* inputs will be concantenated together to create the output.
*
* 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 #hasInputs} method.
*
*
* @return Use Inputs to define source file used in the transcode job. There can be multiple inputs add in a job.
* These inputs will be concantenated together to create the output.
*/
public final List inputs() {
return inputs;
}
/**
* Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to generate
* and place Kantar watermarks in your output audio. These settings apply to every output in your job. In addition
* to specifying these values, you also need to store your Kantar credentials in AWS Secrets Manager. For more
* information, see https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.
*
* @return Use these settings only when you use Kantar watermarking. Specify the values that MediaConvert uses to
* generate and place Kantar watermarks in your output audio. These settings apply to every output in your
* job. In addition to specifying these values, you also need to store your Kantar credentials in AWS
* Secrets Manager. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/kantar-watermarking.html.
*/
public final KantarWatermarkSettings kantarWatermark() {
return kantarWatermark;
}
/**
* Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all outputs in
* all output groups. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.
*
* @return Overlay motion graphics on top of your video. The motion graphics that you specify here appear on all
* outputs in all output groups. For more information, see
* https://docs.aws.amazon.com/mediaconvert/latest/ug/motion-graphic-overlay.html.
*/
public final MotionImageInserter motionImageInserter() {
return motionImageInserter;
}
/**
* Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these
* settings. When you enable Nielsen configuration, MediaConvert enables PCM to ID3 tagging for all outputs in the
* job.
*
* @return Settings for your Nielsen configuration. If you don't do Nielsen measurement and analytics, ignore these
* settings. When you enable Nielsen configuration, MediaConvert enables PCM to ID3 tagging for all outputs
* in the job.
*/
public final NielsenConfiguration nielsenConfiguration() {
return nielsenConfiguration;
}
/**
* Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that MediaConvert
* uses to generate and place Nielsen watermarks in your output audio. In addition to specifying these values, you
* also need to set up your cloud TIC server. These settings apply to every output in your job. The MediaConvert
* implementation is currently with the following Nielsen versions: Nielsen Watermark SDK Version 5.2.1 Nielsen NLM
* Watermark Engine Version 1.2.7 Nielsen Watermark Authenticator [SID_TIC] Version [5.0.0]
*
* @return Ignore these settings unless you are using Nielsen non-linear watermarking. Specify the values that
* MediaConvert uses to generate and place Nielsen watermarks in your output audio. In addition to
* specifying these values, you also need to set up your cloud TIC server. These settings apply to every
* output in your job. The MediaConvert implementation is currently with the following Nielsen versions:
* Nielsen Watermark SDK Version 5.2.1 Nielsen NLM Watermark Engine Version 1.2.7 Nielsen Watermark
* Authenticator [SID_TIC] Version [5.0.0]
*/
public final NielsenNonLinearWatermarkSettings nielsenNonLinearWatermark() {
return nielsenNonLinearWatermark;
}
/**
* For responses, this returns true if the service returned a value for the OutputGroups 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 hasOutputGroups() {
return outputGroups != null && !(outputGroups instanceof SdkAutoConstructList);
}
/**
* Contains one group of settings for each set of outputs that share a common package type. All unpackaged files
* (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well. Required in
* is a group of settings that apply to the whole group. This required object depends on the value you set for Type.
* Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS, FileGroupSettings * HLS_GROUP_SETTINGS,
* HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings * MS_SMOOTH_GROUP_SETTINGS,
* MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings
*
* 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 #hasOutputGroups} method.
*
*
* @return Contains one group of settings for each set of outputs that share a common package type. All unpackaged
* files (MPEG-4, MPEG-2 TS, Quicktime, MXF, and no container) are grouped in a single output group as well.
* Required in is a group of settings that apply to the whole group. This required object depends on the
* value you set for Type. Type, settings object pairs are as follows. * FILE_GROUP_SETTINGS,
* FileGroupSettings * HLS_GROUP_SETTINGS, HlsGroupSettings * DASH_ISO_GROUP_SETTINGS, DashIsoGroupSettings
* * MS_SMOOTH_GROUP_SETTINGS, MsSmoothGroupSettings * CMAF_GROUP_SETTINGS, CmafGroupSettings
*/
public final List outputGroups() {
return outputGroups;
}
/**
* These settings control how the service handles timecodes throughout the job. These settings don't affect input
* clipping.
*
* @return These settings control how the service handles timecodes throughout the job. These settings don't affect
* input clipping.
*/
public final TimecodeConfig timecodeConfig() {
return timecodeConfig;
}
/**
* Insert user-defined custom ID3 metadata at timecodes that you specify. In each output that you want to include
* this metadata, you must set ID3 metadata to Passthrough.
*
* @return Insert user-defined custom ID3 metadata at timecodes that you specify. In each output that you want to
* include this metadata, you must set ID3 metadata to Passthrough.
*/
public final TimedMetadataInsertion timedMetadataInsertion() {
return timedMetadataInsertion;
}
@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 final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(adAvailOffset());
hashCode = 31 * hashCode + Objects.hashCode(availBlanking());
hashCode = 31 * hashCode + Objects.hashCode(hasColorConversion3DLUTSettings() ? colorConversion3DLUTSettings() : null);
hashCode = 31 * hashCode + Objects.hashCode(esam());
hashCode = 31 * hashCode + Objects.hashCode(extendedDataServices());
hashCode = 31 * hashCode + Objects.hashCode(followSource());
hashCode = 31 * hashCode + Objects.hashCode(hasInputs() ? inputs() : null);
hashCode = 31 * hashCode + Objects.hashCode(kantarWatermark());
hashCode = 31 * hashCode + Objects.hashCode(motionImageInserter());
hashCode = 31 * hashCode + Objects.hashCode(nielsenConfiguration());
hashCode = 31 * hashCode + Objects.hashCode(nielsenNonLinearWatermark());
hashCode = 31 * hashCode + Objects.hashCode(hasOutputGroups() ? outputGroups() : null);
hashCode = 31 * hashCode + Objects.hashCode(timecodeConfig());
hashCode = 31 * hashCode + Objects.hashCode(timedMetadataInsertion());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof JobSettings)) {
return false;
}
JobSettings other = (JobSettings) obj;
return Objects.equals(adAvailOffset(), other.adAvailOffset()) && Objects.equals(availBlanking(), other.availBlanking())
&& hasColorConversion3DLUTSettings() == other.hasColorConversion3DLUTSettings()
&& Objects.equals(colorConversion3DLUTSettings(), other.colorConversion3DLUTSettings())
&& Objects.equals(esam(), other.esam()) && Objects.equals(extendedDataServices(), other.extendedDataServices())
&& Objects.equals(followSource(), other.followSource()) && hasInputs() == other.hasInputs()
&& Objects.equals(inputs(), other.inputs()) && Objects.equals(kantarWatermark(), other.kantarWatermark())
&& Objects.equals(motionImageInserter(), other.motionImageInserter())
&& Objects.equals(nielsenConfiguration(), other.nielsenConfiguration())
&& Objects.equals(nielsenNonLinearWatermark(), other.nielsenNonLinearWatermark())
&& hasOutputGroups() == other.hasOutputGroups() && Objects.equals(outputGroups(), other.outputGroups())
&& Objects.equals(timecodeConfig(), other.timecodeConfig())
&& Objects.equals(timedMetadataInsertion(), other.timedMetadataInsertion());
}
/**
* 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("JobSettings").add("AdAvailOffset", adAvailOffset()).add("AvailBlanking", availBlanking())
.add("ColorConversion3DLUTSettings", hasColorConversion3DLUTSettings() ? colorConversion3DLUTSettings() : null)
.add("Esam", esam()).add("ExtendedDataServices", extendedDataServices()).add("FollowSource", followSource())
.add("Inputs", hasInputs() ? inputs() : null).add("KantarWatermark", kantarWatermark())
.add("MotionImageInserter", motionImageInserter()).add("NielsenConfiguration", nielsenConfiguration())
.add("NielsenNonLinearWatermark", nielsenNonLinearWatermark())
.add("OutputGroups", hasOutputGroups() ? outputGroups() : null).add("TimecodeConfig", timecodeConfig())
.add("TimedMetadataInsertion", timedMetadataInsertion()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "AdAvailOffset":
return Optional.ofNullable(clazz.cast(adAvailOffset()));
case "AvailBlanking":
return Optional.ofNullable(clazz.cast(availBlanking()));
case "ColorConversion3DLUTSettings":
return Optional.ofNullable(clazz.cast(colorConversion3DLUTSettings()));
case "Esam":
return Optional.ofNullable(clazz.cast(esam()));
case "ExtendedDataServices":
return Optional.ofNullable(clazz.cast(extendedDataServices()));
case "FollowSource":
return Optional.ofNullable(clazz.cast(followSource()));
case "Inputs":
return Optional.ofNullable(clazz.cast(inputs()));
case "KantarWatermark":
return Optional.ofNullable(clazz.cast(kantarWatermark()));
case "MotionImageInserter":
return Optional.ofNullable(clazz.cast(motionImageInserter()));
case "NielsenConfiguration":
return Optional.ofNullable(clazz.cast(nielsenConfiguration()));
case "NielsenNonLinearWatermark":
return Optional.ofNullable(clazz.cast(nielsenNonLinearWatermark()));
case "OutputGroups":
return Optional.ofNullable(clazz.cast(outputGroups()));
case "TimecodeConfig":
return Optional.ofNullable(clazz.cast(timecodeConfig()));
case "TimedMetadataInsertion":
return Optional.ofNullable(clazz.cast(timedMetadataInsertion()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function