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

com.pulumi.azurenative.videoanalyzer.inputs.RtspSourceArgs Maven / Gradle / Ivy

There is a newer version: 2.72.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.videoanalyzer.inputs;

import com.pulumi.azurenative.videoanalyzer.enums.RtspTransport;
import com.pulumi.azurenative.videoanalyzer.inputs.TlsEndpointArgs;
import com.pulumi.azurenative.videoanalyzer.inputs.UnsecuredEndpointArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * RTSP source allows for media from an RTSP camera or generic RTSP server to be ingested into a pipeline.
 * 
 */
public final class RtspSourceArgs extends com.pulumi.resources.ResourceArgs {

    public static final RtspSourceArgs Empty = new RtspSourceArgs();

    /**
     * RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
     * 
     */
    @Import(name="endpoint", required=true)
    private Output> endpoint;

    /**
     * @return RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
     * 
     */
    public Output> endpoint() {
        return this.endpoint;
    }

    /**
     * Node name. Must be unique within the topology.
     * 
     */
    @Import(name="name", required=true)
    private Output name;

    /**
     * @return Node name. Must be unique within the topology.
     * 
     */
    public Output name() {
        return this.name;
    }

    /**
     * Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
     * 
     */
    @Import(name="transport")
    private @Nullable Output> transport;

    /**
     * @return Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
     * 
     */
    public Optional>> transport() {
        return Optional.ofNullable(this.transport);
    }

    /**
     * The discriminator for derived types.
     * Expected value is '#Microsoft.VideoAnalyzer.RtspSource'.
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return The discriminator for derived types.
     * Expected value is '#Microsoft.VideoAnalyzer.RtspSource'.
     * 
     */
    public Output type() {
        return this.type;
    }

    private RtspSourceArgs() {}

    private RtspSourceArgs(RtspSourceArgs $) {
        this.endpoint = $.endpoint;
        this.name = $.name;
        this.transport = $.transport;
        this.type = $.type;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(RtspSourceArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private RtspSourceArgs $;

        public Builder() {
            $ = new RtspSourceArgs();
        }

        public Builder(RtspSourceArgs defaults) {
            $ = new RtspSourceArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param endpoint RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
         * 
         * @return builder
         * 
         */
        public Builder endpoint(Output> endpoint) {
            $.endpoint = endpoint;
            return this;
        }

        /**
         * @param endpoint RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
         * 
         * @return builder
         * 
         */
        public Builder endpoint(Either endpoint) {
            return endpoint(Output.of(endpoint));
        }

        /**
         * @param endpoint RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
         * 
         * @return builder
         * 
         */
        public Builder endpoint(TlsEndpointArgs endpoint) {
            return endpoint(Either.ofLeft(endpoint));
        }

        /**
         * @param endpoint RTSP endpoint information for Video Analyzer to connect to. This contains the required information for Video Analyzer to connect to RTSP cameras and/or generic RTSP servers.
         * 
         * @return builder
         * 
         */
        public Builder endpoint(UnsecuredEndpointArgs endpoint) {
            return endpoint(Either.ofRight(endpoint));
        }

        /**
         * @param name Node name. Must be unique within the topology.
         * 
         * @return builder
         * 
         */
        public Builder name(Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Node name. Must be unique within the topology.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param transport Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
         * 
         * @return builder
         * 
         */
        public Builder transport(@Nullable Output> transport) {
            $.transport = transport;
            return this;
        }

        /**
         * @param transport Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
         * 
         * @return builder
         * 
         */
        public Builder transport(Either transport) {
            return transport(Output.of(transport));
        }

        /**
         * @param transport Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
         * 
         * @return builder
         * 
         */
        public Builder transport(String transport) {
            return transport(Either.ofLeft(transport));
        }

        /**
         * @param transport Network transport utilized by the RTSP and RTP exchange: TCP or HTTP. When using TCP, the RTP packets are interleaved on the TCP RTSP connection. When using HTTP, the RTSP messages are exchanged through long lived HTTP connections, and the RTP packages are interleaved in the HTTP connections alongside the RTSP messages.
         * 
         * @return builder
         * 
         */
        public Builder transport(RtspTransport transport) {
            return transport(Either.ofRight(transport));
        }

        /**
         * @param type The discriminator for derived types.
         * Expected value is '#Microsoft.VideoAnalyzer.RtspSource'.
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type The discriminator for derived types.
         * Expected value is '#Microsoft.VideoAnalyzer.RtspSource'.
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        public RtspSourceArgs build() {
            if ($.endpoint == null) {
                throw new MissingRequiredPropertyException("RtspSourceArgs", "endpoint");
            }
            if ($.name == null) {
                throw new MissingRequiredPropertyException("RtspSourceArgs", "name");
            }
            $.type = Codegen.stringProp("type").output().arg($.type).require();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy