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

com.pulumi.azurenative.digitaltwins.inputs.EventGridArgs 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.digitaltwins.inputs;

import com.pulumi.azurenative.digitaltwins.enums.AuthenticationType;
import com.pulumi.azurenative.digitaltwins.inputs.ManagedIdentityReferenceArgs;
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;


/**
 * Properties related to EventGrid.
 * 
 */
public final class EventGridArgs extends com.pulumi.resources.ResourceArgs {

    public static final EventGridArgs Empty = new EventGridArgs();

    /**
     * EventGrid secondary accesskey. Will be obfuscated during read.
     * 
     */
    @Import(name="accessKey1", required=true)
    private Output accessKey1;

    /**
     * @return EventGrid secondary accesskey. Will be obfuscated during read.
     * 
     */
    public Output accessKey1() {
        return this.accessKey1;
    }

    /**
     * EventGrid secondary accesskey. Will be obfuscated during read.
     * 
     */
    @Import(name="accessKey2")
    private @Nullable Output accessKey2;

    /**
     * @return EventGrid secondary accesskey. Will be obfuscated during read.
     * 
     */
    public Optional> accessKey2() {
        return Optional.ofNullable(this.accessKey2);
    }

    /**
     * Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
     * 
     */
    @Import(name="authenticationType")
    private @Nullable Output> authenticationType;

    /**
     * @return Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
     * 
     */
    public Optional>> authenticationType() {
        return Optional.ofNullable(this.authenticationType);
    }

    /**
     * Dead letter storage secret for key-based authentication. Will be obfuscated during read.
     * 
     */
    @Import(name="deadLetterSecret")
    private @Nullable Output deadLetterSecret;

    /**
     * @return Dead letter storage secret for key-based authentication. Will be obfuscated during read.
     * 
     */
    public Optional> deadLetterSecret() {
        return Optional.ofNullable(this.deadLetterSecret);
    }

    /**
     * Dead letter storage URL for identity-based authentication.
     * 
     */
    @Import(name="deadLetterUri")
    private @Nullable Output deadLetterUri;

    /**
     * @return Dead letter storage URL for identity-based authentication.
     * 
     */
    public Optional> deadLetterUri() {
        return Optional.ofNullable(this.deadLetterUri);
    }

    /**
     * The type of Digital Twins endpoint
     * Expected value is 'EventGrid'.
     * 
     */
    @Import(name="endpointType", required=true)
    private Output endpointType;

    /**
     * @return The type of Digital Twins endpoint
     * Expected value is 'EventGrid'.
     * 
     */
    public Output endpointType() {
        return this.endpointType;
    }

    /**
     * Managed identity properties for the endpoint.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return Managed identity properties for the endpoint.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * EventGrid Topic Endpoint.
     * 
     */
    @Import(name="topicEndpoint", required=true)
    private Output topicEndpoint;

    /**
     * @return EventGrid Topic Endpoint.
     * 
     */
    public Output topicEndpoint() {
        return this.topicEndpoint;
    }

    private EventGridArgs() {}

    private EventGridArgs(EventGridArgs $) {
        this.accessKey1 = $.accessKey1;
        this.accessKey2 = $.accessKey2;
        this.authenticationType = $.authenticationType;
        this.deadLetterSecret = $.deadLetterSecret;
        this.deadLetterUri = $.deadLetterUri;
        this.endpointType = $.endpointType;
        this.identity = $.identity;
        this.topicEndpoint = $.topicEndpoint;
    }

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

    public static final class Builder {
        private EventGridArgs $;

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

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

        /**
         * @param accessKey1 EventGrid secondary accesskey. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder accessKey1(Output accessKey1) {
            $.accessKey1 = accessKey1;
            return this;
        }

        /**
         * @param accessKey1 EventGrid secondary accesskey. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder accessKey1(String accessKey1) {
            return accessKey1(Output.of(accessKey1));
        }

        /**
         * @param accessKey2 EventGrid secondary accesskey. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder accessKey2(@Nullable Output accessKey2) {
            $.accessKey2 = accessKey2;
            return this;
        }

        /**
         * @param accessKey2 EventGrid secondary accesskey. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder accessKey2(String accessKey2) {
            return accessKey2(Output.of(accessKey2));
        }

        /**
         * @param authenticationType Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(@Nullable Output> authenticationType) {
            $.authenticationType = authenticationType;
            return this;
        }

        /**
         * @param authenticationType Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(Either authenticationType) {
            return authenticationType(Output.of(authenticationType));
        }

        /**
         * @param authenticationType Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(String authenticationType) {
            return authenticationType(Either.ofLeft(authenticationType));
        }

        /**
         * @param authenticationType Specifies the authentication type being used for connecting to the endpoint. Defaults to 'KeyBased'. If 'KeyBased' is selected, a connection string must be specified (at least the primary connection string). If 'IdentityBased' is select, the endpointUri and entityPath properties must be specified.
         * 
         * @return builder
         * 
         */
        public Builder authenticationType(AuthenticationType authenticationType) {
            return authenticationType(Either.ofRight(authenticationType));
        }

        /**
         * @param deadLetterSecret Dead letter storage secret for key-based authentication. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterSecret(@Nullable Output deadLetterSecret) {
            $.deadLetterSecret = deadLetterSecret;
            return this;
        }

        /**
         * @param deadLetterSecret Dead letter storage secret for key-based authentication. Will be obfuscated during read.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterSecret(String deadLetterSecret) {
            return deadLetterSecret(Output.of(deadLetterSecret));
        }

        /**
         * @param deadLetterUri Dead letter storage URL for identity-based authentication.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterUri(@Nullable Output deadLetterUri) {
            $.deadLetterUri = deadLetterUri;
            return this;
        }

        /**
         * @param deadLetterUri Dead letter storage URL for identity-based authentication.
         * 
         * @return builder
         * 
         */
        public Builder deadLetterUri(String deadLetterUri) {
            return deadLetterUri(Output.of(deadLetterUri));
        }

        /**
         * @param endpointType The type of Digital Twins endpoint
         * Expected value is 'EventGrid'.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(Output endpointType) {
            $.endpointType = endpointType;
            return this;
        }

        /**
         * @param endpointType The type of Digital Twins endpoint
         * Expected value is 'EventGrid'.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(String endpointType) {
            return endpointType(Output.of(endpointType));
        }

        /**
         * @param identity Managed identity properties for the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity Managed identity properties for the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedIdentityReferenceArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param topicEndpoint EventGrid Topic Endpoint.
         * 
         * @return builder
         * 
         */
        public Builder topicEndpoint(Output topicEndpoint) {
            $.topicEndpoint = topicEndpoint;
            return this;
        }

        /**
         * @param topicEndpoint EventGrid Topic Endpoint.
         * 
         * @return builder
         * 
         */
        public Builder topicEndpoint(String topicEndpoint) {
            return topicEndpoint(Output.of(topicEndpoint));
        }

        public EventGridArgs build() {
            if ($.accessKey1 == null) {
                throw new MissingRequiredPropertyException("EventGridArgs", "accessKey1");
            }
            $.endpointType = Codegen.stringProp("endpointType").output().arg($.endpointType).require();
            if ($.topicEndpoint == null) {
                throw new MissingRequiredPropertyException("EventGridArgs", "topicEndpoint");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy