import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * This resource provides the Blockchain Platform resource in Oracle Cloud Infrastructure Blockchain service.
 * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/blockchain/latest/BlockchainPlatform
 *
 * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/blockchain
 *
 * Creates a new Blockchain Platform.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as oci from "@pulumi/oci";
 *
 * const testBlockchainPlatform = new oci.blockchain.BlockchainPlatform("test_blockchain_platform", {
 *     compartmentId: compartmentId,
 *     computeShape: blockchainPlatformComputeShape,
 *     displayName: blockchainPlatformDisplayName,
 *     idcsAccessToken: blockchainPlatformIdcsAccessToken,
 *     platformRole: blockchainPlatformPlatformRole,
 *     caCertArchiveText: blockchainPlatformCaCertArchiveText,
 *     definedTags: {
 *         "foo-namespace.bar-key": "value",
 *     },
 *     description: blockchainPlatformDescription,
 *     federatedUserId: testUser.id,
 *     freeformTags: {
 *         "bar-key": "value",
 *     },
 *     isByol: blockchainPlatformIsByol === "true",
 *     platformVersion: blockchainPlatformPlatformVersion,
 * });
 * ```
 *
 * ## Import
 *
 * BlockchainPlatforms can be imported using the `id`, e.g.
 *
 * ```sh
 * $ pulumi import oci:Blockchain/blockchainPlatform:BlockchainPlatform test_blockchain_platform "id"
 * ```
 */
export declare class BlockchainPlatform extends pulumi.CustomResource {
    /**
     * Get an existing BlockchainPlatform 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 Any extra arguments used during the lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, state?: BlockchainPlatformState, opts?: pulumi.CustomResourceOptions): BlockchainPlatform;
    /**
     * Returns true if the given object is an instance of BlockchainPlatform.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is BlockchainPlatform;
    /**
     * Base64 encoded text in ASCII character set of a Thirdparty CA Certificates archive file. The Archive file is a zip file containing third part CA Certificates, the ca key and certificate files used when issuing enrollment certificates (ECerts) and transaction certificates (TCerts). The chainfile (if it exists) contains the certificate chain which should be trusted for this CA, where the 1st in the chain is always the root CA certificate. File list in zip file [ca-cert.pem,ca-key.pem,ca-chain.pem(optional)].
     */
    readonly caCertArchiveText: pulumi.Output<string>;
    /**
     * (Updatable) Compartment Identifier
     */
    readonly compartmentId: pulumi.Output<string>;
    /**
     * Blockchain Platform component details.
     */
    readonly componentDetails: pulumi.Output<outputs.Blockchain.BlockchainPlatformComponentDetail[]>;
    /**
     * Compute shape - STANDARD or ENTERPRISE_SMALL or ENTERPRISE_MEDIUM or ENTERPRISE_LARGE or ENTERPRISE_EXTRA_LARGE
     */
    readonly computeShape: pulumi.Output<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    readonly definedTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * (Updatable) Platform Instance Description
     */
    readonly description: pulumi.Output<string>;
    /**
     * Platform Instance Display name, can be renamed
     */
    readonly displayName: pulumi.Output<string>;
    /**
     * Identifier for a federated user
     */
    readonly federatedUserId: pulumi.Output<string>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    readonly freeformTags: pulumi.Output<{
        [key: string]: string;
    }>;
    /**
     * List of OcpuUtilization for all hosts
     */
    readonly hostOcpuUtilizationInfos: pulumi.Output<outputs.Blockchain.BlockchainPlatformHostOcpuUtilizationInfo[]>;
    /**
     * IDCS access token with Identity Domain Administrator role
     */
    readonly idcsAccessToken: pulumi.Output<string>;
    /**
     * Bring your own license
     */
    readonly isByol: pulumi.Output<boolean>;
    /**
     * True for multi-AD blockchain plaforms, false for single-AD
     */
    readonly isMultiAd: pulumi.Output<boolean>;
    /**
     * An message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    readonly lifecycleDetails: pulumi.Output<string>;
    /**
     * (Updatable) Type of Load Balancer shape - LB_100_MBPS or LB_400_MBPS. Default is LB_100_MBPS.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    readonly loadBalancerShape: pulumi.Output<string>;
    /**
     * Role of platform - founder or participant
     */
    readonly platformRole: pulumi.Output<string>;
    /**
     * Type of Platform shape - DEFAULT or CUSTOM
     */
    readonly platformShapeType: pulumi.Output<string>;
    /**
     * Platform version
     */
    readonly platformVersion: pulumi.Output<string>;
    /**
     * Number of replicas of service components like Rest Proxy, CA and Console
     */
    readonly replicas: pulumi.Output<outputs.Blockchain.BlockchainPlatformReplicas>;
    /**
     * Service endpoint URL, valid post-provisioning
     */
    readonly serviceEndpoint: pulumi.Output<string>;
    /**
     * The version of the Platform Instance.
     */
    readonly serviceVersion: pulumi.Output<string>;
    /**
     * The current state of the Platform Instance.
     */
    readonly state: pulumi.Output<string>;
    /**
     * Storage size in TBs
     */
    readonly storageSizeInTbs: pulumi.Output<number>;
    /**
     * Storage used in TBs
     */
    readonly storageUsedInTbs: pulumi.Output<number>;
    /**
     * The time the the Platform Instance was created. An RFC3339 formatted datetime string
     */
    readonly timeCreated: pulumi.Output<string>;
    /**
     * The time the Platform Instance was updated. An RFC3339 formatted datetime string
     */
    readonly timeUpdated: pulumi.Output<string>;
    /**
     * Number of total OCPUs allocated to the platform cluster
     */
    readonly totalOcpuCapacity: pulumi.Output<number>;
    /**
     * Create a BlockchainPlatform resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: BlockchainPlatformArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering BlockchainPlatform resources.
 */
export interface BlockchainPlatformState {
    /**
     * Base64 encoded text in ASCII character set of a Thirdparty CA Certificates archive file. The Archive file is a zip file containing third part CA Certificates, the ca key and certificate files used when issuing enrollment certificates (ECerts) and transaction certificates (TCerts). The chainfile (if it exists) contains the certificate chain which should be trusted for this CA, where the 1st in the chain is always the root CA certificate. File list in zip file [ca-cert.pem,ca-key.pem,ca-chain.pem(optional)].
     */
    caCertArchiveText?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Compartment Identifier
     */
    compartmentId?: pulumi.Input<string | undefined>;
    /**
     * Blockchain Platform component details.
     */
    componentDetails?: pulumi.Input<pulumi.Input<inputs.Blockchain.BlockchainPlatformComponentDetail>[] | undefined>;
    /**
     * Compute shape - STANDARD or ENTERPRISE_SMALL or ENTERPRISE_MEDIUM or ENTERPRISE_LARGE or ENTERPRISE_EXTRA_LARGE
     */
    computeShape?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Platform Instance Description
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Platform Instance Display name, can be renamed
     */
    displayName?: pulumi.Input<string | undefined>;
    /**
     * Identifier for a federated user
     */
    federatedUserId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * List of OcpuUtilization for all hosts
     */
    hostOcpuUtilizationInfos?: pulumi.Input<pulumi.Input<inputs.Blockchain.BlockchainPlatformHostOcpuUtilizationInfo>[] | undefined>;
    /**
     * IDCS access token with Identity Domain Administrator role
     */
    idcsAccessToken?: pulumi.Input<string | undefined>;
    /**
     * Bring your own license
     */
    isByol?: pulumi.Input<boolean | undefined>;
    /**
     * True for multi-AD blockchain plaforms, false for single-AD
     */
    isMultiAd?: pulumi.Input<boolean | undefined>;
    /**
     * An message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.
     */
    lifecycleDetails?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Type of Load Balancer shape - LB_100_MBPS or LB_400_MBPS. Default is LB_100_MBPS.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    loadBalancerShape?: pulumi.Input<string | undefined>;
    /**
     * Role of platform - founder or participant
     */
    platformRole?: pulumi.Input<string | undefined>;
    /**
     * Type of Platform shape - DEFAULT or CUSTOM
     */
    platformShapeType?: pulumi.Input<string | undefined>;
    /**
     * Platform version
     */
    platformVersion?: pulumi.Input<string | undefined>;
    /**
     * Number of replicas of service components like Rest Proxy, CA and Console
     */
    replicas?: pulumi.Input<inputs.Blockchain.BlockchainPlatformReplicas | undefined>;
    /**
     * Service endpoint URL, valid post-provisioning
     */
    serviceEndpoint?: pulumi.Input<string | undefined>;
    /**
     * The version of the Platform Instance.
     */
    serviceVersion?: pulumi.Input<string | undefined>;
    /**
     * The current state of the Platform Instance.
     */
    state?: pulumi.Input<string | undefined>;
    /**
     * Storage size in TBs
     */
    storageSizeInTbs?: pulumi.Input<number | undefined>;
    /**
     * Storage used in TBs
     */
    storageUsedInTbs?: pulumi.Input<number | undefined>;
    /**
     * The time the the Platform Instance was created. An RFC3339 formatted datetime string
     */
    timeCreated?: pulumi.Input<string | undefined>;
    /**
     * The time the Platform Instance was updated. An RFC3339 formatted datetime string
     */
    timeUpdated?: pulumi.Input<string | undefined>;
    /**
     * Number of total OCPUs allocated to the platform cluster
     */
    totalOcpuCapacity?: pulumi.Input<number | undefined>;
}
/**
 * The set of arguments for constructing a BlockchainPlatform resource.
 */
export interface BlockchainPlatformArgs {
    /**
     * Base64 encoded text in ASCII character set of a Thirdparty CA Certificates archive file. The Archive file is a zip file containing third part CA Certificates, the ca key and certificate files used when issuing enrollment certificates (ECerts) and transaction certificates (TCerts). The chainfile (if it exists) contains the certificate chain which should be trusted for this CA, where the 1st in the chain is always the root CA certificate. File list in zip file [ca-cert.pem,ca-key.pem,ca-chain.pem(optional)].
     */
    caCertArchiveText?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Compartment Identifier
     */
    compartmentId: pulumi.Input<string>;
    /**
     * Compute shape - STANDARD or ENTERPRISE_SMALL or ENTERPRISE_MEDIUM or ENTERPRISE_LARGE or ENTERPRISE_EXTRA_LARGE
     */
    computeShape: pulumi.Input<string>;
    /**
     * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. Example: `{"foo-namespace.bar-key": "value"}`
     */
    definedTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * (Updatable) Platform Instance Description
     */
    description?: pulumi.Input<string | undefined>;
    /**
     * Platform Instance Display name, can be renamed
     */
    displayName: pulumi.Input<string>;
    /**
     * Identifier for a federated user
     */
    federatedUserId?: pulumi.Input<string | undefined>;
    /**
     * (Updatable) Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only. Example: `{"bar-key": "value"}`
     */
    freeformTags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
    /**
     * IDCS access token with Identity Domain Administrator role
     */
    idcsAccessToken: pulumi.Input<string>;
    /**
     * Bring your own license
     */
    isByol?: pulumi.Input<boolean | undefined>;
    /**
     * (Updatable) Type of Load Balancer shape - LB_100_MBPS or LB_400_MBPS. Default is LB_100_MBPS.
     *
     *
     * ** IMPORTANT **
     * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values
     */
    loadBalancerShape?: pulumi.Input<string | undefined>;
    /**
     * Role of platform - founder or participant
     */
    platformRole: pulumi.Input<string>;
    /**
     * Platform version
     */
    platformVersion?: pulumi.Input<string | undefined>;
    /**
     * Number of replicas of service components like Rest Proxy, CA and Console
     */
    replicas?: pulumi.Input<inputs.Blockchain.BlockchainPlatformReplicas | undefined>;
    /**
     * Storage size in TBs
     */
    storageSizeInTbs?: pulumi.Input<number | undefined>;
    /**
     * Number of total OCPUs allocated to the platform cluster
     */
    totalOcpuCapacity?: pulumi.Input<number | undefined>;
}
//# sourceMappingURL=blockchainPlatform.d.ts.map