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

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final KeystoresAliasesPkcs12Args Empty = new KeystoresAliasesPkcs12Args();

    /**
     * Alias Name
     * 
     */
    @Import(name="alias", required=true)
    private Output<String> alias;

    /**
     * @return Alias Name
     * 
     */
    public Output<String> alias() {
        return this.alias;
    }

    /**
     * Environment associated with the alias
     * 
     */
    @Import(name="environment", required=true)
    private Output<String> environment;

    /**
     * @return Environment associated with the alias
     * 
     */
    public Output<String> environment() {
        return this.environment;
    }

    /**
     * PKCS12 file content
     * 
     * ***
     * 
     */
    @Import(name="file", required=true)
    private Output<String> file;

    /**
     * @return PKCS12 file content
     * 
     * ***
     * 
     */
    public Output<String> file() {
        return this.file;
    }

    /**
     * Hash of the pkcs file
     * 
     */
    @Import(name="filehash", required=true)
    private Output<String> filehash;

    /**
     * @return Hash of the pkcs file
     * 
     */
    public Output<String> filehash() {
        return this.filehash;
    }

    /**
     * Keystore Name
     * 
     */
    @Import(name="keystore", required=true)
    private Output<String> keystore;

    /**
     * @return Keystore Name
     * 
     */
    public Output<String> keystore() {
        return this.keystore;
    }

    /**
     * Organization ID associated with the alias, without organization/ prefix
     * 
     */
    @Import(name="orgId", required=true)
    private Output<String> orgId;

    /**
     * @return Organization ID associated with the alias, without organization/ prefix
     * 
     */
    public Output<String> orgId() {
        return this.orgId;
    }

    /**
     * Password for the PKCS12 file if it&#39;s encrypted
     * 
     */
    @Import(name="password")
    private @Nullable Output<String> password;

    /**
     * @return Password for the PKCS12 file if it&#39;s encrypted
     * 
     */
    public Optional<Output<String>> password() {
        return Optional.ofNullable(this.password);
    }

    private KeystoresAliasesPkcs12Args() {}

    private KeystoresAliasesPkcs12Args(KeystoresAliasesPkcs12Args $) {
        this.alias = $.alias;
        this.environment = $.environment;
        this.file = $.file;
        this.filehash = $.filehash;
        this.keystore = $.keystore;
        this.orgId = $.orgId;
        this.password = $.password;
    }

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

    public static final class Builder {
        private KeystoresAliasesPkcs12Args $;

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

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

        /**
         * @param alias Alias Name
         * 
         * @return builder
         * 
         */
        public Builder alias(Output<String> alias) {
            $.alias = alias;
            return this;
        }

        /**
         * @param alias Alias Name
         * 
         * @return builder
         * 
         */
        public Builder alias(String alias) {
            return alias(Output.of(alias));
        }

        /**
         * @param environment Environment associated with the alias
         * 
         * @return builder
         * 
         */
        public Builder environment(Output<String> environment) {
            $.environment = environment;
            return this;
        }

        /**
         * @param environment Environment associated with the alias
         * 
         * @return builder
         * 
         */
        public Builder environment(String environment) {
            return environment(Output.of(environment));
        }

        /**
         * @param file PKCS12 file content
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder file(Output<String> file) {
            $.file = file;
            return this;
        }

        /**
         * @param file PKCS12 file content
         * 
         * ***
         * 
         * @return builder
         * 
         */
        public Builder file(String file) {
            return file(Output.of(file));
        }

        /**
         * @param filehash Hash of the pkcs file
         * 
         * @return builder
         * 
         */
        public Builder filehash(Output<String> filehash) {
            $.filehash = filehash;
            return this;
        }

        /**
         * @param filehash Hash of the pkcs file
         * 
         * @return builder
         * 
         */
        public Builder filehash(String filehash) {
            return filehash(Output.of(filehash));
        }

        /**
         * @param keystore Keystore Name
         * 
         * @return builder
         * 
         */
        public Builder keystore(Output<String> keystore) {
            $.keystore = keystore;
            return this;
        }

        /**
         * @param keystore Keystore Name
         * 
         * @return builder
         * 
         */
        public Builder keystore(String keystore) {
            return keystore(Output.of(keystore));
        }

        /**
         * @param orgId Organization ID associated with the alias, without organization/ prefix
         * 
         * @return builder
         * 
         */
        public Builder orgId(Output<String> orgId) {
            $.orgId = orgId;
            return this;
        }

        /**
         * @param orgId Organization ID associated with the alias, without organization/ prefix
         * 
         * @return builder
         * 
         */
        public Builder orgId(String orgId) {
            return orgId(Output.of(orgId));
        }

        /**
         * @param password Password for the PKCS12 file if it&#39;s encrypted
         * 
         * @return builder
         * 
         */
        public Builder password(@Nullable Output<String> password) {
            $.password = password;
            return this;
        }

        /**
         * @param password Password for the PKCS12 file if it&#39;s encrypted
         * 
         * @return builder
         * 
         */
        public Builder password(String password) {
            return password(Output.of(password));
        }

        public KeystoresAliasesPkcs12Args build() {
            $.alias = Objects.requireNonNull($.alias, "expected parameter 'alias' to be non-null");
            $.environment = Objects.requireNonNull($.environment, "expected parameter 'environment' to be non-null");
            $.file = Objects.requireNonNull($.file, "expected parameter 'file' to be non-null");
            $.filehash = Objects.requireNonNull($.filehash, "expected parameter 'filehash' to be non-null");
            $.keystore = Objects.requireNonNull($.keystore, "expected parameter 'keystore' to be non-null");
            $.orgId = Objects.requireNonNull($.orgId, "expected parameter 'orgId' to be non-null");
            return $;
        }
    }

}
