software.amazon.awscdk.services.ivs.alpha.ChannelProps Maven / Gradle / Ivy
Show all versions of ivs-alpha Show documentation
package software.amazon.awscdk.services.ivs.alpha;
/**
* (experimental) Properties for creating a new Channel.
*
* Example:
*
*
* Channel myRtmpChannel = Channel.Builder.create(this, "myRtmpChannel")
* .type(ChannelType.STANDARD)
* .insecureIngest(true)
* .build();
*
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-24T10:56:42.135Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.ivs.alpha.$Module.class, fqn = "@aws-cdk/aws-ivs-alpha.ChannelProps")
@software.amazon.jsii.Jsii.Proxy(ChannelProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface ChannelProps extends software.amazon.jsii.JsiiSerializable {
/**
* (experimental) Whether the channel is authorized.
*
* If you wish to make an authorized channel, you will need to ensure that
* a PlaybackKeyPair has been uploaded to your account as this is used to
* validate the signed JWT that is required for authorization
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getAuthorized() {
return null;
}
/**
* (experimental) A name for the channel.
*
* Default: Automatically generated name
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getChannelName() {
return null;
}
/**
* (experimental) Whether the channel allows insecure RTMP ingest.
*
* Default: false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getInsecureIngest() {
return null;
}
/**
* (experimental) Channel latency mode.
*
* Default: LatencyMode.LOW
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ivs.alpha.LatencyMode getLatencyMode() {
return null;
}
/**
* (experimental) An optional transcode preset for the channel.
*
* Can be used for ADVANCED_HD and ADVANCED_SD channel types.
* When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided.
*
* Default: - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ivs.alpha.Preset getPreset() {
return null;
}
/**
* (experimental) The channel type, which determines the allowable resolution and bitrate.
*
* If you exceed the allowable resolution or bitrate, the stream will disconnect immediately
*
* Default: ChannelType.STANDARD
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ivs.alpha.ChannelType getType() {
return null;
}
/**
* @return a {@link Builder} of {@link ChannelProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link ChannelProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.Boolean authorized;
java.lang.String channelName;
java.lang.Boolean insecureIngest;
software.amazon.awscdk.services.ivs.alpha.LatencyMode latencyMode;
software.amazon.awscdk.services.ivs.alpha.Preset preset;
software.amazon.awscdk.services.ivs.alpha.ChannelType type;
/**
* Sets the value of {@link ChannelProps#getAuthorized}
* @param authorized Whether the channel is authorized.
* If you wish to make an authorized channel, you will need to ensure that
* a PlaybackKeyPair has been uploaded to your account as this is used to
* validate the signed JWT that is required for authorization
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder authorized(java.lang.Boolean authorized) {
this.authorized = authorized;
return this;
}
/**
* Sets the value of {@link ChannelProps#getChannelName}
* @param channelName A name for the channel.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder channelName(java.lang.String channelName) {
this.channelName = channelName;
return this;
}
/**
* Sets the value of {@link ChannelProps#getInsecureIngest}
* @param insecureIngest Whether the channel allows insecure RTMP ingest.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder insecureIngest(java.lang.Boolean insecureIngest) {
this.insecureIngest = insecureIngest;
return this;
}
/**
* Sets the value of {@link ChannelProps#getLatencyMode}
* @param latencyMode Channel latency mode.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder latencyMode(software.amazon.awscdk.services.ivs.alpha.LatencyMode latencyMode) {
this.latencyMode = latencyMode;
return this;
}
/**
* Sets the value of {@link ChannelProps#getPreset}
* @param preset An optional transcode preset for the channel.
* Can be used for ADVANCED_HD and ADVANCED_SD channel types.
* When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder preset(software.amazon.awscdk.services.ivs.alpha.Preset preset) {
this.preset = preset;
return this;
}
/**
* Sets the value of {@link ChannelProps#getType}
* @param type The channel type, which determines the allowable resolution and bitrate.
* If you exceed the allowable resolution or bitrate, the stream will disconnect immediately
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder type(software.amazon.awscdk.services.ivs.alpha.ChannelType type) {
this.type = type;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link ChannelProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public ChannelProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link ChannelProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ChannelProps {
private final java.lang.Boolean authorized;
private final java.lang.String channelName;
private final java.lang.Boolean insecureIngest;
private final software.amazon.awscdk.services.ivs.alpha.LatencyMode latencyMode;
private final software.amazon.awscdk.services.ivs.alpha.Preset preset;
private final software.amazon.awscdk.services.ivs.alpha.ChannelType type;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.authorized = software.amazon.jsii.Kernel.get(this, "authorized", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.channelName = software.amazon.jsii.Kernel.get(this, "channelName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.insecureIngest = software.amazon.jsii.Kernel.get(this, "insecureIngest", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.latencyMode = software.amazon.jsii.Kernel.get(this, "latencyMode", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ivs.alpha.LatencyMode.class));
this.preset = software.amazon.jsii.Kernel.get(this, "preset", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ivs.alpha.Preset.class));
this.type = software.amazon.jsii.Kernel.get(this, "type", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ivs.alpha.ChannelType.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.authorized = builder.authorized;
this.channelName = builder.channelName;
this.insecureIngest = builder.insecureIngest;
this.latencyMode = builder.latencyMode;
this.preset = builder.preset;
this.type = builder.type;
}
@Override
public final java.lang.Boolean getAuthorized() {
return this.authorized;
}
@Override
public final java.lang.String getChannelName() {
return this.channelName;
}
@Override
public final java.lang.Boolean getInsecureIngest() {
return this.insecureIngest;
}
@Override
public final software.amazon.awscdk.services.ivs.alpha.LatencyMode getLatencyMode() {
return this.latencyMode;
}
@Override
public final software.amazon.awscdk.services.ivs.alpha.Preset getPreset() {
return this.preset;
}
@Override
public final software.amazon.awscdk.services.ivs.alpha.ChannelType getType() {
return this.type;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
if (this.getAuthorized() != null) {
data.set("authorized", om.valueToTree(this.getAuthorized()));
}
if (this.getChannelName() != null) {
data.set("channelName", om.valueToTree(this.getChannelName()));
}
if (this.getInsecureIngest() != null) {
data.set("insecureIngest", om.valueToTree(this.getInsecureIngest()));
}
if (this.getLatencyMode() != null) {
data.set("latencyMode", om.valueToTree(this.getLatencyMode()));
}
if (this.getPreset() != null) {
data.set("preset", om.valueToTree(this.getPreset()));
}
if (this.getType() != null) {
data.set("type", om.valueToTree(this.getType()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-ivs-alpha.ChannelProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ChannelProps.Jsii$Proxy that = (ChannelProps.Jsii$Proxy) o;
if (this.authorized != null ? !this.authorized.equals(that.authorized) : that.authorized != null) return false;
if (this.channelName != null ? !this.channelName.equals(that.channelName) : that.channelName != null) return false;
if (this.insecureIngest != null ? !this.insecureIngest.equals(that.insecureIngest) : that.insecureIngest != null) return false;
if (this.latencyMode != null ? !this.latencyMode.equals(that.latencyMode) : that.latencyMode != null) return false;
if (this.preset != null ? !this.preset.equals(that.preset) : that.preset != null) return false;
return this.type != null ? this.type.equals(that.type) : that.type == null;
}
@Override
public final int hashCode() {
int result = this.authorized != null ? this.authorized.hashCode() : 0;
result = 31 * result + (this.channelName != null ? this.channelName.hashCode() : 0);
result = 31 * result + (this.insecureIngest != null ? this.insecureIngest.hashCode() : 0);
result = 31 * result + (this.latencyMode != null ? this.latencyMode.hashCode() : 0);
result = 31 * result + (this.preset != null ? this.preset.hashCode() : 0);
result = 31 * result + (this.type != null ? this.type.hashCode() : 0);
return result;
}
}
}