/* * Copyright 2018-2023 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 com.amazonaws.services.mediapackagev2.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class UpdateOriginEndpointRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *

* The name that describes the channel group. The name is the primary identifier for the channel group, and must be * unique for your account in the AWS Region. *

*/ private String channelGroupName; /** *

* The name that describes the channel. The name is the primary identifier for the channel, and must be unique for * your account in the AWS Region and channel group. *

*/ private String channelName; /** *

* The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and and * must be unique for your account in the AWS Region and channel. *

*/ private String originEndpointName; /** *

* The type of container attached to this origin endpoint. A container type is a file format that encapsulates one * or more media streams, such as audio and video, into a single file. *

*/ private String containerType; /** *

* The segment configuration, including the segment name, duration, and other configuration values. *

*/ private Segment segment; /** *

* Any descriptive information that you want to add to the origin endpoint for future identification purposes. *

*/ private String description; /** *

* The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. * Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is * 1,209,600 seconds (14 days). *

*/ private Integer startoverWindowSeconds; /** *

* An HTTP live streaming (HLS) manifest configuration. *

*/ private java.util.List hlsManifests; /** *

* A low-latency HLS manifest configuration. *

*/ private java.util.List lowLatencyHlsManifests; /** *

* The name that describes the channel group. The name is the primary identifier for the channel group, and must be * unique for your account in the AWS Region. *

* * @param channelGroupName * The name that describes the channel group. The name is the primary identifier for the channel group, and * must be unique for your account in the AWS Region. */ public void setChannelGroupName(String channelGroupName) { this.channelGroupName = channelGroupName; } /** *

* The name that describes the channel group. The name is the primary identifier for the channel group, and must be * unique for your account in the AWS Region. *

* * @return The name that describes the channel group. The name is the primary identifier for the channel group, and * must be unique for your account in the AWS Region. */ public String getChannelGroupName() { return this.channelGroupName; } /** *

* The name that describes the channel group. The name is the primary identifier for the channel group, and must be * unique for your account in the AWS Region. *

* * @param channelGroupName * The name that describes the channel group. The name is the primary identifier for the channel group, and * must be unique for your account in the AWS Region. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withChannelGroupName(String channelGroupName) { setChannelGroupName(channelGroupName); return this; } /** *

* The name that describes the channel. The name is the primary identifier for the channel, and must be unique for * your account in the AWS Region and channel group. *

* * @param channelName * The name that describes the channel. The name is the primary identifier for the channel, and must be * unique for your account in the AWS Region and channel group. */ public void setChannelName(String channelName) { this.channelName = channelName; } /** *

* The name that describes the channel. The name is the primary identifier for the channel, and must be unique for * your account in the AWS Region and channel group. *

* * @return The name that describes the channel. The name is the primary identifier for the channel, and must be * unique for your account in the AWS Region and channel group. */ public String getChannelName() { return this.channelName; } /** *

* The name that describes the channel. The name is the primary identifier for the channel, and must be unique for * your account in the AWS Region and channel group. *

* * @param channelName * The name that describes the channel. The name is the primary identifier for the channel, and must be * unique for your account in the AWS Region and channel group. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withChannelName(String channelName) { setChannelName(channelName); return this; } /** *

* The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and and * must be unique for your account in the AWS Region and channel. *

* * @param originEndpointName * The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, * and and must be unique for your account in the AWS Region and channel. */ public void setOriginEndpointName(String originEndpointName) { this.originEndpointName = originEndpointName; } /** *

* The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and and * must be unique for your account in the AWS Region and channel. *

* * @return The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, * and and must be unique for your account in the AWS Region and channel. */ public String getOriginEndpointName() { return this.originEndpointName; } /** *

* The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, and and * must be unique for your account in the AWS Region and channel. *

* * @param originEndpointName * The name that describes the origin endpoint. The name is the primary identifier for the origin endpoint, * and and must be unique for your account in the AWS Region and channel. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withOriginEndpointName(String originEndpointName) { setOriginEndpointName(originEndpointName); return this; } /** *

* The type of container attached to this origin endpoint. A container type is a file format that encapsulates one * or more media streams, such as audio and video, into a single file. *

* * @param containerType * The type of container attached to this origin endpoint. A container type is a file format that * encapsulates one or more media streams, such as audio and video, into a single file. * @see ContainerType */ public void setContainerType(String containerType) { this.containerType = containerType; } /** *

* The type of container attached to this origin endpoint. A container type is a file format that encapsulates one * or more media streams, such as audio and video, into a single file. *

* * @return The type of container attached to this origin endpoint. A container type is a file format that * encapsulates one or more media streams, such as audio and video, into a single file. * @see ContainerType */ public String getContainerType() { return this.containerType; } /** *

* The type of container attached to this origin endpoint. A container type is a file format that encapsulates one * or more media streams, such as audio and video, into a single file. *

* * @param containerType * The type of container attached to this origin endpoint. A container type is a file format that * encapsulates one or more media streams, such as audio and video, into a single file. * @return Returns a reference to this object so that method calls can be chained together. * @see ContainerType */ public UpdateOriginEndpointRequest withContainerType(String containerType) { setContainerType(containerType); return this; } /** *

* The type of container attached to this origin endpoint. A container type is a file format that encapsulates one * or more media streams, such as audio and video, into a single file. *

* * @param containerType * The type of container attached to this origin endpoint. A container type is a file format that * encapsulates one or more media streams, such as audio and video, into a single file. * @return Returns a reference to this object so that method calls can be chained together. * @see ContainerType */ public UpdateOriginEndpointRequest withContainerType(ContainerType containerType) { this.containerType = containerType.toString(); return this; } /** *

* The segment configuration, including the segment name, duration, and other configuration values. *

* * @param segment * The segment configuration, including the segment name, duration, and other configuration values. */ public void setSegment(Segment segment) { this.segment = segment; } /** *

* The segment configuration, including the segment name, duration, and other configuration values. *

* * @return The segment configuration, including the segment name, duration, and other configuration values. */ public Segment getSegment() { return this.segment; } /** *

* The segment configuration, including the segment name, duration, and other configuration values. *

* * @param segment * The segment configuration, including the segment name, duration, and other configuration values. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withSegment(Segment segment) { setSegment(segment); return this; } /** *

* Any descriptive information that you want to add to the origin endpoint for future identification purposes. *

* * @param description * Any descriptive information that you want to add to the origin endpoint for future identification * purposes. */ public void setDescription(String description) { this.description = description; } /** *

* Any descriptive information that you want to add to the origin endpoint for future identification purposes. *

* * @return Any descriptive information that you want to add to the origin endpoint for future identification * purposes. */ public String getDescription() { return this.description; } /** *

* Any descriptive information that you want to add to the origin endpoint for future identification purposes. *

* * @param description * Any descriptive information that you want to add to the origin endpoint for future identification * purposes. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withDescription(String description) { setDescription(description); return this; } /** *

* The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. * Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is * 1,209,600 seconds (14 days). *

* * @param startoverWindowSeconds * The size of the window (in seconds) to create a window of the live stream that's available for on-demand * viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover * window is 1,209,600 seconds (14 days). */ public void setStartoverWindowSeconds(Integer startoverWindowSeconds) { this.startoverWindowSeconds = startoverWindowSeconds; } /** *

* The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. * Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is * 1,209,600 seconds (14 days). *

* * @return The size of the window (in seconds) to create a window of the live stream that's available for on-demand * viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum * startover window is 1,209,600 seconds (14 days). */ public Integer getStartoverWindowSeconds() { return this.startoverWindowSeconds; } /** *

* The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. * Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is * 1,209,600 seconds (14 days). *

* * @param startoverWindowSeconds * The size of the window (in seconds) to create a window of the live stream that's available for on-demand * viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover * window is 1,209,600 seconds (14 days). * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withStartoverWindowSeconds(Integer startoverWindowSeconds) { setStartoverWindowSeconds(startoverWindowSeconds); return this; } /** *

* An HTTP live streaming (HLS) manifest configuration. *

* * @return An HTTP live streaming (HLS) manifest configuration. */ public java.util.List getHlsManifests() { return hlsManifests; } /** *

* An HTTP live streaming (HLS) manifest configuration. *

* * @param hlsManifests * An HTTP live streaming (HLS) manifest configuration. */ public void setHlsManifests(java.util.Collection hlsManifests) { if (hlsManifests == null) { this.hlsManifests = null; return; } this.hlsManifests = new java.util.ArrayList(hlsManifests); } /** *

* An HTTP live streaming (HLS) manifest configuration. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setHlsManifests(java.util.Collection)} or {@link #withHlsManifests(java.util.Collection)} if you want to * override the existing values. *

* * @param hlsManifests * An HTTP live streaming (HLS) manifest configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withHlsManifests(CreateHlsManifestConfiguration... hlsManifests) { if (this.hlsManifests == null) { setHlsManifests(new java.util.ArrayList(hlsManifests.length)); } for (CreateHlsManifestConfiguration ele : hlsManifests) { this.hlsManifests.add(ele); } return this; } /** *

* An HTTP live streaming (HLS) manifest configuration. *

* * @param hlsManifests * An HTTP live streaming (HLS) manifest configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withHlsManifests(java.util.Collection hlsManifests) { setHlsManifests(hlsManifests); return this; } /** *

* A low-latency HLS manifest configuration. *

* * @return A low-latency HLS manifest configuration. */ public java.util.List getLowLatencyHlsManifests() { return lowLatencyHlsManifests; } /** *

* A low-latency HLS manifest configuration. *

* * @param lowLatencyHlsManifests * A low-latency HLS manifest configuration. */ public void setLowLatencyHlsManifests(java.util.Collection lowLatencyHlsManifests) { if (lowLatencyHlsManifests == null) { this.lowLatencyHlsManifests = null; return; } this.lowLatencyHlsManifests = new java.util.ArrayList(lowLatencyHlsManifests); } /** *

* A low-latency HLS manifest configuration. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setLowLatencyHlsManifests(java.util.Collection)} or * {@link #withLowLatencyHlsManifests(java.util.Collection)} if you want to override the existing values. *

* * @param lowLatencyHlsManifests * A low-latency HLS manifest configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withLowLatencyHlsManifests(CreateLowLatencyHlsManifestConfiguration... lowLatencyHlsManifests) { if (this.lowLatencyHlsManifests == null) { setLowLatencyHlsManifests(new java.util.ArrayList(lowLatencyHlsManifests.length)); } for (CreateLowLatencyHlsManifestConfiguration ele : lowLatencyHlsManifests) { this.lowLatencyHlsManifests.add(ele); } return this; } /** *

* A low-latency HLS manifest configuration. *

* * @param lowLatencyHlsManifests * A low-latency HLS manifest configuration. * @return Returns a reference to this object so that method calls can be chained together. */ public UpdateOriginEndpointRequest withLowLatencyHlsManifests(java.util.Collection lowLatencyHlsManifests) { setLowLatencyHlsManifests(lowLatencyHlsManifests); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getChannelGroupName() != null) sb.append("ChannelGroupName: ").append(getChannelGroupName()).append(","); if (getChannelName() != null) sb.append("ChannelName: ").append(getChannelName()).append(","); if (getOriginEndpointName() != null) sb.append("OriginEndpointName: ").append(getOriginEndpointName()).append(","); if (getContainerType() != null) sb.append("ContainerType: ").append(getContainerType()).append(","); if (getSegment() != null) sb.append("Segment: ").append(getSegment()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getStartoverWindowSeconds() != null) sb.append("StartoverWindowSeconds: ").append(getStartoverWindowSeconds()).append(","); if (getHlsManifests() != null) sb.append("HlsManifests: ").append(getHlsManifests()).append(","); if (getLowLatencyHlsManifests() != null) sb.append("LowLatencyHlsManifests: ").append(getLowLatencyHlsManifests()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof UpdateOriginEndpointRequest == false) return false; UpdateOriginEndpointRequest other = (UpdateOriginEndpointRequest) obj; if (other.getChannelGroupName() == null ^ this.getChannelGroupName() == null) return false; if (other.getChannelGroupName() != null && other.getChannelGroupName().equals(this.getChannelGroupName()) == false) return false; if (other.getChannelName() == null ^ this.getChannelName() == null) return false; if (other.getChannelName() != null && other.getChannelName().equals(this.getChannelName()) == false) return false; if (other.getOriginEndpointName() == null ^ this.getOriginEndpointName() == null) return false; if (other.getOriginEndpointName() != null && other.getOriginEndpointName().equals(this.getOriginEndpointName()) == false) return false; if (other.getContainerType() == null ^ this.getContainerType() == null) return false; if (other.getContainerType() != null && other.getContainerType().equals(this.getContainerType()) == false) return false; if (other.getSegment() == null ^ this.getSegment() == null) return false; if (other.getSegment() != null && other.getSegment().equals(this.getSegment()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getStartoverWindowSeconds() == null ^ this.getStartoverWindowSeconds() == null) return false; if (other.getStartoverWindowSeconds() != null && other.getStartoverWindowSeconds().equals(this.getStartoverWindowSeconds()) == false) return false; if (other.getHlsManifests() == null ^ this.getHlsManifests() == null) return false; if (other.getHlsManifests() != null && other.getHlsManifests().equals(this.getHlsManifests()) == false) return false; if (other.getLowLatencyHlsManifests() == null ^ this.getLowLatencyHlsManifests() == null) return false; if (other.getLowLatencyHlsManifests() != null && other.getLowLatencyHlsManifests().equals(this.getLowLatencyHlsManifests()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getChannelGroupName() == null) ? 0 : getChannelGroupName().hashCode()); hashCode = prime * hashCode + ((getChannelName() == null) ? 0 : getChannelName().hashCode()); hashCode = prime * hashCode + ((getOriginEndpointName() == null) ? 0 : getOriginEndpointName().hashCode()); hashCode = prime * hashCode + ((getContainerType() == null) ? 0 : getContainerType().hashCode()); hashCode = prime * hashCode + ((getSegment() == null) ? 0 : getSegment().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getStartoverWindowSeconds() == null) ? 0 : getStartoverWindowSeconds().hashCode()); hashCode = prime * hashCode + ((getHlsManifests() == null) ? 0 : getHlsManifests().hashCode()); hashCode = prime * hashCode + ((getLowLatencyHlsManifests() == null) ? 0 : getLowLatencyHlsManifests().hashCode()); return hashCode; } @Override public UpdateOriginEndpointRequest clone() { return (UpdateOriginEndpointRequest) super.clone(); } }