// *** 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.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.gcp.Utilities;
import com.pulumi.gcp.apigee.KeystoresAliasesPkcs12Args;
import com.pulumi.gcp.apigee.inputs.KeystoresAliasesPkcs12State;
import com.pulumi.gcp.apigee.outputs.KeystoresAliasesPkcs12CertsInfo;
import java.lang.String;
import java.util.List;
import javax.annotation.Nullable;

/**
 * An alias from a pkcs12 file.
 * 
 * To get more information about KeystoresAliasesPkcs12, see:
 * 
 * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keystores.aliases)
 * * How-to Guides
 *     * [Keystores Aliases](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.keystores.aliases)
 * 
 * ## Import
 * 
 * KeystoresAliasesPkcs12 can be imported using any of these accepted formats
 * 
 * ```sh
 *  $ pulumi import gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12 default organizations/{{org_id}}/environments/{{environment}}/keystores/{{keystore}}/aliases/{{alias}}
 * ```
 * 
 * ```sh
 *  $ pulumi import gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12 default {{org_id}}/{{environment}}/{{keystore}}/{{alias}}
 * ```
 * 
 */
@ResourceType(type="gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12")
public class KeystoresAliasesPkcs12 extends com.pulumi.resources.CustomResource {
    /**
     * Alias Name
     * 
     */
    @Export(name="alias", type=String.class, parameters={})
    private Output<String> alias;

    /**
     * @return Alias Name
     * 
     */
    public Output<String> alias() {
        return this.alias;
    }
    /**
     * Chain of certificates under this alias.
     * Structure is documented below.
     * 
     */
    @Export(name="certsInfos", type=List.class, parameters={KeystoresAliasesPkcs12CertsInfo.class})
    private Output<List<KeystoresAliasesPkcs12CertsInfo>> certsInfos;

    /**
     * @return Chain of certificates under this alias.
     * Structure is documented below.
     * 
     */
    public Output<List<KeystoresAliasesPkcs12CertsInfo>> certsInfos() {
        return this.certsInfos;
    }
    /**
     * Environment associated with the alias
     * 
     */
    @Export(name="environment", type=String.class, parameters={})
    private Output<String> environment;

    /**
     * @return Environment associated with the alias
     * 
     */
    public Output<String> environment() {
        return this.environment;
    }
    /**
     * PKCS12 file content
     * 
     * ***
     * 
     */
    @Export(name="file", type=String.class, parameters={})
    private Output<String> file;

    /**
     * @return PKCS12 file content
     * 
     * ***
     * 
     */
    public Output<String> file() {
        return this.file;
    }
    /**
     * Hash of the pkcs file
     * 
     */
    @Export(name="filehash", type=String.class, parameters={})
    private Output<String> filehash;

    /**
     * @return Hash of the pkcs file
     * 
     */
    public Output<String> filehash() {
        return this.filehash;
    }
    /**
     * Keystore Name
     * 
     */
    @Export(name="keystore", type=String.class, parameters={})
    private Output<String> keystore;

    /**
     * @return Keystore Name
     * 
     */
    public Output<String> keystore() {
        return this.keystore;
    }
    /**
     * Organization ID associated with the alias, without organization/ prefix
     * 
     */
    @Export(name="orgId", type=String.class, parameters={})
    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
     * 
     */
    @Export(name="password", type=String.class, parameters={})
    private Output<String> password;

    /**
     * @return Password for the PKCS12 file if it&#39;s encrypted
     * 
     */
    public Output<String> password() {
        return this.password;
    }
    /**
     * Optional.Type of Alias
     * 
     */
    @Export(name="type", type=String.class, parameters={})
    private Output<String> type;

    /**
     * @return Optional.Type of Alias
     * 
     */
    public Output<String> type() {
        return this.type;
    }

    /**
     *
     * @param name The _unique_ name of the resulting resource.
     */
    public KeystoresAliasesPkcs12(String name) {
        this(name, KeystoresAliasesPkcs12Args.Empty);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     */
    public KeystoresAliasesPkcs12(String name, KeystoresAliasesPkcs12Args args) {
        this(name, args, null);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param options A bag of options that control this resource's behavior.
     */
    public KeystoresAliasesPkcs12(String name, KeystoresAliasesPkcs12Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12", name, args == null ? KeystoresAliasesPkcs12Args.Empty : args, makeResourceOptions(options, Codegen.empty()));
    }

    private KeystoresAliasesPkcs12(String name, Output<String> id, @Nullable KeystoresAliasesPkcs12State state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("gcp:apigee/keystoresAliasesPkcs12:KeystoresAliasesPkcs12", name, state, makeResourceOptions(options, id));
    }

    private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output<String> id) {
        var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
            .version(Utilities.getVersion())
            .build();
        return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
    }

    /**
     * Get an existing Host resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param state
     * @param options Optional settings to control the behavior of the CustomResource.
     */
    public static KeystoresAliasesPkcs12 get(String name, Output<String> id, @Nullable KeystoresAliasesPkcs12State state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        return new KeystoresAliasesPkcs12(name, id, state, options);
    }
}
