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

com.pulumi.azurenative.hybriddata.DataStoreArgs Maven / Gradle / Ivy

There is a newer version: 2.72.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.hybriddata;

import com.pulumi.azurenative.hybriddata.enums.State;
import com.pulumi.azurenative.hybriddata.inputs.CustomerSecretArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DataStoreArgs Empty = new DataStoreArgs();

    /**
     * List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
     * 
     */
    @Import(name="customerSecrets")
    private @Nullable Output> customerSecrets;

    /**
     * @return List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
     * 
     */
    public Optional>> customerSecrets() {
        return Optional.ofNullable(this.customerSecrets);
    }

    /**
     * The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    @Import(name="dataManagerName", required=true)
    private Output dataManagerName;

    /**
     * @return The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
     * 
     */
    public Output dataManagerName() {
        return this.dataManagerName;
    }

    /**
     * The data store/repository name to be created or updated.
     * 
     */
    @Import(name="dataStoreName")
    private @Nullable Output dataStoreName;

    /**
     * @return The data store/repository name to be created or updated.
     * 
     */
    public Optional> dataStoreName() {
        return Optional.ofNullable(this.dataStoreName);
    }

    /**
     * The arm id of the data store type.
     * 
     */
    @Import(name="dataStoreTypeId", required=true)
    private Output dataStoreTypeId;

    /**
     * @return The arm id of the data store type.
     * 
     */
    public Output dataStoreTypeId() {
        return this.dataStoreTypeId;
    }

    /**
     * A generic json used differently by each data source type.
     * 
     */
    @Import(name="extendedProperties")
    private @Nullable Output extendedProperties;

    /**
     * @return A generic json used differently by each data source type.
     * 
     */
    public Optional> extendedProperties() {
        return Optional.ofNullable(this.extendedProperties);
    }

    /**
     * Arm Id for the manager resource to which the data source is associated. This is optional.
     * 
     */
    @Import(name="repositoryId")
    private @Nullable Output repositoryId;

    /**
     * @return Arm Id for the manager resource to which the data source is associated. This is optional.
     * 
     */
    public Optional> repositoryId() {
        return Optional.ofNullable(this.repositoryId);
    }

    /**
     * The Resource Group Name
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The Resource Group Name
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * State of the data source.
     * 
     */
    @Import(name="state", required=true)
    private Output state;

    /**
     * @return State of the data source.
     * 
     */
    public Output state() {
        return this.state;
    }

    private DataStoreArgs() {}

    private DataStoreArgs(DataStoreArgs $) {
        this.customerSecrets = $.customerSecrets;
        this.dataManagerName = $.dataManagerName;
        this.dataStoreName = $.dataStoreName;
        this.dataStoreTypeId = $.dataStoreTypeId;
        this.extendedProperties = $.extendedProperties;
        this.repositoryId = $.repositoryId;
        this.resourceGroupName = $.resourceGroupName;
        this.state = $.state;
    }

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

    public static final class Builder {
        private DataStoreArgs $;

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

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

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(@Nullable Output> customerSecrets) {
            $.customerSecrets = customerSecrets;
            return this;
        }

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(List customerSecrets) {
            return customerSecrets(Output.of(customerSecrets));
        }

        /**
         * @param customerSecrets List of customer secrets containing a key identifier and key value. The key identifier is a way for the specific data source to understand the key. Value contains customer secret encrypted by the encryptionKeys.
         * 
         * @return builder
         * 
         */
        public Builder customerSecrets(CustomerSecretArgs... customerSecrets) {
            return customerSecrets(List.of(customerSecrets));
        }

        /**
         * @param dataManagerName The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder dataManagerName(Output dataManagerName) {
            $.dataManagerName = dataManagerName;
            return this;
        }

        /**
         * @param dataManagerName The name of the DataManager Resource within the specified resource group. DataManager names must be between 3 and 24 characters in length and use any alphanumeric and underscore only
         * 
         * @return builder
         * 
         */
        public Builder dataManagerName(String dataManagerName) {
            return dataManagerName(Output.of(dataManagerName));
        }

        /**
         * @param dataStoreName The data store/repository name to be created or updated.
         * 
         * @return builder
         * 
         */
        public Builder dataStoreName(@Nullable Output dataStoreName) {
            $.dataStoreName = dataStoreName;
            return this;
        }

        /**
         * @param dataStoreName The data store/repository name to be created or updated.
         * 
         * @return builder
         * 
         */
        public Builder dataStoreName(String dataStoreName) {
            return dataStoreName(Output.of(dataStoreName));
        }

        /**
         * @param dataStoreTypeId The arm id of the data store type.
         * 
         * @return builder
         * 
         */
        public Builder dataStoreTypeId(Output dataStoreTypeId) {
            $.dataStoreTypeId = dataStoreTypeId;
            return this;
        }

        /**
         * @param dataStoreTypeId The arm id of the data store type.
         * 
         * @return builder
         * 
         */
        public Builder dataStoreTypeId(String dataStoreTypeId) {
            return dataStoreTypeId(Output.of(dataStoreTypeId));
        }

        /**
         * @param extendedProperties A generic json used differently by each data source type.
         * 
         * @return builder
         * 
         */
        public Builder extendedProperties(@Nullable Output extendedProperties) {
            $.extendedProperties = extendedProperties;
            return this;
        }

        /**
         * @param extendedProperties A generic json used differently by each data source type.
         * 
         * @return builder
         * 
         */
        public Builder extendedProperties(Object extendedProperties) {
            return extendedProperties(Output.of(extendedProperties));
        }

        /**
         * @param repositoryId Arm Id for the manager resource to which the data source is associated. This is optional.
         * 
         * @return builder
         * 
         */
        public Builder repositoryId(@Nullable Output repositoryId) {
            $.repositoryId = repositoryId;
            return this;
        }

        /**
         * @param repositoryId Arm Id for the manager resource to which the data source is associated. This is optional.
         * 
         * @return builder
         * 
         */
        public Builder repositoryId(String repositoryId) {
            return repositoryId(Output.of(repositoryId));
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The Resource Group Name
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param state State of the data source.
         * 
         * @return builder
         * 
         */
        public Builder state(Output state) {
            $.state = state;
            return this;
        }

        /**
         * @param state State of the data source.
         * 
         * @return builder
         * 
         */
        public Builder state(State state) {
            return state(Output.of(state));
        }

        public DataStoreArgs build() {
            if ($.dataManagerName == null) {
                throw new MissingRequiredPropertyException("DataStoreArgs", "dataManagerName");
            }
            if ($.dataStoreTypeId == null) {
                throw new MissingRequiredPropertyException("DataStoreArgs", "dataStoreTypeId");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("DataStoreArgs", "resourceGroupName");
            }
            if ($.state == null) {
                throw new MissingRequiredPropertyException("DataStoreArgs", "state");
            }
            return $;
        }
    }

}