com.pulumi.azurenative.videoanalyzer.PipelineTopology Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-native Show documentation
Show all versions of azure-native Show documentation
A native Pulumi package for creating and managing Azure resources.
// *** 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;
import com.pulumi.azurenative.Utilities;
import com.pulumi.azurenative.videoanalyzer.PipelineTopologyArgs;
import com.pulumi.azurenative.videoanalyzer.outputs.EncoderProcessorResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.ParameterDeclarationResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.RtspSourceResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.SkuResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.SystemDataResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.VideoSinkResponse;
import com.pulumi.azurenative.videoanalyzer.outputs.VideoSourceResponse;
import com.pulumi.core.Alias;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.String;
import java.util.List;
import java.util.Optional;
import javax.annotation.Nullable;
/**
* Pipeline topology describes the processing steps to be applied when processing content for a particular outcome. The topology should be defined according to the scenario to be achieved and can be reused across many pipeline instances which share the same processing characteristics. For instance, a pipeline topology which captures content from a RTSP camera and archives the content can be reused across many different cameras, as long as the same processing is to be applied across all the cameras. Individual instance properties can be defined through the use of user-defined parameters, which allow for a topology to be parameterized. This allows individual pipelines refer to different values, such as individual cameras' RTSP endpoints and credentials. Overall a topology is composed of the following:
*
* - Parameters: list of user defined parameters that can be references across the topology nodes.
* - Sources: list of one or more data sources nodes such as an RTSP source which allows for content to be ingested from cameras.
* - Processors: list of nodes which perform data analysis or transformations.
* - Sinks: list of one or more data sinks which allow for data to be stored or exported to other destinations.
* Azure REST API version: 2021-11-01-preview. Prior API version in Azure Native 1.x: 2021-11-01-preview.
*
* ## Example Usage
* ### Create or update a pipeline topology with an Rtsp source and video sink.
*
*
* {@code
* package generated_program;
*
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azurenative.videoanalyzer.PipelineTopology;
* import com.pulumi.azurenative.videoanalyzer.PipelineTopologyArgs;
* import com.pulumi.azurenative.videoanalyzer.inputs.ParameterDeclarationArgs;
* import com.pulumi.azurenative.videoanalyzer.inputs.VideoSinkArgs;
* import com.pulumi.azurenative.videoanalyzer.inputs.VideoCreationPropertiesArgs;
* import com.pulumi.azurenative.videoanalyzer.inputs.VideoPublishingOptionsArgs;
* import com.pulumi.azurenative.videoanalyzer.inputs.SkuArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
*
* public static void stack(Context ctx) {
* var pipelineTopology = new PipelineTopology("pipelineTopology", PipelineTopologyArgs.builder()
* .accountName("testaccount2")
* .description("Pipeline Topology 1 Description")
* .kind("Live")
* .parameters(
* ParameterDeclarationArgs.builder()
* .default_("rtsp://microsoft.com/video.mp4")
* .description("rtsp source url parameter")
* .name("rtspUrlParameter")
* .type("String")
* .build(),
* ParameterDeclarationArgs.builder()
* .default_("password")
* .description("rtsp source password parameter")
* .name("rtspPasswordParameter")
* .type("SecretString")
* .build())
* .pipelineTopologyName("pipelineTopology1")
* .resourceGroupName("testrg")
* .sinks(VideoSinkArgs.builder()
* .inputs(NodeInputArgs.builder()
* .nodeName("rtspSource")
* .build())
* .name("videoSink")
* .type("#Microsoft.VideoAnalyzer.VideoSink")
* .videoCreationProperties(VideoCreationPropertiesArgs.builder()
* .description("Parking lot south entrance")
* .segmentLength("PT30S")
* .title("Parking Lot (Camera 1)")
* .build())
* .videoName("camera001")
* .videoPublishingOptions(VideoPublishingOptionsArgs.builder()
* .disableArchive("false")
* .disableRtspPublishing("true")
* .build())
* .build())
* .sku(SkuArgs.builder()
* .name("Live_S1")
* .build())
* .sources(RtspSourceArgs.builder()
* .endpoint(TlsEndpointArgs.builder()
* .credentials(UsernamePasswordCredentialsArgs.builder()
* .password("${rtspPasswordParameter}")
* .type("#Microsoft.VideoAnalyzer.UsernamePasswordCredentials")
* .username("username")
* .build())
* .type("#Microsoft.VideoAnalyzer.UnsecuredEndpoint")
* .url("${rtspUrlParameter}")
* .build())
* .name("rtspSource")
* .transport("Http")
* .type("#Microsoft.VideoAnalyzer.RtspSource")
* .build())
* .build());
*
* }
* }
*
* }
*
*
* ## Import
*
* An existing resource can be imported using its type token, name, and identifier, e.g.
*
* ```sh
* $ pulumi import azure-native:videoanalyzer:PipelineTopology pipelineTopology1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/videoAnalyzers/{accountName}/pipelineTopologies/{pipelineTopologyName}
* ```
*
*/
@ResourceType(type="azure-native:videoanalyzer:PipelineTopology")
public class PipelineTopology extends com.pulumi.resources.CustomResource {
/**
* An optional description of the pipeline topology. It is recommended that the expected use of the topology to be described here.
*
*/
@Export(name="description", refs={String.class}, tree="[0]")
private Output* @Nullable */ String> description;
/**
* @return An optional description of the pipeline topology. It is recommended that the expected use of the topology to be described here.
*
*/
public Output> description() {
return Codegen.optional(this.description);
}
/**
* Topology kind.
*
*/
@Export(name="kind", refs={String.class}, tree="[0]")
private Output kind;
/**
* @return Topology kind.
*
*/
public Output kind() {
return this.kind;
}
/**
* The name of the resource
*
*/
@Export(name="name", refs={String.class}, tree="[0]")
private Output name;
/**
* @return The name of the resource
*
*/
public Output name() {
return this.name;
}
/**
* List of the topology parameter declarations. Parameters declared here can be referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can have optional default values and can later be defined in individual instances of the pipeline.
*
*/
@Export(name="parameters", refs={List.class,ParameterDeclarationResponse.class}, tree="[0,1]")
private Output* @Nullable */ List> parameters;
/**
* @return List of the topology parameter declarations. Parameters declared here can be referenced throughout the topology nodes through the use of "${PARAMETER_NAME}" string pattern. Parameters can have optional default values and can later be defined in individual instances of the pipeline.
*
*/
public Output>> parameters() {
return Codegen.optional(this.parameters);
}
/**
* List of the topology processor nodes. Processor nodes enable pipeline data to be analyzed, processed or transformed.
*
*/
@Export(name="processors", refs={List.class,EncoderProcessorResponse.class}, tree="[0,1]")
private Output* @Nullable */ List> processors;
/**
* @return List of the topology processor nodes. Processor nodes enable pipeline data to be analyzed, processed or transformed.
*
*/
public Output>> processors() {
return Codegen.optional(this.processors);
}
/**
* List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
*
*/
@Export(name="sinks", refs={List.class,VideoSinkResponse.class}, tree="[0,1]")
private Output> sinks;
/**
* @return List of the topology sink nodes. Sink nodes allow pipeline data to be stored or exported.
*
*/
public Output> sinks() {
return this.sinks;
}
/**
* Describes the properties of a SKU.
*
*/
@Export(name="sku", refs={SkuResponse.class}, tree="[0]")
private Output sku;
/**
* @return Describes the properties of a SKU.
*
*/
public Output sku() {
return this.sku;
}
/**
* List of the topology source nodes. Source nodes enable external data to be ingested by the pipeline.
*
*/
@Export(name="sources", refs={List.class,Either.class,RtspSourceResponse.class,VideoSourceResponse.class}, tree="[0,[1,2,3]]")
private Output>> sources;
/**
* @return List of the topology source nodes. Source nodes enable external data to be ingested by the pipeline.
*
*/
public Output>> sources() {
return this.sources;
}
/**
* Azure Resource Manager metadata containing createdBy and modifiedBy information.
*
*/
@Export(name="systemData", refs={SystemDataResponse.class}, tree="[0]")
private Output systemData;
/**
* @return Azure Resource Manager metadata containing createdBy and modifiedBy information.
*
*/
public Output systemData() {
return this.systemData;
}
/**
* The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
*
*/
@Export(name="type", refs={String.class}, tree="[0]")
private Output type;
/**
* @return The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
*
*/
public Output type() {
return this.type;
}
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public PipelineTopology(java.lang.String name) {
this(name, PipelineTopologyArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public PipelineTopology(java.lang.String name, PipelineTopologyArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public PipelineTopology(java.lang.String name, PipelineTopologyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("azure-native:videoanalyzer:PipelineTopology", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
}
private PipelineTopology(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("azure-native:videoanalyzer:PipelineTopology", name, null, makeResourceOptions(options, id), false);
}
private static PipelineTopologyArgs makeArgs(PipelineTopologyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
if (options != null && options.getUrn().isPresent()) {
return null;
}
return args == null ? PipelineTopologyArgs.Empty : args;
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.aliases(List.of(
Output.of(Alias.builder().type("azure-native:videoanalyzer/v20211101preview:PipelineTopology").build())
))
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
/**
* Get an existing Host resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param options Optional settings to control the behavior of the CustomResource.
*/
public static PipelineTopology get(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new PipelineTopology(name, id, options);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy