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

com.pulumi.azure.media.kotlin.LiveEventOutputArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.media.kotlin

import com.pulumi.azure.media.LiveEventOutputArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Manages a Azure Media Live Event Output.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 * const example = new azure.core.ResourceGroup("example", {
 *     name: "media-resources",
 *     location: "West Europe",
 * });
 * const exampleAccount = new azure.storage.Account("example", {
 *     name: "examplestoracc",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     accountTier: "Standard",
 *     accountReplicationType: "GRS",
 * });
 * const exampleServiceAccount = new azure.media.ServiceAccount("example", {
 *     name: "examplemediaacc",
 *     location: example.location,
 *     resourceGroupName: example.name,
 *     storageAccounts: [{
 *         id: exampleAccount.id,
 *         isPrimary: true,
 *     }],
 * });
 * const exampleAsset = new azure.media.Asset("example", {
 *     name: "inputAsset",
 *     resourceGroupName: example.name,
 *     mediaServicesAccountName: exampleServiceAccount.name,
 * });
 * const exampleLiveEvent = new azure.media.LiveEvent("example", {
 *     name: "exampleevent",
 *     resourceGroupName: example.name,
 *     location: example.location,
 *     mediaServicesAccountName: exampleServiceAccount.name,
 *     description: "My Event Description",
 *     input: {
 *         streamingProtocol: "RTMP",
 *         keyFrameIntervalDuration: "PT6S",
 *         ipAccessControlAllows: [{
 *             name: "AllowAll",
 *             address: "0.0.0.0",
 *             subnetPrefixLength: 0,
 *         }],
 *     },
 * });
 * const exampleLiveEventOutput = new azure.media.LiveEventOutput("example", {
 *     name: "exampleoutput",
 *     liveEventId: exampleLiveEvent.id,
 *     archiveWindowDuration: "PT5M",
 *     assetName: exampleAsset.name,
 *     description: "Test live output 1",
 *     manifestName: "testmanifest",
 *     outputSnapTimeInSeconds: 0,
 *     hlsFragmentsPerTsSegment: 5,
 *     rewindWindowDuration: "PT5M",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_azure as azure
 * example = azure.core.ResourceGroup("example",
 *     name="media-resources",
 *     location="West Europe")
 * example_account = azure.storage.Account("example",
 *     name="examplestoracc",
 *     resource_group_name=example.name,
 *     location=example.location,
 *     account_tier="Standard",
 *     account_replication_type="GRS")
 * example_service_account = azure.media.ServiceAccount("example",
 *     name="examplemediaacc",
 *     location=example.location,
 *     resource_group_name=example.name,
 *     storage_accounts=[{
 *         "id": example_account.id,
 *         "is_primary": True,
 *     }])
 * example_asset = azure.media.Asset("example",
 *     name="inputAsset",
 *     resource_group_name=example.name,
 *     media_services_account_name=example_service_account.name)
 * example_live_event = azure.media.LiveEvent("example",
 *     name="exampleevent",
 *     resource_group_name=example.name,
 *     location=example.location,
 *     media_services_account_name=example_service_account.name,
 *     description="My Event Description",
 *     input={
 *         "streaming_protocol": "RTMP",
 *         "key_frame_interval_duration": "PT6S",
 *         "ip_access_control_allows": [{
 *             "name": "AllowAll",
 *             "address": "0.0.0.0",
 *             "subnet_prefix_length": 0,
 *         }],
 *     })
 * example_live_event_output = azure.media.LiveEventOutput("example",
 *     name="exampleoutput",
 *     live_event_id=example_live_event.id,
 *     archive_window_duration="PT5M",
 *     asset_name=example_asset.name,
 *     description="Test live output 1",
 *     manifest_name="testmanifest",
 *     output_snap_time_in_seconds=0,
 *     hls_fragments_per_ts_segment=5,
 *     rewind_window_duration="PT5M")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Azure = Pulumi.Azure;
 * return await Deployment.RunAsync(() =>
 * {
 *     var example = new Azure.Core.ResourceGroup("example", new()
 *     {
 *         Name = "media-resources",
 *         Location = "West Europe",
 *     });
 *     var exampleAccount = new Azure.Storage.Account("example", new()
 *     {
 *         Name = "examplestoracc",
 *         ResourceGroupName = example.Name,
 *         Location = example.Location,
 *         AccountTier = "Standard",
 *         AccountReplicationType = "GRS",
 *     });
 *     var exampleServiceAccount = new Azure.Media.ServiceAccount("example", new()
 *     {
 *         Name = "examplemediaacc",
 *         Location = example.Location,
 *         ResourceGroupName = example.Name,
 *         StorageAccounts = new[]
 *         {
 *             new Azure.Media.Inputs.ServiceAccountStorageAccountArgs
 *             {
 *                 Id = exampleAccount.Id,
 *                 IsPrimary = true,
 *             },
 *         },
 *     });
 *     var exampleAsset = new Azure.Media.Asset("example", new()
 *     {
 *         Name = "inputAsset",
 *         ResourceGroupName = example.Name,
 *         MediaServicesAccountName = exampleServiceAccount.Name,
 *     });
 *     var exampleLiveEvent = new Azure.Media.LiveEvent("example", new()
 *     {
 *         Name = "exampleevent",
 *         ResourceGroupName = example.Name,
 *         Location = example.Location,
 *         MediaServicesAccountName = exampleServiceAccount.Name,
 *         Description = "My Event Description",
 *         Input = new Azure.Media.Inputs.LiveEventInputArgs
 *         {
 *             StreamingProtocol = "RTMP",
 *             KeyFrameIntervalDuration = "PT6S",
 *             IpAccessControlAllows = new[]
 *             {
 *                 new Azure.Media.Inputs.LiveEventInputIpAccessControlAllowArgs
 *                 {
 *                     Name = "AllowAll",
 *                     Address = "0.0.0.0",
 *                     SubnetPrefixLength = 0,
 *                 },
 *             },
 *         },
 *     });
 *     var exampleLiveEventOutput = new Azure.Media.LiveEventOutput("example", new()
 *     {
 *         Name = "exampleoutput",
 *         LiveEventId = exampleLiveEvent.Id,
 *         ArchiveWindowDuration = "PT5M",
 *         AssetName = exampleAsset.Name,
 *         Description = "Test live output 1",
 *         ManifestName = "testmanifest",
 *         OutputSnapTimeInSeconds = 0,
 *         HlsFragmentsPerTsSegment = 5,
 *         RewindWindowDuration = "PT5M",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/media"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
 * 			Name:     pulumi.String("media-resources"),
 * 			Location: pulumi.String("West Europe"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
 * 			Name:                   pulumi.String("examplestoracc"),
 * 			ResourceGroupName:      example.Name,
 * 			Location:               example.Location,
 * 			AccountTier:            pulumi.String("Standard"),
 * 			AccountReplicationType: pulumi.String("GRS"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleServiceAccount, err := media.NewServiceAccount(ctx, "example", &media.ServiceAccountArgs{
 * 			Name:              pulumi.String("examplemediaacc"),
 * 			Location:          example.Location,
 * 			ResourceGroupName: example.Name,
 * 			StorageAccounts: media.ServiceAccountStorageAccountArray{
 * 				&media.ServiceAccountStorageAccountArgs{
 * 					Id:        exampleAccount.ID(),
 * 					IsPrimary: pulumi.Bool(true),
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleAsset, err := media.NewAsset(ctx, "example", &media.AssetArgs{
 * 			Name:                     pulumi.String("inputAsset"),
 * 			ResourceGroupName:        example.Name,
 * 			MediaServicesAccountName: exampleServiceAccount.Name,
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		exampleLiveEvent, err := media.NewLiveEvent(ctx, "example", &media.LiveEventArgs{
 * 			Name:                     pulumi.String("exampleevent"),
 * 			ResourceGroupName:        example.Name,
 * 			Location:                 example.Location,
 * 			MediaServicesAccountName: exampleServiceAccount.Name,
 * 			Description:              pulumi.String("My Event Description"),
 * 			Input: &media.LiveEventInputTypeArgs{
 * 				StreamingProtocol:        pulumi.String("RTMP"),
 * 				KeyFrameIntervalDuration: pulumi.String("PT6S"),
 * 				IpAccessControlAllows: media.LiveEventInputIpAccessControlAllowArray{
 * 					&media.LiveEventInputIpAccessControlAllowArgs{
 * 						Name:               pulumi.String("AllowAll"),
 * 						Address:            pulumi.String("0.0.0.0"),
 * 						SubnetPrefixLength: pulumi.Int(0),
 * 					},
 * 				},
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = media.NewLiveEventOutput(ctx, "example", &media.LiveEventOutputArgs{
 * 			Name:                     pulumi.String("exampleoutput"),
 * 			LiveEventId:              exampleLiveEvent.ID(),
 * 			ArchiveWindowDuration:    pulumi.String("PT5M"),
 * 			AssetName:                exampleAsset.Name,
 * 			Description:              pulumi.String("Test live output 1"),
 * 			ManifestName:             pulumi.String("testmanifest"),
 * 			OutputSnapTimeInSeconds:  pulumi.Int(0),
 * 			HlsFragmentsPerTsSegment: pulumi.Int(5),
 * 			RewindWindowDuration:     pulumi.String("PT5M"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azure.core.ResourceGroup;
 * import com.pulumi.azure.core.ResourceGroupArgs;
 * import com.pulumi.azure.storage.Account;
 * import com.pulumi.azure.storage.AccountArgs;
 * import com.pulumi.azure.media.ServiceAccount;
 * import com.pulumi.azure.media.ServiceAccountArgs;
 * import com.pulumi.azure.media.inputs.ServiceAccountStorageAccountArgs;
 * import com.pulumi.azure.media.Asset;
 * import com.pulumi.azure.media.AssetArgs;
 * import com.pulumi.azure.media.LiveEvent;
 * import com.pulumi.azure.media.LiveEventArgs;
 * import com.pulumi.azure.media.inputs.LiveEventInputArgs;
 * import com.pulumi.azure.media.LiveEventOutput;
 * import com.pulumi.azure.media.LiveEventOutputArgs;
 * 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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
 *             .name("media-resources")
 *             .location("West Europe")
 *             .build());
 *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
 *             .name("examplestoracc")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .accountTier("Standard")
 *             .accountReplicationType("GRS")
 *             .build());
 *         var exampleServiceAccount = new ServiceAccount("exampleServiceAccount", ServiceAccountArgs.builder()
 *             .name("examplemediaacc")
 *             .location(example.location())
 *             .resourceGroupName(example.name())
 *             .storageAccounts(ServiceAccountStorageAccountArgs.builder()
 *                 .id(exampleAccount.id())
 *                 .isPrimary(true)
 *                 .build())
 *             .build());
 *         var exampleAsset = new Asset("exampleAsset", AssetArgs.builder()
 *             .name("inputAsset")
 *             .resourceGroupName(example.name())
 *             .mediaServicesAccountName(exampleServiceAccount.name())
 *             .build());
 *         var exampleLiveEvent = new LiveEvent("exampleLiveEvent", LiveEventArgs.builder()
 *             .name("exampleevent")
 *             .resourceGroupName(example.name())
 *             .location(example.location())
 *             .mediaServicesAccountName(exampleServiceAccount.name())
 *             .description("My Event Description")
 *             .input(LiveEventInputArgs.builder()
 *                 .streamingProtocol("RTMP")
 *                 .keyFrameIntervalDuration("PT6S")
 *                 .ipAccessControlAllows(LiveEventInputIpAccessControlAllowArgs.builder()
 *                     .name("AllowAll")
 *                     .address("0.0.0.0")
 *                     .subnetPrefixLength(0)
 *                     .build())
 *                 .build())
 *             .build());
 *         var exampleLiveEventOutput = new LiveEventOutput("exampleLiveEventOutput", LiveEventOutputArgs.builder()
 *             .name("exampleoutput")
 *             .liveEventId(exampleLiveEvent.id())
 *             .archiveWindowDuration("PT5M")
 *             .assetName(exampleAsset.name())
 *             .description("Test live output 1")
 *             .manifestName("testmanifest")
 *             .outputSnapTimeInSeconds(0)
 *             .hlsFragmentsPerTsSegment(5)
 *             .rewindWindowDuration("PT5M")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: azure:core:ResourceGroup
 *     properties:
 *       name: media-resources
 *       location: West Europe
 *   exampleAccount:
 *     type: azure:storage:Account
 *     name: example
 *     properties:
 *       name: examplestoracc
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       accountTier: Standard
 *       accountReplicationType: GRS
 *   exampleServiceAccount:
 *     type: azure:media:ServiceAccount
 *     name: example
 *     properties:
 *       name: examplemediaacc
 *       location: ${example.location}
 *       resourceGroupName: ${example.name}
 *       storageAccounts:
 *         - id: ${exampleAccount.id}
 *           isPrimary: true
 *   exampleAsset:
 *     type: azure:media:Asset
 *     name: example
 *     properties:
 *       name: inputAsset
 *       resourceGroupName: ${example.name}
 *       mediaServicesAccountName: ${exampleServiceAccount.name}
 *   exampleLiveEvent:
 *     type: azure:media:LiveEvent
 *     name: example
 *     properties:
 *       name: exampleevent
 *       resourceGroupName: ${example.name}
 *       location: ${example.location}
 *       mediaServicesAccountName: ${exampleServiceAccount.name}
 *       description: My Event Description
 *       input:
 *         streamingProtocol: RTMP
 *         keyFrameIntervalDuration: PT6S
 *         ipAccessControlAllows:
 *           - name: AllowAll
 *             address: 0.0.0.0
 *             subnetPrefixLength: 0
 *   exampleLiveEventOutput:
 *     type: azure:media:LiveEventOutput
 *     name: example
 *     properties:
 *       name: exampleoutput
 *       liveEventId: ${exampleLiveEvent.id}
 *       archiveWindowDuration: PT5M
 *       assetName: ${exampleAsset.name}
 *       description: Test live output 1
 *       manifestName: testmanifest
 *       outputSnapTimeInSeconds: 0
 *       hlsFragmentsPerTsSegment: 5
 *       rewindWindowDuration: PT5M
 * ```
 * 
 * ## Import
 * Live Outputs can be imported using the `resource id`, e.g.
 * ```sh
 * $ pulumi import azure:media/liveEventOutput:LiveEventOutput example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaServices/account1/liveEvents/event1/liveOutputs/output1
 * ```
 * @property archiveWindowDuration `ISO 8601` time between 1 minute to 25 hours to indicate the maximum content length that can be archived in the asset for this live output. This also sets the maximum content length for the rewind window. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of archive window. Changing this forces a new Live Output to be created.
 * @property assetName The asset that the live output will write to. Changing this forces a new Live Output to be created.
 * @property description The description of the live output. Changing this forces a new Live Output to be created.
 * @property hlsFragmentsPerTsSegment The number of fragments in an HTTP Live Streaming (HLS) TS segment in the output of the live event. This value does not affect the packing ratio for HLS CMAF output. Changing this forces a new Live Output to be created.
 * @property liveEventId The id of the live event. Changing this forces a new Live Output to be created.
 * @property manifestName The manifest file name. If not provided, the service will generate one automatically. Changing this forces a new Live Output to be created.
 * @property name The name which should be used for this Live Event Output. Changing this forces a new Live Output to be created.
 * @property outputSnapTimeInSeconds The initial timestamp that the live output will start at, any content before this value will not be archived. Changing this forces a new Live Output to be created.
 * @property rewindWindowDuration `ISO 8601` time between 1 minute to the duration of `archive_window_duration` to control seek-able window length during Live. The service won't use this property once LiveOutput stops. The archived VOD will have full content with original ArchiveWindowLength. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of rewind window length. Service will use implicit default value 30m only if Live Event enables LL. Changing this forces a new Live Output to be created.
 */
public data class LiveEventOutputArgs(
    public val archiveWindowDuration: Output? = null,
    public val assetName: Output? = null,
    public val description: Output? = null,
    public val hlsFragmentsPerTsSegment: Output? = null,
    public val liveEventId: Output? = null,
    public val manifestName: Output? = null,
    public val name: Output? = null,
    public val outputSnapTimeInSeconds: Output? = null,
    public val rewindWindowDuration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.media.LiveEventOutputArgs =
        com.pulumi.azure.media.LiveEventOutputArgs.builder()
            .archiveWindowDuration(archiveWindowDuration?.applyValue({ args0 -> args0 }))
            .assetName(assetName?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .hlsFragmentsPerTsSegment(hlsFragmentsPerTsSegment?.applyValue({ args0 -> args0 }))
            .liveEventId(liveEventId?.applyValue({ args0 -> args0 }))
            .manifestName(manifestName?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .outputSnapTimeInSeconds(outputSnapTimeInSeconds?.applyValue({ args0 -> args0 }))
            .rewindWindowDuration(rewindWindowDuration?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [LiveEventOutputArgs].
 */
@PulumiTagMarker
public class LiveEventOutputArgsBuilder internal constructor() {
    private var archiveWindowDuration: Output? = null

    private var assetName: Output? = null

    private var description: Output? = null

    private var hlsFragmentsPerTsSegment: Output? = null

    private var liveEventId: Output? = null

    private var manifestName: Output? = null

    private var name: Output? = null

    private var outputSnapTimeInSeconds: Output? = null

    private var rewindWindowDuration: Output? = null

    /**
     * @param value `ISO 8601` time between 1 minute to 25 hours to indicate the maximum content length that can be archived in the asset for this live output. This also sets the maximum content length for the rewind window. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of archive window. Changing this forces a new Live Output to be created.
     */
    @JvmName("yjdnsaxgjskxftqb")
    public suspend fun archiveWindowDuration(`value`: Output) {
        this.archiveWindowDuration = value
    }

    /**
     * @param value The asset that the live output will write to. Changing this forces a new Live Output to be created.
     */
    @JvmName("ibbyfxsuxcsieawe")
    public suspend fun assetName(`value`: Output) {
        this.assetName = value
    }

    /**
     * @param value The description of the live output. Changing this forces a new Live Output to be created.
     */
    @JvmName("jqygsclqtahwtdeo")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The number of fragments in an HTTP Live Streaming (HLS) TS segment in the output of the live event. This value does not affect the packing ratio for HLS CMAF output. Changing this forces a new Live Output to be created.
     */
    @JvmName("omjndnpbhhwrfhdc")
    public suspend fun hlsFragmentsPerTsSegment(`value`: Output) {
        this.hlsFragmentsPerTsSegment = value
    }

    /**
     * @param value The id of the live event. Changing this forces a new Live Output to be created.
     */
    @JvmName("rmmwtbaioqyhlgnp")
    public suspend fun liveEventId(`value`: Output) {
        this.liveEventId = value
    }

    /**
     * @param value The manifest file name. If not provided, the service will generate one automatically. Changing this forces a new Live Output to be created.
     */
    @JvmName("ynomhsdejkvyahyh")
    public suspend fun manifestName(`value`: Output) {
        this.manifestName = value
    }

    /**
     * @param value The name which should be used for this Live Event Output. Changing this forces a new Live Output to be created.
     */
    @JvmName("ouwfcgendavpfifs")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The initial timestamp that the live output will start at, any content before this value will not be archived. Changing this forces a new Live Output to be created.
     */
    @JvmName("ackyhakqsfphbhhj")
    public suspend fun outputSnapTimeInSeconds(`value`: Output) {
        this.outputSnapTimeInSeconds = value
    }

    /**
     * @param value `ISO 8601` time between 1 minute to the duration of `archive_window_duration` to control seek-able window length during Live. The service won't use this property once LiveOutput stops. The archived VOD will have full content with original ArchiveWindowLength. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of rewind window length. Service will use implicit default value 30m only if Live Event enables LL. Changing this forces a new Live Output to be created.
     */
    @JvmName("ntvyaxhjckvswcfe")
    public suspend fun rewindWindowDuration(`value`: Output) {
        this.rewindWindowDuration = value
    }

    /**
     * @param value `ISO 8601` time between 1 minute to 25 hours to indicate the maximum content length that can be archived in the asset for this live output. This also sets the maximum content length for the rewind window. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of archive window. Changing this forces a new Live Output to be created.
     */
    @JvmName("bqurlgugicaxhjkr")
    public suspend fun archiveWindowDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.archiveWindowDuration = mapped
    }

    /**
     * @param value The asset that the live output will write to. Changing this forces a new Live Output to be created.
     */
    @JvmName("ogylellcrltbrbyc")
    public suspend fun assetName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetName = mapped
    }

    /**
     * @param value The description of the live output. Changing this forces a new Live Output to be created.
     */
    @JvmName("vbsylljfrccqjlgl")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The number of fragments in an HTTP Live Streaming (HLS) TS segment in the output of the live event. This value does not affect the packing ratio for HLS CMAF output. Changing this forces a new Live Output to be created.
     */
    @JvmName("kurvpkoxoxgodrni")
    public suspend fun hlsFragmentsPerTsSegment(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hlsFragmentsPerTsSegment = mapped
    }

    /**
     * @param value The id of the live event. Changing this forces a new Live Output to be created.
     */
    @JvmName("imfwvqcgdwtrolbj")
    public suspend fun liveEventId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.liveEventId = mapped
    }

    /**
     * @param value The manifest file name. If not provided, the service will generate one automatically. Changing this forces a new Live Output to be created.
     */
    @JvmName("diudeflxfggihjlf")
    public suspend fun manifestName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manifestName = mapped
    }

    /**
     * @param value The name which should be used for this Live Event Output. Changing this forces a new Live Output to be created.
     */
    @JvmName("fipcoryawmntitxi")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The initial timestamp that the live output will start at, any content before this value will not be archived. Changing this forces a new Live Output to be created.
     */
    @JvmName("jiktcpofwtyphmfl")
    public suspend fun outputSnapTimeInSeconds(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.outputSnapTimeInSeconds = mapped
    }

    /**
     * @param value `ISO 8601` time between 1 minute to the duration of `archive_window_duration` to control seek-able window length during Live. The service won't use this property once LiveOutput stops. The archived VOD will have full content with original ArchiveWindowLength. For example, use `PT1H30M` to indicate 1 hour and 30 minutes of rewind window length. Service will use implicit default value 30m only if Live Event enables LL. Changing this forces a new Live Output to be created.
     */
    @JvmName("ebjdhqmlyexatnby")
    public suspend fun rewindWindowDuration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.rewindWindowDuration = mapped
    }

    internal fun build(): LiveEventOutputArgs = LiveEventOutputArgs(
        archiveWindowDuration = archiveWindowDuration,
        assetName = assetName,
        description = description,
        hlsFragmentsPerTsSegment = hlsFragmentsPerTsSegment,
        liveEventId = liveEventId,
        manifestName = manifestName,
        name = name,
        outputSnapTimeInSeconds = outputSnapTimeInSeconds,
        rewindWindowDuration = rewindWindowDuration,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy