Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.eventgrid.kotlin
import com.pulumi.azurenative.eventgrid.TopicEventSubscriptionArgs.builder
import com.pulumi.azurenative.eventgrid.kotlin.enums.EventDeliverySchema
import com.pulumi.azurenative.eventgrid.kotlin.inputs.DeadLetterWithResourceIdentityArgs
import com.pulumi.azurenative.eventgrid.kotlin.inputs.DeadLetterWithResourceIdentityArgsBuilder
import com.pulumi.azurenative.eventgrid.kotlin.inputs.DeliveryWithResourceIdentityArgs
import com.pulumi.azurenative.eventgrid.kotlin.inputs.DeliveryWithResourceIdentityArgsBuilder
import com.pulumi.azurenative.eventgrid.kotlin.inputs.EventSubscriptionFilterArgs
import com.pulumi.azurenative.eventgrid.kotlin.inputs.EventSubscriptionFilterArgsBuilder
import com.pulumi.azurenative.eventgrid.kotlin.inputs.RetryPolicyArgs
import com.pulumi.azurenative.eventgrid.kotlin.inputs.RetryPolicyArgsBuilder
import com.pulumi.azurenative.eventgrid.kotlin.inputs.StorageBlobDeadLetterDestinationArgs
import com.pulumi.azurenative.eventgrid.kotlin.inputs.StorageBlobDeadLetterDestinationArgsBuilder
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Any
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* Event Subscription
* Azure REST API version: 2022-06-15. Prior API version in Azure Native 1.x: 2021-10-15-preview.
* Other available API versions: 2023-06-01-preview, 2023-12-15-preview, 2024-06-01-preview.
* ## Example Usage
* ### TopicEventSubscriptions_CreateOrUpdate
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AzureNative = Pulumi.AzureNative;
* return await Deployment.RunAsync(() =>
* {
* var topicEventSubscription = new AzureNative.EventGrid.TopicEventSubscription("topicEventSubscription", new()
* {
* Destination = new AzureNative.EventGrid.Inputs.WebHookEventSubscriptionDestinationArgs
* {
* EndpointType = "WebHook",
* EndpointUrl = "https://requestb.in/15ksip71",
* },
* EventSubscriptionName = "exampleEventSubscriptionName1",
* Filter = new AzureNative.EventGrid.Inputs.EventSubscriptionFilterArgs
* {
* IsSubjectCaseSensitive = false,
* SubjectBeginsWith = "ExamplePrefix",
* SubjectEndsWith = "ExampleSuffix",
* },
* ResourceGroupName = "examplerg",
* TopicName = "exampleTopic1",
* });
* });
* ```
* ```go
* package main
* import (
* eventgrid "github.com/pulumi/pulumi-azure-native-sdk/eventgrid/v2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := eventgrid.NewTopicEventSubscription(ctx, "topicEventSubscription", &eventgrid.TopicEventSubscriptionArgs{
* Destination: &eventgrid.WebHookEventSubscriptionDestinationArgs{
* EndpointType: pulumi.String("WebHook"),
* EndpointUrl: pulumi.String("https://requestb.in/15ksip71"),
* },
* EventSubscriptionName: pulumi.String("exampleEventSubscriptionName1"),
* Filter: &eventgrid.EventSubscriptionFilterArgs{
* IsSubjectCaseSensitive: pulumi.Bool(false),
* SubjectBeginsWith: pulumi.String("ExamplePrefix"),
* SubjectEndsWith: pulumi.String("ExampleSuffix"),
* },
* ResourceGroupName: pulumi.String("examplerg"),
* TopicName: pulumi.String("exampleTopic1"),
* })
* 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.azurenative.eventgrid.TopicEventSubscription;
* import com.pulumi.azurenative.eventgrid.TopicEventSubscriptionArgs;
* import com.pulumi.azurenative.eventgrid.inputs.EventSubscriptionFilterArgs;
* 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 topicEventSubscription = new TopicEventSubscription("topicEventSubscription", TopicEventSubscriptionArgs.builder()
* .destination(WebHookEventSubscriptionDestinationArgs.builder()
* .endpointType("WebHook")
* .endpointUrl("https://requestb.in/15ksip71")
* .build())
* .eventSubscriptionName("exampleEventSubscriptionName1")
* .filter(EventSubscriptionFilterArgs.builder()
* .isSubjectCaseSensitive(false)
* .subjectBeginsWith("ExamplePrefix")
* .subjectEndsWith("ExampleSuffix")
* .build())
* .resourceGroupName("examplerg")
* .topicName("exampleTopic1")
* .build());
* }
* }
* ```
* ## Import
* An existing resource can be imported using its type token, name, and identifier, e.g.
* ```sh
* $ pulumi import azure-native:eventgrid:TopicEventSubscription exampleEventSubscriptionName1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}
* ```
* @property deadLetterDestination The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
* Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
* @property deadLetterWithResourceIdentity The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
* Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
* @property deliveryWithResourceIdentity Information about the destination where events have to be delivered for the event subscription.
* Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
* @property destination Information about the destination where events have to be delivered for the event subscription.
* Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
* @property eventDeliverySchema The event delivery schema for the event subscription.
* @property eventSubscriptionName Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.
* @property expirationTimeUtc Expiration time of the event subscription.
* @property filter Information about the filter for the event subscription.
* @property labels List of user defined labels.
* @property resourceGroupName The name of the resource group within the user's subscription.
* @property retryPolicy The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events.
* @property topicName Name of the domain topic.
*/
public data class TopicEventSubscriptionArgs(
public val deadLetterDestination: Output? = null,
public val deadLetterWithResourceIdentity: Output? = null,
public val deliveryWithResourceIdentity: Output? = null,
public val destination: Output? = null,
public val eventDeliverySchema: Output>? = null,
public val eventSubscriptionName: Output? = null,
public val expirationTimeUtc: Output? = null,
public val filter: Output? = null,
public val labels: Output>? = null,
public val resourceGroupName: Output? = null,
public val retryPolicy: Output? = null,
public val topicName: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azurenative.eventgrid.TopicEventSubscriptionArgs =
com.pulumi.azurenative.eventgrid.TopicEventSubscriptionArgs.builder()
.deadLetterDestination(
deadLetterDestination?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.deadLetterWithResourceIdentity(
deadLetterWithResourceIdentity?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.deliveryWithResourceIdentity(
deliveryWithResourceIdentity?.applyValue({ args0 ->
args0.let({ args0 -> args0.toJava() })
}),
)
.destination(destination?.applyValue({ args0 -> args0 }))
.eventDeliverySchema(
eventDeliverySchema?.applyValue({ args0 ->
args0.transform(
{ args0 -> args0 },
{ args0 -> args0.let({ args0 -> args0.toJava() }) },
)
}),
)
.eventSubscriptionName(eventSubscriptionName?.applyValue({ args0 -> args0 }))
.expirationTimeUtc(expirationTimeUtc?.applyValue({ args0 -> args0 }))
.filter(filter?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.resourceGroupName(resourceGroupName?.applyValue({ args0 -> args0 }))
.retryPolicy(retryPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.topicName(topicName?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [TopicEventSubscriptionArgs].
*/
@PulumiTagMarker
public class TopicEventSubscriptionArgsBuilder internal constructor() {
private var deadLetterDestination: Output? = null
private var deadLetterWithResourceIdentity: Output? = null
private var deliveryWithResourceIdentity: Output? = null
private var destination: Output? = null
private var eventDeliverySchema: Output>? = null
private var eventSubscriptionName: Output? = null
private var expirationTimeUtc: Output? = null
private var filter: Output? = null
private var labels: Output>? = null
private var resourceGroupName: Output? = null
private var retryPolicy: Output? = null
private var topicName: Output? = null
/**
* @param value The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
* Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
*/
@JvmName("ffxyugpiagejydwm")
public suspend fun deadLetterDestination(`value`: Output) {
this.deadLetterDestination = value
}
/**
* @param value The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent to the dead letter destination.
* Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
*/
@JvmName("uosmahkwdwbaibsq")
public suspend fun deadLetterWithResourceIdentity(`value`: Output) {
this.deadLetterWithResourceIdentity = value
}
/**
* @param value Information about the destination where events have to be delivered for the event subscription.
* Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens being used during delivery / dead-lettering.
*/
@JvmName("qhhwmwyfluqlrbtr")
public suspend fun deliveryWithResourceIdentity(`value`: Output) {
this.deliveryWithResourceIdentity = value
}
/**
* @param value Information about the destination where events have to be delivered for the event subscription.
* Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering.
*/
@JvmName("pembynnqecveitse")
public suspend fun destination(`value`: Output) {
this.destination = value
}
/**
* @param value The event delivery schema for the event subscription.
*/
@JvmName("fagdaordisdmysvj")
public suspend fun eventDeliverySchema(`value`: Output>) {
this.eventDeliverySchema = value
}
/**
* @param value Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.
*/
@JvmName("lklxurlitmvepcxu")
public suspend fun eventSubscriptionName(`value`: Output) {
this.eventSubscriptionName = value
}
/**
* @param value Expiration time of the event subscription.
*/
@JvmName("yvoqcxrixggdsdub")
public suspend fun expirationTimeUtc(`value`: Output) {
this.expirationTimeUtc = value
}
/**
* @param value Information about the filter for the event subscription.
*/
@JvmName("pxhgflbvanmuqkks")
public suspend fun filter(`value`: Output) {
this.filter = value
}
/**
* @param value List of user defined labels.
*/
@JvmName("bueglxlemfxnkphf")
public suspend fun labels(`value`: Output>) {
this.labels = value
}
@JvmName("cgbbkcdokdcmntcn")
public suspend fun labels(vararg values: Output) {
this.labels = Output.all(values.asList())
}
/**
* @param values List of user defined labels.
*/
@JvmName("avtyeunouxxqdesg")
public suspend fun labels(values: List