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

com.pulumi.azure.ProviderArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure;

import com.pulumi.azure.inputs.ProviderFeaturesArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.core.internal.Codegen;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ProviderArgs extends com.pulumi.resources.ResourceArgs {

    public static final ProviderArgs Empty = new ProviderArgs();

    @Import(name="auxiliaryTenantIds", json=true)
    private @Nullable Output> auxiliaryTenantIds;

    public Optional>> auxiliaryTenantIds() {
        return Optional.ofNullable(this.auxiliaryTenantIds);
    }

    /**
     * Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate
     * 
     */
    @Import(name="clientCertificate")
    private @Nullable Output clientCertificate;

    /**
     * @return Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate
     * 
     */
    public Optional> clientCertificate() {
        return Optional.ofNullable(this.clientCertificate);
    }

    /**
     * The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client
     * Certificate
     * 
     */
    @Import(name="clientCertificatePassword")
    private @Nullable Output clientCertificatePassword;

    /**
     * @return The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client
     * Certificate
     * 
     */
    public Optional> clientCertificatePassword() {
        return Optional.ofNullable(this.clientCertificatePassword);
    }

    /**
     * The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service
     * Principal using a Client Certificate.
     * 
     */
    @Import(name="clientCertificatePath")
    private @Nullable Output clientCertificatePath;

    /**
     * @return The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service
     * Principal using a Client Certificate.
     * 
     */
    public Optional> clientCertificatePath() {
        return Optional.ofNullable(this.clientCertificatePath);
    }

    /**
     * The Client ID which should be used.
     * 
     */
    @Import(name="clientId")
    private @Nullable Output clientId;

    /**
     * @return The Client ID which should be used.
     * 
     */
    public Optional> clientId() {
        return Optional.ofNullable(this.clientId);
    }

    /**
     * The path to a file containing the Client ID which should be used.
     * 
     */
    @Import(name="clientIdFilePath")
    private @Nullable Output clientIdFilePath;

    /**
     * @return The path to a file containing the Client ID which should be used.
     * 
     */
    public Optional> clientIdFilePath() {
        return Optional.ofNullable(this.clientIdFilePath);
    }

    /**
     * The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.
     * 
     */
    @Import(name="clientSecret")
    private @Nullable Output clientSecret;

    /**
     * @return The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.
     * 
     */
    public Optional> clientSecret() {
        return Optional.ofNullable(this.clientSecret);
    }

    /**
     * The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal
     * using a Client Secret.
     * 
     */
    @Import(name="clientSecretFilePath")
    private @Nullable Output clientSecretFilePath;

    /**
     * @return The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal
     * using a Client Secret.
     * 
     */
    public Optional> clientSecretFilePath() {
        return Optional.ofNullable(this.clientSecretFilePath);
    }

    /**
     * This will disable the x-ms-correlation-request-id header.
     * 
     */
    @Import(name="disableCorrelationRequestId", json=true)
    private @Nullable Output disableCorrelationRequestId;

    /**
     * @return This will disable the x-ms-correlation-request-id header.
     * 
     */
    public Optional> disableCorrelationRequestId() {
        return Optional.ofNullable(this.disableCorrelationRequestId);
    }

    @Import(name="disableTerraformPartnerId", json=true)
    private @Nullable Output disableTerraformPartnerId;

    public Optional> disableTerraformPartnerId() {
        return Optional.ofNullable(this.disableTerraformPartnerId);
    }

    /**
     * The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public. Not
     * used and should not be specified when `metadata_host` is specified.
     * 
     */
    @Import(name="environment")
    private @Nullable Output environment;

    /**
     * @return The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public. Not
     * used and should not be specified when `metadata_host` is specified.
     * 
     */
    public Optional> environment() {
        return Optional.ofNullable(this.environment);
    }

    @Import(name="features", json=true)
    private @Nullable Output features;

    public Optional> features() {
        return Optional.ofNullable(this.features);
    }

    /**
     * The Hostname which should be used for the Azure Metadata Service.
     * 
     */
    @Import(name="metadataHost")
    private @Nullable Output metadataHost;

    /**
     * @return The Hostname which should be used for the Azure Metadata Service.
     * 
     */
    public Optional> metadataHost() {
        return Optional.ofNullable(this.metadataHost);
    }

    /**
     * The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected
     * automatically.
     * 
     */
    @Import(name="msiEndpoint")
    private @Nullable Output msiEndpoint;

    /**
     * @return The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected
     * automatically.
     * 
     */
    public Optional> msiEndpoint() {
        return Optional.ofNullable(this.msiEndpoint);
    }

    /**
     * The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID
     * Connect.
     * 
     */
    @Import(name="oidcRequestToken")
    private @Nullable Output oidcRequestToken;

    /**
     * @return The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID
     * Connect.
     * 
     */
    public Optional> oidcRequestToken() {
        return Optional.ofNullable(this.oidcRequestToken);
    }

    /**
     * The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal
     * using OpenID Connect.
     * 
     */
    @Import(name="oidcRequestUrl")
    private @Nullable Output oidcRequestUrl;

    /**
     * @return The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal
     * using OpenID Connect.
     * 
     */
    public Optional> oidcRequestUrl() {
        return Optional.ofNullable(this.oidcRequestUrl);
    }

    /**
     * The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
     * 
     */
    @Import(name="oidcToken")
    private @Nullable Output oidcToken;

    /**
     * @return The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
     * 
     */
    public Optional> oidcToken() {
        return Optional.ofNullable(this.oidcToken);
    }

    /**
     * The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
     * 
     */
    @Import(name="oidcTokenFilePath")
    private @Nullable Output oidcTokenFilePath;

    /**
     * @return The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
     * 
     */
    public Optional> oidcTokenFilePath() {
        return Optional.ofNullable(this.oidcTokenFilePath);
    }

    /**
     * A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.
     * 
     */
    @Import(name="partnerId")
    private @Nullable Output partnerId;

    /**
     * @return A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.
     * 
     */
    public Optional> partnerId() {
        return Optional.ofNullable(this.partnerId);
    }

    /**
     * The set of Resource Providers which should be automatically registered for the subscription.
     * 
     */
    @Import(name="resourceProviderRegistrations")
    private @Nullable Output resourceProviderRegistrations;

    /**
     * @return The set of Resource Providers which should be automatically registered for the subscription.
     * 
     */
    public Optional> resourceProviderRegistrations() {
        return Optional.ofNullable(this.resourceProviderRegistrations);
    }

    /**
     * A list of Resource Providers to explicitly register for the subscription, in addition to those specified by the
     * `resource_provider_registrations` property.
     * 
     */
    @Import(name="resourceProvidersToRegisters", json=true)
    private @Nullable Output> resourceProvidersToRegisters;

    /**
     * @return A list of Resource Providers to explicitly register for the subscription, in addition to those specified by the
     * `resource_provider_registrations` property.
     * 
     */
    public Optional>> resourceProvidersToRegisters() {
        return Optional.ofNullable(this.resourceProvidersToRegisters);
    }

    /**
     * Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already
     * registered?
     * 
     * @deprecated
     * This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead.
     * 
     */
    @Deprecated /* This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead. */
    @Import(name="skipProviderRegistration", json=true)
    private @Nullable Output skipProviderRegistration;

    /**
     * @return Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already
     * registered?
     * 
     * @deprecated
     * This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead.
     * 
     */
    @Deprecated /* This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead. */
    public Optional> skipProviderRegistration() {
        return Optional.ofNullable(this.skipProviderRegistration);
    }

    /**
     * Should the AzureRM Provider use Azure AD Authentication when accessing the Storage Data Plane APIs?
     * 
     */
    @Import(name="storageUseAzuread", json=true)
    private @Nullable Output storageUseAzuread;

    /**
     * @return Should the AzureRM Provider use Azure AD Authentication when accessing the Storage Data Plane APIs?
     * 
     */
    public Optional> storageUseAzuread() {
        return Optional.ofNullable(this.storageUseAzuread);
    }

    /**
     * The Subscription ID which should be used.
     * 
     */
    @Import(name="subscriptionId")
    private @Nullable Output subscriptionId;

    /**
     * @return The Subscription ID which should be used.
     * 
     */
    public Optional> subscriptionId() {
        return Optional.ofNullable(this.subscriptionId);
    }

    /**
     * The Tenant ID which should be used.
     * 
     */
    @Import(name="tenantId")
    private @Nullable Output tenantId;

    /**
     * @return The Tenant ID which should be used.
     * 
     */
    public Optional> tenantId() {
        return Optional.ofNullable(this.tenantId);
    }

    /**
     * Allow Azure AKS Workload Identity to be used for Authentication.
     * 
     */
    @Import(name="useAksWorkloadIdentity", json=true)
    private @Nullable Output useAksWorkloadIdentity;

    /**
     * @return Allow Azure AKS Workload Identity to be used for Authentication.
     * 
     */
    public Optional> useAksWorkloadIdentity() {
        return Optional.ofNullable(this.useAksWorkloadIdentity);
    }

    /**
     * Allow Azure CLI to be used for Authentication.
     * 
     */
    @Import(name="useCli", json=true)
    private @Nullable Output useCli;

    /**
     * @return Allow Azure CLI to be used for Authentication.
     * 
     */
    public Optional> useCli() {
        return Optional.ofNullable(this.useCli);
    }

    /**
     * Allow Managed Service Identity to be used for Authentication.
     * 
     */
    @Import(name="useMsi", json=true)
    private @Nullable Output useMsi;

    /**
     * @return Allow Managed Service Identity to be used for Authentication.
     * 
     */
    public Optional> useMsi() {
        return Optional.ofNullable(this.useMsi);
    }

    /**
     * Allow OpenID Connect to be used for authentication
     * 
     */
    @Import(name="useOidc", json=true)
    private @Nullable Output useOidc;

    /**
     * @return Allow OpenID Connect to be used for authentication
     * 
     */
    public Optional> useOidc() {
        return Optional.ofNullable(this.useOidc);
    }

    private ProviderArgs() {}

    private ProviderArgs(ProviderArgs $) {
        this.auxiliaryTenantIds = $.auxiliaryTenantIds;
        this.clientCertificate = $.clientCertificate;
        this.clientCertificatePassword = $.clientCertificatePassword;
        this.clientCertificatePath = $.clientCertificatePath;
        this.clientId = $.clientId;
        this.clientIdFilePath = $.clientIdFilePath;
        this.clientSecret = $.clientSecret;
        this.clientSecretFilePath = $.clientSecretFilePath;
        this.disableCorrelationRequestId = $.disableCorrelationRequestId;
        this.disableTerraformPartnerId = $.disableTerraformPartnerId;
        this.environment = $.environment;
        this.features = $.features;
        this.metadataHost = $.metadataHost;
        this.msiEndpoint = $.msiEndpoint;
        this.oidcRequestToken = $.oidcRequestToken;
        this.oidcRequestUrl = $.oidcRequestUrl;
        this.oidcToken = $.oidcToken;
        this.oidcTokenFilePath = $.oidcTokenFilePath;
        this.partnerId = $.partnerId;
        this.resourceProviderRegistrations = $.resourceProviderRegistrations;
        this.resourceProvidersToRegisters = $.resourceProvidersToRegisters;
        this.skipProviderRegistration = $.skipProviderRegistration;
        this.storageUseAzuread = $.storageUseAzuread;
        this.subscriptionId = $.subscriptionId;
        this.tenantId = $.tenantId;
        this.useAksWorkloadIdentity = $.useAksWorkloadIdentity;
        this.useCli = $.useCli;
        this.useMsi = $.useMsi;
        this.useOidc = $.useOidc;
    }

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

    public static final class Builder {
        private ProviderArgs $;

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

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

        public Builder auxiliaryTenantIds(@Nullable Output> auxiliaryTenantIds) {
            $.auxiliaryTenantIds = auxiliaryTenantIds;
            return this;
        }

        public Builder auxiliaryTenantIds(List auxiliaryTenantIds) {
            return auxiliaryTenantIds(Output.of(auxiliaryTenantIds));
        }

        public Builder auxiliaryTenantIds(String... auxiliaryTenantIds) {
            return auxiliaryTenantIds(List.of(auxiliaryTenantIds));
        }

        /**
         * @param clientCertificate Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate
         * 
         * @return builder
         * 
         */
        public Builder clientCertificate(@Nullable Output clientCertificate) {
            $.clientCertificate = clientCertificate;
            return this;
        }

        /**
         * @param clientCertificate Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate
         * 
         * @return builder
         * 
         */
        public Builder clientCertificate(String clientCertificate) {
            return clientCertificate(Output.of(clientCertificate));
        }

        /**
         * @param clientCertificatePassword The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client
         * Certificate
         * 
         * @return builder
         * 
         */
        public Builder clientCertificatePassword(@Nullable Output clientCertificatePassword) {
            $.clientCertificatePassword = clientCertificatePassword;
            return this;
        }

        /**
         * @param clientCertificatePassword The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client
         * Certificate
         * 
         * @return builder
         * 
         */
        public Builder clientCertificatePassword(String clientCertificatePassword) {
            return clientCertificatePassword(Output.of(clientCertificatePassword));
        }

        /**
         * @param clientCertificatePath The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service
         * Principal using a Client Certificate.
         * 
         * @return builder
         * 
         */
        public Builder clientCertificatePath(@Nullable Output clientCertificatePath) {
            $.clientCertificatePath = clientCertificatePath;
            return this;
        }

        /**
         * @param clientCertificatePath The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service
         * Principal using a Client Certificate.
         * 
         * @return builder
         * 
         */
        public Builder clientCertificatePath(String clientCertificatePath) {
            return clientCertificatePath(Output.of(clientCertificatePath));
        }

        /**
         * @param clientId The Client ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder clientId(@Nullable Output clientId) {
            $.clientId = clientId;
            return this;
        }

        /**
         * @param clientId The Client ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder clientId(String clientId) {
            return clientId(Output.of(clientId));
        }

        /**
         * @param clientIdFilePath The path to a file containing the Client ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder clientIdFilePath(@Nullable Output clientIdFilePath) {
            $.clientIdFilePath = clientIdFilePath;
            return this;
        }

        /**
         * @param clientIdFilePath The path to a file containing the Client ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder clientIdFilePath(String clientIdFilePath) {
            return clientIdFilePath(Output.of(clientIdFilePath));
        }

        /**
         * @param clientSecret The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(@Nullable Output clientSecret) {
            $.clientSecret = clientSecret;
            return this;
        }

        /**
         * @param clientSecret The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.
         * 
         * @return builder
         * 
         */
        public Builder clientSecret(String clientSecret) {
            return clientSecret(Output.of(clientSecret));
        }

        /**
         * @param clientSecretFilePath The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal
         * using a Client Secret.
         * 
         * @return builder
         * 
         */
        public Builder clientSecretFilePath(@Nullable Output clientSecretFilePath) {
            $.clientSecretFilePath = clientSecretFilePath;
            return this;
        }

        /**
         * @param clientSecretFilePath The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal
         * using a Client Secret.
         * 
         * @return builder
         * 
         */
        public Builder clientSecretFilePath(String clientSecretFilePath) {
            return clientSecretFilePath(Output.of(clientSecretFilePath));
        }

        /**
         * @param disableCorrelationRequestId This will disable the x-ms-correlation-request-id header.
         * 
         * @return builder
         * 
         */
        public Builder disableCorrelationRequestId(@Nullable Output disableCorrelationRequestId) {
            $.disableCorrelationRequestId = disableCorrelationRequestId;
            return this;
        }

        /**
         * @param disableCorrelationRequestId This will disable the x-ms-correlation-request-id header.
         * 
         * @return builder
         * 
         */
        public Builder disableCorrelationRequestId(Boolean disableCorrelationRequestId) {
            return disableCorrelationRequestId(Output.of(disableCorrelationRequestId));
        }

        public Builder disableTerraformPartnerId(@Nullable Output disableTerraformPartnerId) {
            $.disableTerraformPartnerId = disableTerraformPartnerId;
            return this;
        }

        public Builder disableTerraformPartnerId(Boolean disableTerraformPartnerId) {
            return disableTerraformPartnerId(Output.of(disableTerraformPartnerId));
        }

        /**
         * @param environment The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public. Not
         * used and should not be specified when `metadata_host` is specified.
         * 
         * @return builder
         * 
         */
        public Builder environment(@Nullable Output environment) {
            $.environment = environment;
            return this;
        }

        /**
         * @param environment The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public. Not
         * used and should not be specified when `metadata_host` is specified.
         * 
         * @return builder
         * 
         */
        public Builder environment(String environment) {
            return environment(Output.of(environment));
        }

        public Builder features(@Nullable Output features) {
            $.features = features;
            return this;
        }

        public Builder features(ProviderFeaturesArgs features) {
            return features(Output.of(features));
        }

        /**
         * @param metadataHost The Hostname which should be used for the Azure Metadata Service.
         * 
         * @return builder
         * 
         */
        public Builder metadataHost(@Nullable Output metadataHost) {
            $.metadataHost = metadataHost;
            return this;
        }

        /**
         * @param metadataHost The Hostname which should be used for the Azure Metadata Service.
         * 
         * @return builder
         * 
         */
        public Builder metadataHost(String metadataHost) {
            return metadataHost(Output.of(metadataHost));
        }

        /**
         * @param msiEndpoint The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected
         * automatically.
         * 
         * @return builder
         * 
         */
        public Builder msiEndpoint(@Nullable Output msiEndpoint) {
            $.msiEndpoint = msiEndpoint;
            return this;
        }

        /**
         * @param msiEndpoint The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected
         * automatically.
         * 
         * @return builder
         * 
         */
        public Builder msiEndpoint(String msiEndpoint) {
            return msiEndpoint(Output.of(msiEndpoint));
        }

        /**
         * @param oidcRequestToken The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID
         * Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcRequestToken(@Nullable Output oidcRequestToken) {
            $.oidcRequestToken = oidcRequestToken;
            return this;
        }

        /**
         * @param oidcRequestToken The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID
         * Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcRequestToken(String oidcRequestToken) {
            return oidcRequestToken(Output.of(oidcRequestToken));
        }

        /**
         * @param oidcRequestUrl The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal
         * using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcRequestUrl(@Nullable Output oidcRequestUrl) {
            $.oidcRequestUrl = oidcRequestUrl;
            return this;
        }

        /**
         * @param oidcRequestUrl The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal
         * using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcRequestUrl(String oidcRequestUrl) {
            return oidcRequestUrl(Output.of(oidcRequestUrl));
        }

        /**
         * @param oidcToken The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcToken(@Nullable Output oidcToken) {
            $.oidcToken = oidcToken;
            return this;
        }

        /**
         * @param oidcToken The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcToken(String oidcToken) {
            return oidcToken(Output.of(oidcToken));
        }

        /**
         * @param oidcTokenFilePath The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcTokenFilePath(@Nullable Output oidcTokenFilePath) {
            $.oidcTokenFilePath = oidcTokenFilePath;
            return this;
        }

        /**
         * @param oidcTokenFilePath The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.
         * 
         * @return builder
         * 
         */
        public Builder oidcTokenFilePath(String oidcTokenFilePath) {
            return oidcTokenFilePath(Output.of(oidcTokenFilePath));
        }

        /**
         * @param partnerId A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.
         * 
         * @return builder
         * 
         */
        public Builder partnerId(@Nullable Output partnerId) {
            $.partnerId = partnerId;
            return this;
        }

        /**
         * @param partnerId A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.
         * 
         * @return builder
         * 
         */
        public Builder partnerId(String partnerId) {
            return partnerId(Output.of(partnerId));
        }

        /**
         * @param resourceProviderRegistrations The set of Resource Providers which should be automatically registered for the subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceProviderRegistrations(@Nullable Output resourceProviderRegistrations) {
            $.resourceProviderRegistrations = resourceProviderRegistrations;
            return this;
        }

        /**
         * @param resourceProviderRegistrations The set of Resource Providers which should be automatically registered for the subscription.
         * 
         * @return builder
         * 
         */
        public Builder resourceProviderRegistrations(String resourceProviderRegistrations) {
            return resourceProviderRegistrations(Output.of(resourceProviderRegistrations));
        }

        /**
         * @param resourceProvidersToRegisters A list of Resource Providers to explicitly register for the subscription, in addition to those specified by the
         * `resource_provider_registrations` property.
         * 
         * @return builder
         * 
         */
        public Builder resourceProvidersToRegisters(@Nullable Output> resourceProvidersToRegisters) {
            $.resourceProvidersToRegisters = resourceProvidersToRegisters;
            return this;
        }

        /**
         * @param resourceProvidersToRegisters A list of Resource Providers to explicitly register for the subscription, in addition to those specified by the
         * `resource_provider_registrations` property.
         * 
         * @return builder
         * 
         */
        public Builder resourceProvidersToRegisters(List resourceProvidersToRegisters) {
            return resourceProvidersToRegisters(Output.of(resourceProvidersToRegisters));
        }

        /**
         * @param resourceProvidersToRegisters A list of Resource Providers to explicitly register for the subscription, in addition to those specified by the
         * `resource_provider_registrations` property.
         * 
         * @return builder
         * 
         */
        public Builder resourceProvidersToRegisters(String... resourceProvidersToRegisters) {
            return resourceProvidersToRegisters(List.of(resourceProvidersToRegisters));
        }

        /**
         * @param skipProviderRegistration Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already
         * registered?
         * 
         * @return builder
         * 
         * @deprecated
         * This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead.
         * 
         */
        @Deprecated /* This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead. */
        public Builder skipProviderRegistration(@Nullable Output skipProviderRegistration) {
            $.skipProviderRegistration = skipProviderRegistration;
            return this;
        }

        /**
         * @param skipProviderRegistration Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already
         * registered?
         * 
         * @return builder
         * 
         * @deprecated
         * This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead.
         * 
         */
        @Deprecated /* This property is deprecated and will be removed in v5.0 of the AzureRM provider. Please use the `resource_provider_registrations` property instead. */
        public Builder skipProviderRegistration(Boolean skipProviderRegistration) {
            return skipProviderRegistration(Output.of(skipProviderRegistration));
        }

        /**
         * @param storageUseAzuread Should the AzureRM Provider use Azure AD Authentication when accessing the Storage Data Plane APIs?
         * 
         * @return builder
         * 
         */
        public Builder storageUseAzuread(@Nullable Output storageUseAzuread) {
            $.storageUseAzuread = storageUseAzuread;
            return this;
        }

        /**
         * @param storageUseAzuread Should the AzureRM Provider use Azure AD Authentication when accessing the Storage Data Plane APIs?
         * 
         * @return builder
         * 
         */
        public Builder storageUseAzuread(Boolean storageUseAzuread) {
            return storageUseAzuread(Output.of(storageUseAzuread));
        }

        /**
         * @param subscriptionId The Subscription ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionId(@Nullable Output subscriptionId) {
            $.subscriptionId = subscriptionId;
            return this;
        }

        /**
         * @param subscriptionId The Subscription ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder subscriptionId(String subscriptionId) {
            return subscriptionId(Output.of(subscriptionId));
        }

        /**
         * @param tenantId The Tenant ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder tenantId(@Nullable Output tenantId) {
            $.tenantId = tenantId;
            return this;
        }

        /**
         * @param tenantId The Tenant ID which should be used.
         * 
         * @return builder
         * 
         */
        public Builder tenantId(String tenantId) {
            return tenantId(Output.of(tenantId));
        }

        /**
         * @param useAksWorkloadIdentity Allow Azure AKS Workload Identity to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useAksWorkloadIdentity(@Nullable Output useAksWorkloadIdentity) {
            $.useAksWorkloadIdentity = useAksWorkloadIdentity;
            return this;
        }

        /**
         * @param useAksWorkloadIdentity Allow Azure AKS Workload Identity to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useAksWorkloadIdentity(Boolean useAksWorkloadIdentity) {
            return useAksWorkloadIdentity(Output.of(useAksWorkloadIdentity));
        }

        /**
         * @param useCli Allow Azure CLI to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useCli(@Nullable Output useCli) {
            $.useCli = useCli;
            return this;
        }

        /**
         * @param useCli Allow Azure CLI to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useCli(Boolean useCli) {
            return useCli(Output.of(useCli));
        }

        /**
         * @param useMsi Allow Managed Service Identity to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useMsi(@Nullable Output useMsi) {
            $.useMsi = useMsi;
            return this;
        }

        /**
         * @param useMsi Allow Managed Service Identity to be used for Authentication.
         * 
         * @return builder
         * 
         */
        public Builder useMsi(Boolean useMsi) {
            return useMsi(Output.of(useMsi));
        }

        /**
         * @param useOidc Allow OpenID Connect to be used for authentication
         * 
         * @return builder
         * 
         */
        public Builder useOidc(@Nullable Output useOidc) {
            $.useOidc = useOidc;
            return this;
        }

        /**
         * @param useOidc Allow OpenID Connect to be used for authentication
         * 
         * @return builder
         * 
         */
        public Builder useOidc(Boolean useOidc) {
            return useOidc(Output.of(useOidc));
        }

        public ProviderArgs build() {
            $.environment = Codegen.stringProp("environment").output().arg($.environment).env("AZURE_ENVIRONMENT", "ARM_ENVIRONMENT").def("public").getNullable();
            $.metadataHost = Codegen.stringProp("metadataHost").output().arg($.metadataHost).env("ARM_METADATA_HOSTNAME").getNullable();
            $.skipProviderRegistration = Codegen.booleanProp("skipProviderRegistration").output().arg($.skipProviderRegistration).env("ARM_SKIP_PROVIDER_REGISTRATION").def(false).getNullable();
            $.storageUseAzuread = Codegen.booleanProp("storageUseAzuread").output().arg($.storageUseAzuread).env("ARM_STORAGE_USE_AZUREAD").def(false).getNullable();
            $.subscriptionId = Codegen.stringProp("subscriptionId").secret().arg($.subscriptionId).env("ARM_SUBSCRIPTION_ID").def("").getNullable();
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy