
software.amazon.awssdk.services.mediatailor.model.RequestOutputItem Maven / Gradle / Ivy
/*
* 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.mediatailor.model;
import java.beans.Transient;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* The output configuration for this channel.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class RequestOutputItem implements SdkPojo, Serializable,
ToCopyableBuilder {
private static final SdkField DASH_PLAYLIST_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("DashPlaylistSettings")
.getter(getter(RequestOutputItem::dashPlaylistSettings)).setter(setter(Builder::dashPlaylistSettings))
.constructor(DashPlaylistSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DashPlaylistSettings").build())
.build();
private static final SdkField HLS_PLAYLIST_SETTINGS_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("HlsPlaylistSettings")
.getter(getter(RequestOutputItem::hlsPlaylistSettings)).setter(setter(Builder::hlsPlaylistSettings))
.constructor(HlsPlaylistSettings::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("HlsPlaylistSettings").build())
.build();
private static final SdkField MANIFEST_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("ManifestName").getter(getter(RequestOutputItem::manifestName)).setter(setter(Builder::manifestName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ManifestName").build()).build();
private static final SdkField SOURCE_GROUP_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("SourceGroup").getter(getter(RequestOutputItem::sourceGroup)).setter(setter(Builder::sourceGroup))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("SourceGroup").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(DASH_PLAYLIST_SETTINGS_FIELD,
HLS_PLAYLIST_SETTINGS_FIELD, MANIFEST_NAME_FIELD, SOURCE_GROUP_FIELD));
private static final long serialVersionUID = 1L;
private final DashPlaylistSettings dashPlaylistSettings;
private final HlsPlaylistSettings hlsPlaylistSettings;
private final String manifestName;
private final String sourceGroup;
private RequestOutputItem(BuilderImpl builder) {
this.dashPlaylistSettings = builder.dashPlaylistSettings;
this.hlsPlaylistSettings = builder.hlsPlaylistSettings;
this.manifestName = builder.manifestName;
this.sourceGroup = builder.sourceGroup;
}
/**
*
* DASH manifest configuration parameters.
*
*
* @return DASH manifest configuration parameters.
*/
public final DashPlaylistSettings dashPlaylistSettings() {
return dashPlaylistSettings;
}
/**
*
* HLS playlist configuration parameters.
*
*
* @return HLS playlist configuration parameters.
*/
public final HlsPlaylistSettings hlsPlaylistSettings() {
return hlsPlaylistSettings;
}
/**
*
* The name of the manifest for the channel. The name appears in the PlaybackUrl.
*
*
* @return The name of the manifest for the channel. The name appears in the PlaybackUrl.
*/
public final String manifestName() {
return manifestName;
}
/**
*
* A string used to match which HttpPackageConfiguration is used for each VodSource.
*
*
* @return A string used to match which HttpPackageConfiguration is used for each VodSource.
*/
public final String sourceGroup() {
return sourceGroup;
}
@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(dashPlaylistSettings());
hashCode = 31 * hashCode + Objects.hashCode(hlsPlaylistSettings());
hashCode = 31 * hashCode + Objects.hashCode(manifestName());
hashCode = 31 * hashCode + Objects.hashCode(sourceGroup());
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 RequestOutputItem)) {
return false;
}
RequestOutputItem other = (RequestOutputItem) obj;
return Objects.equals(dashPlaylistSettings(), other.dashPlaylistSettings())
&& Objects.equals(hlsPlaylistSettings(), other.hlsPlaylistSettings())
&& Objects.equals(manifestName(), other.manifestName()) && Objects.equals(sourceGroup(), other.sourceGroup());
}
/**
* 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("RequestOutputItem").add("DashPlaylistSettings", dashPlaylistSettings())
.add("HlsPlaylistSettings", hlsPlaylistSettings()).add("ManifestName", manifestName())
.add("SourceGroup", sourceGroup()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "DashPlaylistSettings":
return Optional.ofNullable(clazz.cast(dashPlaylistSettings()));
case "HlsPlaylistSettings":
return Optional.ofNullable(clazz.cast(hlsPlaylistSettings()));
case "ManifestName":
return Optional.ofNullable(clazz.cast(manifestName()));
case "SourceGroup":
return Optional.ofNullable(clazz.cast(sourceGroup()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function
© 2015 - 2025 Weber Informatics LLC | Privacy Policy