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

com.pulumi.azurenative.videoanalyzer.outputs.VideoSinkResponse Maven / Gradle / Ivy

There is a newer version: 2.78.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.outputs;

import com.pulumi.azurenative.videoanalyzer.outputs.NodeInputResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.VideoCreationPropertiesResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.VideoPublishingOptionsResponse;
import com.pulumi.core.annotations.CustomType;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;

@CustomType
public final class VideoSinkResponse {
    /**
     * @return An array of upstream node references within the topology to be used as inputs for this node.
     * 
     */
    private List inputs;
    /**
     * @return Node name. Must be unique within the topology.
     * 
     */
    private String name;
    /**
     * @return The discriminator for derived types.
     * Expected value is '#Microsoft.VideoAnalyzer.VideoSink'.
     * 
     */
    private String type;
    /**
     * @return Optional video properties to be used in case a new video resource needs to be created on the service.
     * 
     */
    private @Nullable VideoCreationPropertiesResponse videoCreationProperties;
    /**
     * @return Name of a new or existing video resource used to capture and publish content. Note: if downstream of RTSP source, and if disableArchive is set to true, then no content is archived.
     * 
     */
    private String videoName;
    /**
     * @return Options to change how the video sink publishes content via the video resource. This property is only allowed for topologies where "kind" is set to "live".
     * 
     */
    private @Nullable VideoPublishingOptionsResponse videoPublishingOptions;

    private VideoSinkResponse() {}
    /**
     * @return An array of upstream node references within the topology to be used as inputs for this node.
     * 
     */
    public List inputs() {
        return this.inputs;
    }
    /**
     * @return Node name. Must be unique within the topology.
     * 
     */
    public String name() {
        return this.name;
    }
    /**
     * @return The discriminator for derived types.
     * Expected value is '#Microsoft.VideoAnalyzer.VideoSink'.
     * 
     */
    public String type() {
        return this.type;
    }
    /**
     * @return Optional video properties to be used in case a new video resource needs to be created on the service.
     * 
     */
    public Optional videoCreationProperties() {
        return Optional.ofNullable(this.videoCreationProperties);
    }
    /**
     * @return Name of a new or existing video resource used to capture and publish content. Note: if downstream of RTSP source, and if disableArchive is set to true, then no content is archived.
     * 
     */
    public String videoName() {
        return this.videoName;
    }
    /**
     * @return Options to change how the video sink publishes content via the video resource. This property is only allowed for topologies where "kind" is set to "live".
     * 
     */
    public Optional videoPublishingOptions() {
        return Optional.ofNullable(this.videoPublishingOptions);
    }

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

    public static Builder builder(VideoSinkResponse defaults) {
        return new Builder(defaults);
    }
    @CustomType.Builder
    public static final class Builder {
        private List inputs;
        private String name;
        private String type;
        private @Nullable VideoCreationPropertiesResponse videoCreationProperties;
        private String videoName;
        private @Nullable VideoPublishingOptionsResponse videoPublishingOptions;
        public Builder() {}
        public Builder(VideoSinkResponse defaults) {
    	      Objects.requireNonNull(defaults);
    	      this.inputs = defaults.inputs;
    	      this.name = defaults.name;
    	      this.type = defaults.type;
    	      this.videoCreationProperties = defaults.videoCreationProperties;
    	      this.videoName = defaults.videoName;
    	      this.videoPublishingOptions = defaults.videoPublishingOptions;
        }

        @CustomType.Setter
        public Builder inputs(List inputs) {
            if (inputs == null) {
              throw new MissingRequiredPropertyException("VideoSinkResponse", "inputs");
            }
            this.inputs = inputs;
            return this;
        }
        public Builder inputs(NodeInputResponse... inputs) {
            return inputs(List.of(inputs));
        }
        @CustomType.Setter
        public Builder name(String name) {
            if (name == null) {
              throw new MissingRequiredPropertyException("VideoSinkResponse", "name");
            }
            this.name = name;
            return this;
        }
        @CustomType.Setter
        public Builder type(String type) {
            if (type == null) {
              throw new MissingRequiredPropertyException("VideoSinkResponse", "type");
            }
            this.type = type;
            return this;
        }
        @CustomType.Setter
        public Builder videoCreationProperties(@Nullable VideoCreationPropertiesResponse videoCreationProperties) {

            this.videoCreationProperties = videoCreationProperties;
            return this;
        }
        @CustomType.Setter
        public Builder videoName(String videoName) {
            if (videoName == null) {
              throw new MissingRequiredPropertyException("VideoSinkResponse", "videoName");
            }
            this.videoName = videoName;
            return this;
        }
        @CustomType.Setter
        public Builder videoPublishingOptions(@Nullable VideoPublishingOptionsResponse videoPublishingOptions) {

            this.videoPublishingOptions = videoPublishingOptions;
            return this;
        }
        public VideoSinkResponse build() {
            final var _resultValue = new VideoSinkResponse();
            _resultValue.inputs = inputs;
            _resultValue.name = name;
            _resultValue.type = type;
            _resultValue.videoCreationProperties = videoCreationProperties;
            _resultValue.videoName = videoName;
            _resultValue.videoPublishingOptions = videoPublishingOptions;
            return _resultValue;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy