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

com.pulumi.azurenative.search.ServiceArgs 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.search;

import com.pulumi.azurenative.search.enums.HostingMode;
import com.pulumi.azurenative.search.enums.PublicNetworkAccess;
import com.pulumi.azurenative.search.inputs.DataPlaneAuthOptionsArgs;
import com.pulumi.azurenative.search.inputs.EncryptionWithCmkArgs;
import com.pulumi.azurenative.search.inputs.IdentityArgs;
import com.pulumi.azurenative.search.inputs.NetworkRuleSetArgs;
import com.pulumi.azurenative.search.inputs.SkuArgs;
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.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final ServiceArgs Empty = new ServiceArgs();

    /**
     * Defines the options for how the data plane API of a search service authenticates requests. This cannot be set if 'disableLocalAuth' is set to true.
     * 
     */
    @Import(name="authOptions")
    private @Nullable Output authOptions;

    /**
     * @return Defines the options for how the data plane API of a search service authenticates requests. This cannot be set if 'disableLocalAuth' is set to true.
     * 
     */
    public Optional> authOptions() {
        return Optional.ofNullable(this.authOptions);
    }

    /**
     * When set to true, calls to the search service will not be permitted to utilize API keys for authentication. This cannot be set to true if 'dataPlaneAuthOptions' are defined.
     * 
     */
    @Import(name="disableLocalAuth")
    private @Nullable Output disableLocalAuth;

    /**
     * @return When set to true, calls to the search service will not be permitted to utilize API keys for authentication. This cannot be set to true if 'dataPlaneAuthOptions' are defined.
     * 
     */
    public Optional> disableLocalAuth() {
        return Optional.ofNullable(this.disableLocalAuth);
    }

    /**
     * Specifies any policy regarding encryption of resources (such as indexes) using customer manager keys within a search service.
     * 
     */
    @Import(name="encryptionWithCmk")
    private @Nullable Output encryptionWithCmk;

    /**
     * @return Specifies any policy regarding encryption of resources (such as indexes) using customer manager keys within a search service.
     * 
     */
    public Optional> encryptionWithCmk() {
        return Optional.ofNullable(this.encryptionWithCmk);
    }

    /**
     * Applicable only for the standard3 SKU. You can set this property to enable up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default' or 'highDensity'. For all other SKUs, this value must be 'default'.
     * 
     */
    @Import(name="hostingMode")
    private @Nullable Output hostingMode;

    /**
     * @return Applicable only for the standard3 SKU. You can set this property to enable up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default' or 'highDensity'. For all other SKUs, this value must be 'default'.
     * 
     */
    public Optional> hostingMode() {
        return Optional.ofNullable(this.hostingMode);
    }

    /**
     * The identity of the resource.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The identity of the resource.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * The geo-location where the resource lives
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The geo-location where the resource lives
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Network specific rules that determine how the Azure Cognitive Search service may be reached.
     * 
     */
    @Import(name="networkRuleSet")
    private @Nullable Output networkRuleSet;

    /**
     * @return Network specific rules that determine how the Azure Cognitive Search service may be reached.
     * 
     */
    public Optional> networkRuleSet() {
        return Optional.ofNullable(this.networkRuleSet);
    }

    /**
     * The number of partitions in the search service; if specified, it can be 1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3' services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
     * 
     */
    @Import(name="partitionCount")
    private @Nullable Output partitionCount;

    /**
     * @return The number of partitions in the search service; if specified, it can be 1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3' services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
     * 
     */
    public Optional> partitionCount() {
        return Optional.ofNullable(this.partitionCount);
    }

    /**
     * This value can be set to 'enabled' to avoid breaking changes on existing customer resources and templates. If set to 'disabled', traffic over public interface is not allowed, and private endpoint connections would be the exclusive access method.
     * 
     */
    @Import(name="publicNetworkAccess")
    private @Nullable Output publicNetworkAccess;

    /**
     * @return This value can be set to 'enabled' to avoid breaking changes on existing customer resources and templates. If set to 'disabled', traffic over public interface is not allowed, and private endpoint connections would be the exclusive access method.
     * 
     */
    public Optional> publicNetworkAccess() {
        return Optional.ofNullable(this.publicNetworkAccess);
    }

    /**
     * The number of replicas in the search service. If specified, it must be a value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
     * 
     */
    @Import(name="replicaCount")
    private @Nullable Output replicaCount;

    /**
     * @return The number of replicas in the search service. If specified, it must be a value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
     * 
     */
    public Optional> replicaCount() {
        return Optional.ofNullable(this.replicaCount);
    }

    /**
     * The name of the resource group within the current subscription. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group within the current subscription. You can obtain this value from the Azure Resource Manager API or the portal.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * The name of the Azure Cognitive Search service to create or update. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length. Search service names must be globally unique since they are part of the service URI (https://<name>.search.windows.net). You cannot change the service name after the service is created.
     * 
     */
    @Import(name="searchServiceName")
    private @Nullable Output searchServiceName;

    /**
     * @return The name of the Azure Cognitive Search service to create or update. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length. Search service names must be globally unique since they are part of the service URI (https://<name>.search.windows.net). You cannot change the service name after the service is created.
     * 
     */
    public Optional> searchServiceName() {
        return Optional.ofNullable(this.searchServiceName);
    }

    /**
     * The SKU of the Search Service, which determines price tier and capacity limits. This property is required when creating a new Search Service.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return The SKU of the Search Service, which determines price tier and capacity limits. This property is required when creating a new Search Service.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private ServiceArgs() {}

    private ServiceArgs(ServiceArgs $) {
        this.authOptions = $.authOptions;
        this.disableLocalAuth = $.disableLocalAuth;
        this.encryptionWithCmk = $.encryptionWithCmk;
        this.hostingMode = $.hostingMode;
        this.identity = $.identity;
        this.location = $.location;
        this.networkRuleSet = $.networkRuleSet;
        this.partitionCount = $.partitionCount;
        this.publicNetworkAccess = $.publicNetworkAccess;
        this.replicaCount = $.replicaCount;
        this.resourceGroupName = $.resourceGroupName;
        this.searchServiceName = $.searchServiceName;
        this.sku = $.sku;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private ServiceArgs $;

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

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

        /**
         * @param authOptions Defines the options for how the data plane API of a search service authenticates requests. This cannot be set if 'disableLocalAuth' is set to true.
         * 
         * @return builder
         * 
         */
        public Builder authOptions(@Nullable Output authOptions) {
            $.authOptions = authOptions;
            return this;
        }

        /**
         * @param authOptions Defines the options for how the data plane API of a search service authenticates requests. This cannot be set if 'disableLocalAuth' is set to true.
         * 
         * @return builder
         * 
         */
        public Builder authOptions(DataPlaneAuthOptionsArgs authOptions) {
            return authOptions(Output.of(authOptions));
        }

        /**
         * @param disableLocalAuth When set to true, calls to the search service will not be permitted to utilize API keys for authentication. This cannot be set to true if 'dataPlaneAuthOptions' are defined.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(@Nullable Output disableLocalAuth) {
            $.disableLocalAuth = disableLocalAuth;
            return this;
        }

        /**
         * @param disableLocalAuth When set to true, calls to the search service will not be permitted to utilize API keys for authentication. This cannot be set to true if 'dataPlaneAuthOptions' are defined.
         * 
         * @return builder
         * 
         */
        public Builder disableLocalAuth(Boolean disableLocalAuth) {
            return disableLocalAuth(Output.of(disableLocalAuth));
        }

        /**
         * @param encryptionWithCmk Specifies any policy regarding encryption of resources (such as indexes) using customer manager keys within a search service.
         * 
         * @return builder
         * 
         */
        public Builder encryptionWithCmk(@Nullable Output encryptionWithCmk) {
            $.encryptionWithCmk = encryptionWithCmk;
            return this;
        }

        /**
         * @param encryptionWithCmk Specifies any policy regarding encryption of resources (such as indexes) using customer manager keys within a search service.
         * 
         * @return builder
         * 
         */
        public Builder encryptionWithCmk(EncryptionWithCmkArgs encryptionWithCmk) {
            return encryptionWithCmk(Output.of(encryptionWithCmk));
        }

        /**
         * @param hostingMode Applicable only for the standard3 SKU. You can set this property to enable up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default' or 'highDensity'. For all other SKUs, this value must be 'default'.
         * 
         * @return builder
         * 
         */
        public Builder hostingMode(@Nullable Output hostingMode) {
            $.hostingMode = hostingMode;
            return this;
        }

        /**
         * @param hostingMode Applicable only for the standard3 SKU. You can set this property to enable up to 3 high density partitions that allow up to 1000 indexes, which is much higher than the maximum indexes allowed for any other SKU. For the standard3 SKU, the value is either 'default' or 'highDensity'. For all other SKUs, this value must be 'default'.
         * 
         * @return builder
         * 
         */
        public Builder hostingMode(HostingMode hostingMode) {
            return hostingMode(Output.of(hostingMode));
        }

        /**
         * @param identity The identity of the resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The identity of the resource.
         * 
         * @return builder
         * 
         */
        public Builder identity(IdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The geo-location where the resource lives
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param networkRuleSet Network specific rules that determine how the Azure Cognitive Search service may be reached.
         * 
         * @return builder
         * 
         */
        public Builder networkRuleSet(@Nullable Output networkRuleSet) {
            $.networkRuleSet = networkRuleSet;
            return this;
        }

        /**
         * @param networkRuleSet Network specific rules that determine how the Azure Cognitive Search service may be reached.
         * 
         * @return builder
         * 
         */
        public Builder networkRuleSet(NetworkRuleSetArgs networkRuleSet) {
            return networkRuleSet(Output.of(networkRuleSet));
        }

        /**
         * @param partitionCount The number of partitions in the search service; if specified, it can be 1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3' services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
         * 
         * @return builder
         * 
         */
        public Builder partitionCount(@Nullable Output partitionCount) {
            $.partitionCount = partitionCount;
            return this;
        }

        /**
         * @param partitionCount The number of partitions in the search service; if specified, it can be 1, 2, 3, 4, 6, or 12. Values greater than 1 are only valid for standard SKUs. For 'standard3' services with hostingMode set to 'highDensity', the allowed values are between 1 and 3.
         * 
         * @return builder
         * 
         */
        public Builder partitionCount(Integer partitionCount) {
            return partitionCount(Output.of(partitionCount));
        }

        /**
         * @param publicNetworkAccess This value can be set to 'enabled' to avoid breaking changes on existing customer resources and templates. If set to 'disabled', traffic over public interface is not allowed, and private endpoint connections would be the exclusive access method.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(@Nullable Output publicNetworkAccess) {
            $.publicNetworkAccess = publicNetworkAccess;
            return this;
        }

        /**
         * @param publicNetworkAccess This value can be set to 'enabled' to avoid breaking changes on existing customer resources and templates. If set to 'disabled', traffic over public interface is not allowed, and private endpoint connections would be the exclusive access method.
         * 
         * @return builder
         * 
         */
        public Builder publicNetworkAccess(PublicNetworkAccess publicNetworkAccess) {
            return publicNetworkAccess(Output.of(publicNetworkAccess));
        }

        /**
         * @param replicaCount The number of replicas in the search service. If specified, it must be a value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
         * 
         * @return builder
         * 
         */
        public Builder replicaCount(@Nullable Output replicaCount) {
            $.replicaCount = replicaCount;
            return this;
        }

        /**
         * @param replicaCount The number of replicas in the search service. If specified, it must be a value between 1 and 12 inclusive for standard SKUs or between 1 and 3 inclusive for basic SKU.
         * 
         * @return builder
         * 
         */
        public Builder replicaCount(Integer replicaCount) {
            return replicaCount(Output.of(replicaCount));
        }

        /**
         * @param resourceGroupName The name of the resource group within the current subscription. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group within the current subscription. You can obtain this value from the Azure Resource Manager API or the portal.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param searchServiceName The name of the Azure Cognitive Search service to create or update. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length. Search service names must be globally unique since they are part of the service URI (https://<name>.search.windows.net). You cannot change the service name after the service is created.
         * 
         * @return builder
         * 
         */
        public Builder searchServiceName(@Nullable Output searchServiceName) {
            $.searchServiceName = searchServiceName;
            return this;
        }

        /**
         * @param searchServiceName The name of the Azure Cognitive Search service to create or update. Search service names must only contain lowercase letters, digits or dashes, cannot use dash as the first two or last one characters, cannot contain consecutive dashes, and must be between 2 and 60 characters in length. Search service names must be globally unique since they are part of the service URI (https://<name>.search.windows.net). You cannot change the service name after the service is created.
         * 
         * @return builder
         * 
         */
        public Builder searchServiceName(String searchServiceName) {
            return searchServiceName(Output.of(searchServiceName));
        }

        /**
         * @param sku The SKU of the Search Service, which determines price tier and capacity limits. This property is required when creating a new Search Service.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku The SKU of the Search Service, which determines price tier and capacity limits. This property is required when creating a new Search Service.
         * 
         * @return builder
         * 
         */
        public Builder sku(SkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public ServiceArgs build() {
            $.hostingMode = Codegen.objectProp("hostingMode", HostingMode.class).output().arg($.hostingMode).def(HostingMode.Default).getNullable();
            $.partitionCount = Codegen.integerProp("partitionCount").output().arg($.partitionCount).def(1).getNullable();
            $.publicNetworkAccess = Codegen.objectProp("publicNetworkAccess", PublicNetworkAccess.class).output().arg($.publicNetworkAccess).def(PublicNetworkAccess.Enabled).getNullable();
            $.replicaCount = Codegen.integerProp("replicaCount").output().arg($.replicaCount).def(1).getNullable();
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ServiceArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy