import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Manages a Healthcare Service.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as azure from "@pulumi/azure";
 *
 * const current = azure.core.getClientConfig({});
 * const example = new azure.healthcare.Service("example", {
 *     name: "uniquefhirname",
 *     resourceGroupName: "sample-resource-group",
 *     location: "westus2",
 *     kind: "fhir-R4",
 *     cosmosdbThroughput: 2000,
 *     identity: {
 *         type: "SystemAssigned",
 *     },
 *     accessPolicyObjectIds: current.then(current => current.objectId),
 *     configurationExportStorageAccountName: "teststorage",
 *     tags: {
 *         environment: "testenv",
 *         purpose: "AcceptanceTests",
 *     },
 *     authenticationConfiguration: {
 *         authority: "https://login.microsoftonline.com/$%7Bdata.azurerm_client_config.current.tenant_id%7D",
 *         audience: "https://azurehealthcareapis.com/",
 *         smartProxyEnabled: true,
 *     },
 *     corsConfiguration: {
 *         allowedOrigins: [
 *             "http://www.example.com",
 *             "http://www.example2.com",
 *         ],
 *         allowedHeaders: [
 *             "x-tempo-*",
 *             "x-tempo2-*",
 *         ],
 *         allowedMethods: [
 *             "GET",
 *             "PUT",
 *         ],
 *         maxAgeInSeconds: 500,
 *         allowCredentials: true,
 *     },
 * });
 * ```
 *
 * ## API Providers
 *
 * <!-- This section is generated, changes will be overwritten -->
 * This resource uses the following Azure API Providers:
 *
 * * `Microsoft.HealthcareApis` - 2022-12-01
 *
 * ## Import
 *
 * Healthcare Service can be imported using the resource`id`, e.g.
 *
 * ```sh
 * $ pulumi import azure:healthcare/service:Service example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource_group/providers/Microsoft.HealthcareApis/services/service_name
 * ```
 */
export declare class Service extends pulumi.CustomResource {
    /**
     * Get an existing Service 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?: ServiceState, opts?: pulumi.CustomResourceOptions): Service;
    /**
     * Returns true if the given object is an instance of Service.  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 Service;
    /**
     * A set of Azure object IDs that are allowed to access the Service. If not configured, the default value is the object id of the service principal or user that is running Terraform.
     */
    readonly accessPolicyObjectIds: pulumi.Output<string[] | undefined>;
    /**
     * An `authenticationConfiguration` block as defined below.
     */
    readonly authenticationConfiguration: pulumi.Output<outputs.healthcare.ServiceAuthenticationConfiguration>;
    /**
     * Specifies the name of the storage account which the operation configuration information is exported to.
     */
    readonly configurationExportStorageAccountName: pulumi.Output<string | undefined>;
    /**
     * A `corsConfiguration` block as defined below.
     */
    readonly corsConfiguration: pulumi.Output<outputs.healthcare.ServiceCorsConfiguration>;
    /**
     * A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.
     *
     * > **Note:** In order to use a `Custom Key` from Key Vault for encryption you must grant Azure Cosmos DB Service access to your key vault. For instructions on how to configure your Key Vault correctly please refer to the [product documentation](https://docs.microsoft.com/azure/cosmos-db/how-to-setup-cmk#add-an-access-policy-to-your-azure-key-vault-instance)
     */
    readonly cosmosdbKeyVaultKeyVersionlessId: pulumi.Output<string | undefined>;
    /**
     * The provisioned throughput for the backing database. Range of `400`-`100000`. Defaults to `1000`.
     */
    readonly cosmosdbThroughput: pulumi.Output<number | undefined>;
    /**
     * An `identity` block as defined below.
     */
    readonly identity: pulumi.Output<outputs.healthcare.ServiceIdentity | undefined>;
    /**
     * The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.
     */
    readonly kind: pulumi.Output<string | undefined>;
    /**
     * Specifies the supported Azure Region where the Service should be created. Changing this forces a new resource to be created.
     *
     * > **Note:** Not all locations support this resource. Some are `West US 2`, `North Central US`, and `UK West`.
     */
    readonly location: pulumi.Output<string>;
    /**
     * The name of the service instance. Used for service endpoint, must be unique within the audience. Changing this forces a new resource to be created.
     */
    readonly name: pulumi.Output<string>;
    /**
     * Whether public network access is enabled or disabled for this service instance. Defaults to `true`.
     */
    readonly publicNetworkAccessEnabled: pulumi.Output<boolean | undefined>;
    /**
     * The name of the Resource Group in which to create the Service. Changing this forces a new resource to be created.
     */
    readonly resourceGroupName: pulumi.Output<string>;
    /**
     * A mapping of tags to assign to the resource.
     */
    readonly tags: pulumi.Output<{
        [key: string]: string;
    } | undefined>;
    /**
     * Create a Service 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: ServiceArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * Input properties used for looking up and filtering Service resources.
 */
export interface ServiceState {
    /**
     * A set of Azure object IDs that are allowed to access the Service. If not configured, the default value is the object id of the service principal or user that is running Terraform.
     */
    accessPolicyObjectIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An `authenticationConfiguration` block as defined below.
     */
    authenticationConfiguration?: pulumi.Input<inputs.healthcare.ServiceAuthenticationConfiguration | undefined>;
    /**
     * Specifies the name of the storage account which the operation configuration information is exported to.
     */
    configurationExportStorageAccountName?: pulumi.Input<string | undefined>;
    /**
     * A `corsConfiguration` block as defined below.
     */
    corsConfiguration?: pulumi.Input<inputs.healthcare.ServiceCorsConfiguration | undefined>;
    /**
     * A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.
     *
     * > **Note:** In order to use a `Custom Key` from Key Vault for encryption you must grant Azure Cosmos DB Service access to your key vault. For instructions on how to configure your Key Vault correctly please refer to the [product documentation](https://docs.microsoft.com/azure/cosmos-db/how-to-setup-cmk#add-an-access-policy-to-your-azure-key-vault-instance)
     */
    cosmosdbKeyVaultKeyVersionlessId?: pulumi.Input<string | undefined>;
    /**
     * The provisioned throughput for the backing database. Range of `400`-`100000`. Defaults to `1000`.
     */
    cosmosdbThroughput?: pulumi.Input<number | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.healthcare.ServiceIdentity | undefined>;
    /**
     * The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.
     */
    kind?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure Region where the Service should be created. Changing this forces a new resource to be created.
     *
     * > **Note:** Not all locations support this resource. Some are `West US 2`, `North Central US`, and `UK West`.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The name of the service instance. Used for service endpoint, must be unique within the audience. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Whether public network access is enabled or disabled for this service instance. Defaults to `true`.
     */
    publicNetworkAccessEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the Resource Group in which to create the Service. Changing this forces a new resource to be created.
     */
    resourceGroupName?: pulumi.Input<string | undefined>;
    /**
     * A mapping of tags to assign to the resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
/**
 * The set of arguments for constructing a Service resource.
 */
export interface ServiceArgs {
    /**
     * A set of Azure object IDs that are allowed to access the Service. If not configured, the default value is the object id of the service principal or user that is running Terraform.
     */
    accessPolicyObjectIds?: pulumi.Input<pulumi.Input<string>[] | undefined>;
    /**
     * An `authenticationConfiguration` block as defined below.
     */
    authenticationConfiguration?: pulumi.Input<inputs.healthcare.ServiceAuthenticationConfiguration | undefined>;
    /**
     * Specifies the name of the storage account which the operation configuration information is exported to.
     */
    configurationExportStorageAccountName?: pulumi.Input<string | undefined>;
    /**
     * A `corsConfiguration` block as defined below.
     */
    corsConfiguration?: pulumi.Input<inputs.healthcare.ServiceCorsConfiguration | undefined>;
    /**
     * A versionless Key Vault Key ID for CMK encryption of the backing database. Changing this forces a new resource to be created.
     *
     * > **Note:** In order to use a `Custom Key` from Key Vault for encryption you must grant Azure Cosmos DB Service access to your key vault. For instructions on how to configure your Key Vault correctly please refer to the [product documentation](https://docs.microsoft.com/azure/cosmos-db/how-to-setup-cmk#add-an-access-policy-to-your-azure-key-vault-instance)
     */
    cosmosdbKeyVaultKeyVersionlessId?: pulumi.Input<string | undefined>;
    /**
     * The provisioned throughput for the backing database. Range of `400`-`100000`. Defaults to `1000`.
     */
    cosmosdbThroughput?: pulumi.Input<number | undefined>;
    /**
     * An `identity` block as defined below.
     */
    identity?: pulumi.Input<inputs.healthcare.ServiceIdentity | undefined>;
    /**
     * The type of the service. Values at time of publication are: `fhir`, `fhir-Stu3` and `fhir-R4`. Default value is `fhir`.
     */
    kind?: pulumi.Input<string | undefined>;
    /**
     * Specifies the supported Azure Region where the Service should be created. Changing this forces a new resource to be created.
     *
     * > **Note:** Not all locations support this resource. Some are `West US 2`, `North Central US`, and `UK West`.
     */
    location?: pulumi.Input<string | undefined>;
    /**
     * The name of the service instance. Used for service endpoint, must be unique within the audience. Changing this forces a new resource to be created.
     */
    name?: pulumi.Input<string | undefined>;
    /**
     * Whether public network access is enabled or disabled for this service instance. Defaults to `true`.
     */
    publicNetworkAccessEnabled?: pulumi.Input<boolean | undefined>;
    /**
     * The name of the Resource Group in which to create the Service. Changing this forces a new resource to be created.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * A mapping of tags to assign to the resource.
     */
    tags?: pulumi.Input<{
        [key: string]: pulumi.Input<string>;
    } | undefined>;
}
//# sourceMappingURL=service.d.ts.map