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

com.pulumi.snowflake.ApiIntegrationArgs Maven / Gradle / Ivy

// *** 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.snowflake;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
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 ApiIntegrationArgs extends com.pulumi.resources.ResourceArgs {

    public static final ApiIntegrationArgs Empty = new ApiIntegrationArgs();

    /**
     * Explicitly limits external functions that use the integration to reference one or more HTTPS proxy service endpoints and resources within those proxies.
     * 
     */
    @Import(name="apiAllowedPrefixes", required=true)
    private Output> apiAllowedPrefixes;

    /**
     * @return Explicitly limits external functions that use the integration to reference one or more HTTPS proxy service endpoints and resources within those proxies.
     * 
     */
    public Output> apiAllowedPrefixes() {
        return this.apiAllowedPrefixes;
    }

    /**
     * ARN of a cloud platform role.
     * 
     */
    @Import(name="apiAwsRoleArn")
    private @Nullable Output apiAwsRoleArn;

    /**
     * @return ARN of a cloud platform role.
     * 
     */
    public Optional> apiAwsRoleArn() {
        return Optional.ofNullable(this.apiAwsRoleArn);
    }

    /**
     * Lists the endpoints and resources in the HTTPS proxy service that are not allowed to be called from Snowflake.
     * 
     */
    @Import(name="apiBlockedPrefixes")
    private @Nullable Output> apiBlockedPrefixes;

    /**
     * @return Lists the endpoints and resources in the HTTPS proxy service that are not allowed to be called from Snowflake.
     * 
     */
    public Optional>> apiBlockedPrefixes() {
        return Optional.ofNullable(this.apiBlockedPrefixes);
    }

    /**
     * The service account used for communication with the Google API Gateway.
     * 
     */
    @Import(name="apiGcpServiceAccount")
    private @Nullable Output apiGcpServiceAccount;

    /**
     * @return The service account used for communication with the Google API Gateway.
     * 
     */
    public Optional> apiGcpServiceAccount() {
        return Optional.ofNullable(this.apiGcpServiceAccount);
    }

    /**
     * The API key (also called a “subscription key”).
     * 
     */
    @Import(name="apiKey")
    private @Nullable Output apiKey;

    /**
     * @return The API key (also called a “subscription key”).
     * 
     */
    public Optional> apiKey() {
        return Optional.ofNullable(this.apiKey);
    }

    /**
     * Specifies the HTTPS proxy service type.
     * 
     */
    @Import(name="apiProvider", required=true)
    private Output apiProvider;

    /**
     * @return Specifies the HTTPS proxy service type.
     * 
     */
    public Output apiProvider() {
        return this.apiProvider;
    }

    /**
     * The 'Application (client) id' of the Azure AD app for your remote service.
     * 
     */
    @Import(name="azureAdApplicationId")
    private @Nullable Output azureAdApplicationId;

    /**
     * @return The 'Application (client) id' of the Azure AD app for your remote service.
     * 
     */
    public Optional> azureAdApplicationId() {
        return Optional.ofNullable(this.azureAdApplicationId);
    }

    /**
     * Specifies the ID for your Office 365 tenant that all Azure API Management instances belong to.
     * 
     */
    @Import(name="azureTenantId")
    private @Nullable Output azureTenantId;

    /**
     * @return Specifies the ID for your Office 365 tenant that all Azure API Management instances belong to.
     * 
     */
    public Optional> azureTenantId() {
        return Optional.ofNullable(this.azureTenantId);
    }

    @Import(name="comment")
    private @Nullable Output comment;

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

    /**
     * Specifies whether this API integration is enabled or disabled. If the API integration is disabled, any external function that relies on it will not work.
     * 
     */
    @Import(name="enabled")
    private @Nullable Output enabled;

    /**
     * @return Specifies whether this API integration is enabled or disabled. If the API integration is disabled, any external function that relies on it will not work.
     * 
     */
    public Optional> enabled() {
        return Optional.ofNullable(this.enabled);
    }

    /**
     * The audience claim when generating the JWT (JSON Web Token) to authenticate to the Google API Gateway.
     * 
     */
    @Import(name="googleAudience")
    private @Nullable Output googleAudience;

    /**
     * @return The audience claim when generating the JWT (JSON Web Token) to authenticate to the Google API Gateway.
     * 
     */
    public Optional> googleAudience() {
        return Optional.ofNullable(this.googleAudience);
    }

    /**
     * Specifies the name of the API integration. This name follows the rules for Object Identifiers. The name should be unique among api integrations in your account.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Specifies the name of the API integration. This name follows the rules for Object Identifiers. The name should be unique among api integrations in your account.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    private ApiIntegrationArgs() {}

    private ApiIntegrationArgs(ApiIntegrationArgs $) {
        this.apiAllowedPrefixes = $.apiAllowedPrefixes;
        this.apiAwsRoleArn = $.apiAwsRoleArn;
        this.apiBlockedPrefixes = $.apiBlockedPrefixes;
        this.apiGcpServiceAccount = $.apiGcpServiceAccount;
        this.apiKey = $.apiKey;
        this.apiProvider = $.apiProvider;
        this.azureAdApplicationId = $.azureAdApplicationId;
        this.azureTenantId = $.azureTenantId;
        this.comment = $.comment;
        this.enabled = $.enabled;
        this.googleAudience = $.googleAudience;
        this.name = $.name;
    }

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

    public static final class Builder {
        private ApiIntegrationArgs $;

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

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

        /**
         * @param apiAllowedPrefixes Explicitly limits external functions that use the integration to reference one or more HTTPS proxy service endpoints and resources within those proxies.
         * 
         * @return builder
         * 
         */
        public Builder apiAllowedPrefixes(Output> apiAllowedPrefixes) {
            $.apiAllowedPrefixes = apiAllowedPrefixes;
            return this;
        }

        /**
         * @param apiAllowedPrefixes Explicitly limits external functions that use the integration to reference one or more HTTPS proxy service endpoints and resources within those proxies.
         * 
         * @return builder
         * 
         */
        public Builder apiAllowedPrefixes(List apiAllowedPrefixes) {
            return apiAllowedPrefixes(Output.of(apiAllowedPrefixes));
        }

        /**
         * @param apiAllowedPrefixes Explicitly limits external functions that use the integration to reference one or more HTTPS proxy service endpoints and resources within those proxies.
         * 
         * @return builder
         * 
         */
        public Builder apiAllowedPrefixes(String... apiAllowedPrefixes) {
            return apiAllowedPrefixes(List.of(apiAllowedPrefixes));
        }

        /**
         * @param apiAwsRoleArn ARN of a cloud platform role.
         * 
         * @return builder
         * 
         */
        public Builder apiAwsRoleArn(@Nullable Output apiAwsRoleArn) {
            $.apiAwsRoleArn = apiAwsRoleArn;
            return this;
        }

        /**
         * @param apiAwsRoleArn ARN of a cloud platform role.
         * 
         * @return builder
         * 
         */
        public Builder apiAwsRoleArn(String apiAwsRoleArn) {
            return apiAwsRoleArn(Output.of(apiAwsRoleArn));
        }

        /**
         * @param apiBlockedPrefixes Lists the endpoints and resources in the HTTPS proxy service that are not allowed to be called from Snowflake.
         * 
         * @return builder
         * 
         */
        public Builder apiBlockedPrefixes(@Nullable Output> apiBlockedPrefixes) {
            $.apiBlockedPrefixes = apiBlockedPrefixes;
            return this;
        }

        /**
         * @param apiBlockedPrefixes Lists the endpoints and resources in the HTTPS proxy service that are not allowed to be called from Snowflake.
         * 
         * @return builder
         * 
         */
        public Builder apiBlockedPrefixes(List apiBlockedPrefixes) {
            return apiBlockedPrefixes(Output.of(apiBlockedPrefixes));
        }

        /**
         * @param apiBlockedPrefixes Lists the endpoints and resources in the HTTPS proxy service that are not allowed to be called from Snowflake.
         * 
         * @return builder
         * 
         */
        public Builder apiBlockedPrefixes(String... apiBlockedPrefixes) {
            return apiBlockedPrefixes(List.of(apiBlockedPrefixes));
        }

        /**
         * @param apiGcpServiceAccount The service account used for communication with the Google API Gateway.
         * 
         * @return builder
         * 
         */
        public Builder apiGcpServiceAccount(@Nullable Output apiGcpServiceAccount) {
            $.apiGcpServiceAccount = apiGcpServiceAccount;
            return this;
        }

        /**
         * @param apiGcpServiceAccount The service account used for communication with the Google API Gateway.
         * 
         * @return builder
         * 
         */
        public Builder apiGcpServiceAccount(String apiGcpServiceAccount) {
            return apiGcpServiceAccount(Output.of(apiGcpServiceAccount));
        }

        /**
         * @param apiKey The API key (also called a “subscription key”).
         * 
         * @return builder
         * 
         */
        public Builder apiKey(@Nullable Output apiKey) {
            $.apiKey = apiKey;
            return this;
        }

        /**
         * @param apiKey The API key (also called a “subscription key”).
         * 
         * @return builder
         * 
         */
        public Builder apiKey(String apiKey) {
            return apiKey(Output.of(apiKey));
        }

        /**
         * @param apiProvider Specifies the HTTPS proxy service type.
         * 
         * @return builder
         * 
         */
        public Builder apiProvider(Output apiProvider) {
            $.apiProvider = apiProvider;
            return this;
        }

        /**
         * @param apiProvider Specifies the HTTPS proxy service type.
         * 
         * @return builder
         * 
         */
        public Builder apiProvider(String apiProvider) {
            return apiProvider(Output.of(apiProvider));
        }

        /**
         * @param azureAdApplicationId The 'Application (client) id' of the Azure AD app for your remote service.
         * 
         * @return builder
         * 
         */
        public Builder azureAdApplicationId(@Nullable Output azureAdApplicationId) {
            $.azureAdApplicationId = azureAdApplicationId;
            return this;
        }

        /**
         * @param azureAdApplicationId The 'Application (client) id' of the Azure AD app for your remote service.
         * 
         * @return builder
         * 
         */
        public Builder azureAdApplicationId(String azureAdApplicationId) {
            return azureAdApplicationId(Output.of(azureAdApplicationId));
        }

        /**
         * @param azureTenantId Specifies the ID for your Office 365 tenant that all Azure API Management instances belong to.
         * 
         * @return builder
         * 
         */
        public Builder azureTenantId(@Nullable Output azureTenantId) {
            $.azureTenantId = azureTenantId;
            return this;
        }

        /**
         * @param azureTenantId Specifies the ID for your Office 365 tenant that all Azure API Management instances belong to.
         * 
         * @return builder
         * 
         */
        public Builder azureTenantId(String azureTenantId) {
            return azureTenantId(Output.of(azureTenantId));
        }

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

        public Builder comment(String comment) {
            return comment(Output.of(comment));
        }

        /**
         * @param enabled Specifies whether this API integration is enabled or disabled. If the API integration is disabled, any external function that relies on it will not work.
         * 
         * @return builder
         * 
         */
        public Builder enabled(@Nullable Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Specifies whether this API integration is enabled or disabled. If the API integration is disabled, any external function that relies on it will not work.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param googleAudience The audience claim when generating the JWT (JSON Web Token) to authenticate to the Google API Gateway.
         * 
         * @return builder
         * 
         */
        public Builder googleAudience(@Nullable Output googleAudience) {
            $.googleAudience = googleAudience;
            return this;
        }

        /**
         * @param googleAudience The audience claim when generating the JWT (JSON Web Token) to authenticate to the Google API Gateway.
         * 
         * @return builder
         * 
         */
        public Builder googleAudience(String googleAudience) {
            return googleAudience(Output.of(googleAudience));
        }

        /**
         * @param name Specifies the name of the API integration. This name follows the rules for Object Identifiers. The name should be unique among api integrations in your account.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Specifies the name of the API integration. This name follows the rules for Object Identifiers. The name should be unique among api integrations in your account.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public ApiIntegrationArgs build() {
            if ($.apiAllowedPrefixes == null) {
                throw new MissingRequiredPropertyException("ApiIntegrationArgs", "apiAllowedPrefixes");
            }
            if ($.apiProvider == null) {
                throw new MissingRequiredPropertyException("ApiIntegrationArgs", "apiProvider");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy