# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import copy
import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from ... import _utilities
from . import outputs
from ._enums import *

__all__ = [
    'AnalyticsConnectorDataLakeDataDestinationResponse',
    'AnalyticsConnectorFhirServiceDataSourceResponse',
    'AnalyticsConnectorFhirToParquetMappingResponse',
    'CorsConfigurationResponse',
    'DicomServiceAuthenticationConfigurationResponse',
    'FhirServiceAccessPolicyEntryResponse',
    'FhirServiceAcrConfigurationResponse',
    'FhirServiceAuthenticationConfigurationResponse',
    'FhirServiceCorsConfigurationResponse',
    'FhirServiceExportConfigurationResponse',
    'FhirServiceImportConfigurationResponse',
    'IotEventHubIngestionEndpointConfigurationResponse',
    'IotMappingPropertiesResponse',
    'PrivateEndpointConnectionResponse',
    'PrivateEndpointResponse',
    'PrivateLinkServiceConnectionStateResponse',
    'ResourceVersionPolicyConfigurationResponse',
    'ServiceAccessPolicyEntryResponse',
    'ServiceAcrConfigurationInfoResponse',
    'ServiceAuthenticationConfigurationInfoResponse',
    'ServiceCorsConfigurationInfoResponse',
    'ServiceCosmosDbConfigurationInfoResponse',
    'ServiceExportConfigurationInfoResponse',
    'ServiceImportConfigurationInfoResponse',
    'ServiceManagedIdentityResponseIdentity',
    'ServiceOciArtifactEntryResponse',
    'ServicesPropertiesResponse',
    'ServicesResourceResponseIdentity',
    'SystemDataResponse',
    'UserAssignedIdentityResponse',
    'WorkspaceResponseProperties',
]

@pulumi.output_type
class AnalyticsConnectorDataLakeDataDestinationResponse(dict):
    """
    The Data Lake data destination for Analytics Connector.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "dataLakeName":
            suggest = "data_lake_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AnalyticsConnectorDataLakeDataDestinationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AnalyticsConnectorDataLakeDataDestinationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AnalyticsConnectorDataLakeDataDestinationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 data_lake_name: str,
                 type: str,
                 name: Optional[str] = None):
        """
        The Data Lake data destination for Analytics Connector.
        :param str data_lake_name: The name for the Data Lake.
        :param str type: Type of data destination.
               Expected value is 'datalake'.
        :param str name: Name of data destination.
        """
        pulumi.set(__self__, "data_lake_name", data_lake_name)
        pulumi.set(__self__, "type", 'datalake')
        if name is not None:
            pulumi.set(__self__, "name", name)

    @property
    @pulumi.getter(name="dataLakeName")
    def data_lake_name(self) -> str:
        """
        The name for the Data Lake.
        """
        return pulumi.get(self, "data_lake_name")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data destination.
        Expected value is 'datalake'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def name(self) -> Optional[str]:
        """
        Name of data destination.
        """
        return pulumi.get(self, "name")


@pulumi.output_type
class AnalyticsConnectorFhirServiceDataSourceResponse(dict):
    """
    The FHIR service data source for Analytics Connector.
    """
    def __init__(__self__, *,
                 kind: str,
                 type: str,
                 url: str):
        """
        The FHIR service data source for Analytics Connector.
        :param str kind: The kind of FHIR Service.
        :param str type: Type of data source.
               Expected value is 'fhirservice'.
        :param str url: The URL of FHIR service.
        """
        pulumi.set(__self__, "kind", kind)
        pulumi.set(__self__, "type", 'fhirservice')
        pulumi.set(__self__, "url", url)

    @property
    @pulumi.getter
    def kind(self) -> str:
        """
        The kind of FHIR Service.
        """
        return pulumi.get(self, "kind")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data source.
        Expected value is 'fhirservice'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def url(self) -> str:
        """
        The URL of FHIR service.
        """
        return pulumi.get(self, "url")


@pulumi.output_type
class AnalyticsConnectorFhirToParquetMappingResponse(dict):
    """
    FHIR Service data mapping configuration for Analytics Connector.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "extensionSchemaReference":
            suggest = "extension_schema_reference"
        elif key == "filterConfigurationReference":
            suggest = "filter_configuration_reference"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in AnalyticsConnectorFhirToParquetMappingResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        AnalyticsConnectorFhirToParquetMappingResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        AnalyticsConnectorFhirToParquetMappingResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 type: str,
                 extension_schema_reference: Optional[str] = None,
                 filter_configuration_reference: Optional[str] = None):
        """
        FHIR Service data mapping configuration for Analytics Connector.
        :param str type: Type of data mapping.
               Expected value is 'fhirToParquet'.
        :param str extension_schema_reference: Artifact reference for extension schema.
        :param str filter_configuration_reference: Artifact reference for filter configurations.
        """
        pulumi.set(__self__, "type", 'fhirToParquet')
        if extension_schema_reference is not None:
            pulumi.set(__self__, "extension_schema_reference", extension_schema_reference)
        if filter_configuration_reference is not None:
            pulumi.set(__self__, "filter_configuration_reference", filter_configuration_reference)

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of data mapping.
        Expected value is 'fhirToParquet'.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="extensionSchemaReference")
    def extension_schema_reference(self) -> Optional[str]:
        """
        Artifact reference for extension schema.
        """
        return pulumi.get(self, "extension_schema_reference")

    @property
    @pulumi.getter(name="filterConfigurationReference")
    def filter_configuration_reference(self) -> Optional[str]:
        """
        Artifact reference for filter configurations.
        """
        return pulumi.get(self, "filter_configuration_reference")


@pulumi.output_type
class CorsConfigurationResponse(dict):
    """
    The settings for the CORS configuration of the service instance.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "allowCredentials":
            suggest = "allow_credentials"
        elif key == "maxAge":
            suggest = "max_age"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in CorsConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        CorsConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        CorsConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 allow_credentials: Optional[bool] = None,
                 headers: Optional[Sequence[str]] = None,
                 max_age: Optional[int] = None,
                 methods: Optional[Sequence[str]] = None,
                 origins: Optional[Sequence[str]] = None):
        """
        The settings for the CORS configuration of the service instance.
        :param bool allow_credentials: If credentials are allowed via CORS.
        :param Sequence[str] headers: The headers to be allowed via CORS.
        :param int max_age: The max age to be allowed via CORS.
        :param Sequence[str] methods: The methods to be allowed via CORS.
        :param Sequence[str] origins: The origins to be allowed via CORS.
        """
        if allow_credentials is not None:
            pulumi.set(__self__, "allow_credentials", allow_credentials)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if max_age is not None:
            pulumi.set(__self__, "max_age", max_age)
        if methods is not None:
            pulumi.set(__self__, "methods", methods)
        if origins is not None:
            pulumi.set(__self__, "origins", origins)

    @property
    @pulumi.getter(name="allowCredentials")
    def allow_credentials(self) -> Optional[bool]:
        """
        If credentials are allowed via CORS.
        """
        return pulumi.get(self, "allow_credentials")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Sequence[str]]:
        """
        The headers to be allowed via CORS.
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="maxAge")
    def max_age(self) -> Optional[int]:
        """
        The max age to be allowed via CORS.
        """
        return pulumi.get(self, "max_age")

    @property
    @pulumi.getter
    def methods(self) -> Optional[Sequence[str]]:
        """
        The methods to be allowed via CORS.
        """
        return pulumi.get(self, "methods")

    @property
    @pulumi.getter
    def origins(self) -> Optional[Sequence[str]]:
        """
        The origins to be allowed via CORS.
        """
        return pulumi.get(self, "origins")


@pulumi.output_type
class DicomServiceAuthenticationConfigurationResponse(dict):
    """
    Authentication configuration information
    """
    def __init__(__self__, *,
                 audiences: Sequence[str],
                 authority: str):
        """
        Authentication configuration information
        :param Sequence[str] audiences: The audiences for the service
        :param str authority: The authority url for the service
        """
        pulumi.set(__self__, "audiences", audiences)
        pulumi.set(__self__, "authority", authority)

    @property
    @pulumi.getter
    def audiences(self) -> Sequence[str]:
        """
        The audiences for the service
        """
        return pulumi.get(self, "audiences")

    @property
    @pulumi.getter
    def authority(self) -> str:
        """
        The authority url for the service
        """
        return pulumi.get(self, "authority")


@pulumi.output_type
class FhirServiceAccessPolicyEntryResponse(dict):
    """
    An access policy entry.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "objectId":
            suggest = "object_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceAccessPolicyEntryResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceAccessPolicyEntryResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceAccessPolicyEntryResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 object_id: str):
        """
        An access policy entry.
        :param str object_id: An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.
        """
        pulumi.set(__self__, "object_id", object_id)

    @property
    @pulumi.getter(name="objectId")
    def object_id(self) -> str:
        """
        An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.
        """
        return pulumi.get(self, "object_id")


@pulumi.output_type
class FhirServiceAcrConfigurationResponse(dict):
    """
    Azure container registry configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "loginServers":
            suggest = "login_servers"
        elif key == "ociArtifacts":
            suggest = "oci_artifacts"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceAcrConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceAcrConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceAcrConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 login_servers: Optional[Sequence[str]] = None,
                 oci_artifacts: Optional[Sequence['outputs.ServiceOciArtifactEntryResponse']] = None):
        """
        Azure container registry configuration information
        :param Sequence[str] login_servers: The list of the Azure container registry login servers.
        :param Sequence['ServiceOciArtifactEntryResponse'] oci_artifacts: The list of Open Container Initiative (OCI) artifacts.
        """
        if login_servers is not None:
            pulumi.set(__self__, "login_servers", login_servers)
        if oci_artifacts is not None:
            pulumi.set(__self__, "oci_artifacts", oci_artifacts)

    @property
    @pulumi.getter(name="loginServers")
    def login_servers(self) -> Optional[Sequence[str]]:
        """
        The list of the Azure container registry login servers.
        """
        return pulumi.get(self, "login_servers")

    @property
    @pulumi.getter(name="ociArtifacts")
    def oci_artifacts(self) -> Optional[Sequence['outputs.ServiceOciArtifactEntryResponse']]:
        """
        The list of Open Container Initiative (OCI) artifacts.
        """
        return pulumi.get(self, "oci_artifacts")


@pulumi.output_type
class FhirServiceAuthenticationConfigurationResponse(dict):
    """
    Authentication configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "smartProxyEnabled":
            suggest = "smart_proxy_enabled"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceAuthenticationConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceAuthenticationConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceAuthenticationConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 audience: Optional[str] = None,
                 authority: Optional[str] = None,
                 smart_proxy_enabled: Optional[bool] = None):
        """
        Authentication configuration information
        :param str audience: The audience url for the service
        :param str authority: The authority url for the service
        :param bool smart_proxy_enabled: If the SMART on FHIR proxy is enabled
        """
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authority is not None:
            pulumi.set(__self__, "authority", authority)
        if smart_proxy_enabled is not None:
            pulumi.set(__self__, "smart_proxy_enabled", smart_proxy_enabled)

    @property
    @pulumi.getter
    def audience(self) -> Optional[str]:
        """
        The audience url for the service
        """
        return pulumi.get(self, "audience")

    @property
    @pulumi.getter
    def authority(self) -> Optional[str]:
        """
        The authority url for the service
        """
        return pulumi.get(self, "authority")

    @property
    @pulumi.getter(name="smartProxyEnabled")
    def smart_proxy_enabled(self) -> Optional[bool]:
        """
        If the SMART on FHIR proxy is enabled
        """
        return pulumi.get(self, "smart_proxy_enabled")


@pulumi.output_type
class FhirServiceCorsConfigurationResponse(dict):
    """
    The settings for the CORS configuration of the service instance.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "allowCredentials":
            suggest = "allow_credentials"
        elif key == "maxAge":
            suggest = "max_age"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceCorsConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceCorsConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceCorsConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 allow_credentials: Optional[bool] = None,
                 headers: Optional[Sequence[str]] = None,
                 max_age: Optional[int] = None,
                 methods: Optional[Sequence[str]] = None,
                 origins: Optional[Sequence[str]] = None):
        """
        The settings for the CORS configuration of the service instance.
        :param bool allow_credentials: If credentials are allowed via CORS.
        :param Sequence[str] headers: The headers to be allowed via CORS.
        :param int max_age: The max age to be allowed via CORS.
        :param Sequence[str] methods: The methods to be allowed via CORS.
        :param Sequence[str] origins: The origins to be allowed via CORS.
        """
        if allow_credentials is not None:
            pulumi.set(__self__, "allow_credentials", allow_credentials)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if max_age is not None:
            pulumi.set(__self__, "max_age", max_age)
        if methods is not None:
            pulumi.set(__self__, "methods", methods)
        if origins is not None:
            pulumi.set(__self__, "origins", origins)

    @property
    @pulumi.getter(name="allowCredentials")
    def allow_credentials(self) -> Optional[bool]:
        """
        If credentials are allowed via CORS.
        """
        return pulumi.get(self, "allow_credentials")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Sequence[str]]:
        """
        The headers to be allowed via CORS.
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="maxAge")
    def max_age(self) -> Optional[int]:
        """
        The max age to be allowed via CORS.
        """
        return pulumi.get(self, "max_age")

    @property
    @pulumi.getter
    def methods(self) -> Optional[Sequence[str]]:
        """
        The methods to be allowed via CORS.
        """
        return pulumi.get(self, "methods")

    @property
    @pulumi.getter
    def origins(self) -> Optional[Sequence[str]]:
        """
        The origins to be allowed via CORS.
        """
        return pulumi.get(self, "origins")


@pulumi.output_type
class FhirServiceExportConfigurationResponse(dict):
    """
    Export operation configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "storageAccountName":
            suggest = "storage_account_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceExportConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceExportConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceExportConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 storage_account_name: Optional[str] = None):
        """
        Export operation configuration information
        :param str storage_account_name: The name of the default export storage account.
        """
        if storage_account_name is not None:
            pulumi.set(__self__, "storage_account_name", storage_account_name)

    @property
    @pulumi.getter(name="storageAccountName")
    def storage_account_name(self) -> Optional[str]:
        """
        The name of the default export storage account.
        """
        return pulumi.get(self, "storage_account_name")


@pulumi.output_type
class FhirServiceImportConfigurationResponse(dict):
    """
    Import operation configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "initialImportMode":
            suggest = "initial_import_mode"
        elif key == "integrationDataStore":
            suggest = "integration_data_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in FhirServiceImportConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        FhirServiceImportConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        FhirServiceImportConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 enabled: Optional[bool] = None,
                 initial_import_mode: Optional[bool] = None,
                 integration_data_store: Optional[str] = None):
        """
        Import operation configuration information
        :param bool enabled: If the import operation is enabled.
        :param bool initial_import_mode: If the FHIR service is in InitialImportMode.
        :param str integration_data_store: The name of the default integration storage account.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if initial_import_mode is not None:
            pulumi.set(__self__, "initial_import_mode", initial_import_mode)
        if integration_data_store is not None:
            pulumi.set(__self__, "integration_data_store", integration_data_store)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[bool]:
        """
        If the import operation is enabled.
        """
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter(name="initialImportMode")
    def initial_import_mode(self) -> Optional[bool]:
        """
        If the FHIR service is in InitialImportMode.
        """
        return pulumi.get(self, "initial_import_mode")

    @property
    @pulumi.getter(name="integrationDataStore")
    def integration_data_store(self) -> Optional[str]:
        """
        The name of the default integration storage account.
        """
        return pulumi.get(self, "integration_data_store")


@pulumi.output_type
class IotEventHubIngestionEndpointConfigurationResponse(dict):
    """
    Event Hub ingestion endpoint configuration
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "consumerGroup":
            suggest = "consumer_group"
        elif key == "eventHubName":
            suggest = "event_hub_name"
        elif key == "fullyQualifiedEventHubNamespace":
            suggest = "fully_qualified_event_hub_namespace"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in IotEventHubIngestionEndpointConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        IotEventHubIngestionEndpointConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        IotEventHubIngestionEndpointConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 consumer_group: Optional[str] = None,
                 event_hub_name: Optional[str] = None,
                 fully_qualified_event_hub_namespace: Optional[str] = None):
        """
        Event Hub ingestion endpoint configuration
        :param str consumer_group: Consumer group of the event hub to connected to.
        :param str event_hub_name: Event Hub name to connect to.
        :param str fully_qualified_event_hub_namespace: Fully qualified namespace of the Event Hub to connect to.
        """
        if consumer_group is not None:
            pulumi.set(__self__, "consumer_group", consumer_group)
        if event_hub_name is not None:
            pulumi.set(__self__, "event_hub_name", event_hub_name)
        if fully_qualified_event_hub_namespace is not None:
            pulumi.set(__self__, "fully_qualified_event_hub_namespace", fully_qualified_event_hub_namespace)

    @property
    @pulumi.getter(name="consumerGroup")
    def consumer_group(self) -> Optional[str]:
        """
        Consumer group of the event hub to connected to.
        """
        return pulumi.get(self, "consumer_group")

    @property
    @pulumi.getter(name="eventHubName")
    def event_hub_name(self) -> Optional[str]:
        """
        Event Hub name to connect to.
        """
        return pulumi.get(self, "event_hub_name")

    @property
    @pulumi.getter(name="fullyQualifiedEventHubNamespace")
    def fully_qualified_event_hub_namespace(self) -> Optional[str]:
        """
        Fully qualified namespace of the Event Hub to connect to.
        """
        return pulumi.get(self, "fully_qualified_event_hub_namespace")


@pulumi.output_type
class IotMappingPropertiesResponse(dict):
    """
    The mapping content.
    """
    def __init__(__self__, *,
                 content: Optional[Any] = None):
        """
        The mapping content.
        :param Any content: The mapping.
        """
        if content is not None:
            pulumi.set(__self__, "content", content)

    @property
    @pulumi.getter
    def content(self) -> Optional[Any]:
        """
        The mapping.
        """
        return pulumi.get(self, "content")


@pulumi.output_type
class PrivateEndpointConnectionResponse(dict):
    """
    The Private Endpoint Connection resource.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "privateLinkServiceConnectionState":
            suggest = "private_link_service_connection_state"
        elif key == "provisioningState":
            suggest = "provisioning_state"
        elif key == "privateEndpoint":
            suggest = "private_endpoint"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrivateEndpointConnectionResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrivateEndpointConnectionResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrivateEndpointConnectionResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 id: str,
                 name: str,
                 private_link_service_connection_state: 'outputs.PrivateLinkServiceConnectionStateResponse',
                 provisioning_state: str,
                 type: str,
                 private_endpoint: Optional['outputs.PrivateEndpointResponse'] = None):
        """
        The Private Endpoint Connection resource.
        :param str id: Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
        :param str name: The name of the resource
        :param 'PrivateLinkServiceConnectionStateResponse' private_link_service_connection_state: A collection of information about the state of the connection between service consumer and provider.
        :param str provisioning_state: The provisioning state of the private endpoint connection resource.
        :param str type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
        :param 'PrivateEndpointResponse' private_endpoint: The resource of private end point.
        """
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "private_link_service_connection_state", private_link_service_connection_state)
        pulumi.set(__self__, "provisioning_state", provisioning_state)
        pulumi.set(__self__, "type", type)
        if private_endpoint is not None:
            pulumi.set(__self__, "private_endpoint", private_endpoint)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
        """
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def name(self) -> str:
        """
        The name of the resource
        """
        return pulumi.get(self, "name")

    @property
    @pulumi.getter(name="privateLinkServiceConnectionState")
    def private_link_service_connection_state(self) -> 'outputs.PrivateLinkServiceConnectionStateResponse':
        """
        A collection of information about the state of the connection between service consumer and provider.
        """
        return pulumi.get(self, "private_link_service_connection_state")

    @property
    @pulumi.getter(name="provisioningState")
    def provisioning_state(self) -> str:
        """
        The provisioning state of the private endpoint connection resource.
        """
        return pulumi.get(self, "provisioning_state")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="privateEndpoint")
    def private_endpoint(self) -> Optional['outputs.PrivateEndpointResponse']:
        """
        The resource of private end point.
        """
        return pulumi.get(self, "private_endpoint")


@pulumi.output_type
class PrivateEndpointResponse(dict):
    """
    The Private Endpoint resource.
    """
    def __init__(__self__, *,
                 id: str):
        """
        The Private Endpoint resource.
        :param str id: The ARM identifier for Private Endpoint
        """
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter
    def id(self) -> str:
        """
        The ARM identifier for Private Endpoint
        """
        return pulumi.get(self, "id")


@pulumi.output_type
class PrivateLinkServiceConnectionStateResponse(dict):
    """
    A collection of information about the state of the connection between service consumer and provider.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "actionsRequired":
            suggest = "actions_required"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in PrivateLinkServiceConnectionStateResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        PrivateLinkServiceConnectionStateResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        PrivateLinkServiceConnectionStateResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 actions_required: Optional[str] = None,
                 description: Optional[str] = None,
                 status: Optional[str] = None):
        """
        A collection of information about the state of the connection between service consumer and provider.
        :param str actions_required: A message indicating if changes on the service provider require any updates on the consumer.
        :param str description: The reason for approval/rejection of the connection.
        :param str status: Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
        """
        if actions_required is not None:
            pulumi.set(__self__, "actions_required", actions_required)
        if description is not None:
            pulumi.set(__self__, "description", description)
        if status is not None:
            pulumi.set(__self__, "status", status)

    @property
    @pulumi.getter(name="actionsRequired")
    def actions_required(self) -> Optional[str]:
        """
        A message indicating if changes on the service provider require any updates on the consumer.
        """
        return pulumi.get(self, "actions_required")

    @property
    @pulumi.getter
    def description(self) -> Optional[str]:
        """
        The reason for approval/rejection of the connection.
        """
        return pulumi.get(self, "description")

    @property
    @pulumi.getter
    def status(self) -> Optional[str]:
        """
        Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service.
        """
        return pulumi.get(self, "status")


@pulumi.output_type
class ResourceVersionPolicyConfigurationResponse(dict):
    """
    The settings for history tracking for FHIR resources.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceTypeOverrides":
            suggest = "resource_type_overrides"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ResourceVersionPolicyConfigurationResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ResourceVersionPolicyConfigurationResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ResourceVersionPolicyConfigurationResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 default: Optional[str] = None,
                 resource_type_overrides: Optional[Mapping[str, str]] = None):
        """
        The settings for history tracking for FHIR resources.
        :param str default: The default value for tracking history across all resources.
        :param Mapping[str, str] resource_type_overrides: A list of FHIR Resources and their version policy overrides.
        """
        if default is not None:
            pulumi.set(__self__, "default", default)
        if resource_type_overrides is not None:
            pulumi.set(__self__, "resource_type_overrides", resource_type_overrides)

    @property
    @pulumi.getter
    def default(self) -> Optional[str]:
        """
        The default value for tracking history across all resources.
        """
        return pulumi.get(self, "default")

    @property
    @pulumi.getter(name="resourceTypeOverrides")
    def resource_type_overrides(self) -> Optional[Mapping[str, str]]:
        """
        A list of FHIR Resources and their version policy overrides.
        """
        return pulumi.get(self, "resource_type_overrides")


@pulumi.output_type
class ServiceAccessPolicyEntryResponse(dict):
    """
    An access policy entry.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "objectId":
            suggest = "object_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceAccessPolicyEntryResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceAccessPolicyEntryResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceAccessPolicyEntryResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 object_id: str):
        """
        An access policy entry.
        :param str object_id: An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.
        """
        pulumi.set(__self__, "object_id", object_id)

    @property
    @pulumi.getter(name="objectId")
    def object_id(self) -> str:
        """
        An Azure AD object ID (User or Apps) that is allowed access to the FHIR service.
        """
        return pulumi.get(self, "object_id")


@pulumi.output_type
class ServiceAcrConfigurationInfoResponse(dict):
    """
    Azure container registry configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "loginServers":
            suggest = "login_servers"
        elif key == "ociArtifacts":
            suggest = "oci_artifacts"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceAcrConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceAcrConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceAcrConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 login_servers: Optional[Sequence[str]] = None,
                 oci_artifacts: Optional[Sequence['outputs.ServiceOciArtifactEntryResponse']] = None):
        """
        Azure container registry configuration information
        :param Sequence[str] login_servers: The list of the ACR login servers.
        :param Sequence['ServiceOciArtifactEntryResponse'] oci_artifacts: The list of Open Container Initiative (OCI) artifacts.
        """
        if login_servers is not None:
            pulumi.set(__self__, "login_servers", login_servers)
        if oci_artifacts is not None:
            pulumi.set(__self__, "oci_artifacts", oci_artifacts)

    @property
    @pulumi.getter(name="loginServers")
    def login_servers(self) -> Optional[Sequence[str]]:
        """
        The list of the ACR login servers.
        """
        return pulumi.get(self, "login_servers")

    @property
    @pulumi.getter(name="ociArtifacts")
    def oci_artifacts(self) -> Optional[Sequence['outputs.ServiceOciArtifactEntryResponse']]:
        """
        The list of Open Container Initiative (OCI) artifacts.
        """
        return pulumi.get(self, "oci_artifacts")


@pulumi.output_type
class ServiceAuthenticationConfigurationInfoResponse(dict):
    """
    Authentication configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "smartProxyEnabled":
            suggest = "smart_proxy_enabled"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceAuthenticationConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceAuthenticationConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceAuthenticationConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 audience: Optional[str] = None,
                 authority: Optional[str] = None,
                 smart_proxy_enabled: Optional[bool] = None):
        """
        Authentication configuration information
        :param str audience: The audience url for the service
        :param str authority: The authority url for the service
        :param bool smart_proxy_enabled: If the SMART on FHIR proxy is enabled
        """
        if audience is not None:
            pulumi.set(__self__, "audience", audience)
        if authority is not None:
            pulumi.set(__self__, "authority", authority)
        if smart_proxy_enabled is not None:
            pulumi.set(__self__, "smart_proxy_enabled", smart_proxy_enabled)

    @property
    @pulumi.getter
    def audience(self) -> Optional[str]:
        """
        The audience url for the service
        """
        return pulumi.get(self, "audience")

    @property
    @pulumi.getter
    def authority(self) -> Optional[str]:
        """
        The authority url for the service
        """
        return pulumi.get(self, "authority")

    @property
    @pulumi.getter(name="smartProxyEnabled")
    def smart_proxy_enabled(self) -> Optional[bool]:
        """
        If the SMART on FHIR proxy is enabled
        """
        return pulumi.get(self, "smart_proxy_enabled")


@pulumi.output_type
class ServiceCorsConfigurationInfoResponse(dict):
    """
    The settings for the CORS configuration of the service instance.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "allowCredentials":
            suggest = "allow_credentials"
        elif key == "maxAge":
            suggest = "max_age"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceCorsConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceCorsConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceCorsConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 allow_credentials: Optional[bool] = None,
                 headers: Optional[Sequence[str]] = None,
                 max_age: Optional[int] = None,
                 methods: Optional[Sequence[str]] = None,
                 origins: Optional[Sequence[str]] = None):
        """
        The settings for the CORS configuration of the service instance.
        :param bool allow_credentials: If credentials are allowed via CORS.
        :param Sequence[str] headers: The headers to be allowed via CORS.
        :param int max_age: The max age to be allowed via CORS.
        :param Sequence[str] methods: The methods to be allowed via CORS.
        :param Sequence[str] origins: The origins to be allowed via CORS.
        """
        if allow_credentials is not None:
            pulumi.set(__self__, "allow_credentials", allow_credentials)
        if headers is not None:
            pulumi.set(__self__, "headers", headers)
        if max_age is not None:
            pulumi.set(__self__, "max_age", max_age)
        if methods is not None:
            pulumi.set(__self__, "methods", methods)
        if origins is not None:
            pulumi.set(__self__, "origins", origins)

    @property
    @pulumi.getter(name="allowCredentials")
    def allow_credentials(self) -> Optional[bool]:
        """
        If credentials are allowed via CORS.
        """
        return pulumi.get(self, "allow_credentials")

    @property
    @pulumi.getter
    def headers(self) -> Optional[Sequence[str]]:
        """
        The headers to be allowed via CORS.
        """
        return pulumi.get(self, "headers")

    @property
    @pulumi.getter(name="maxAge")
    def max_age(self) -> Optional[int]:
        """
        The max age to be allowed via CORS.
        """
        return pulumi.get(self, "max_age")

    @property
    @pulumi.getter
    def methods(self) -> Optional[Sequence[str]]:
        """
        The methods to be allowed via CORS.
        """
        return pulumi.get(self, "methods")

    @property
    @pulumi.getter
    def origins(self) -> Optional[Sequence[str]]:
        """
        The origins to be allowed via CORS.
        """
        return pulumi.get(self, "origins")


@pulumi.output_type
class ServiceCosmosDbConfigurationInfoResponse(dict):
    """
    The settings for the Cosmos DB database backing the service.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "keyVaultKeyUri":
            suggest = "key_vault_key_uri"
        elif key == "offerThroughput":
            suggest = "offer_throughput"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceCosmosDbConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceCosmosDbConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceCosmosDbConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 key_vault_key_uri: Optional[str] = None,
                 offer_throughput: Optional[int] = None):
        """
        The settings for the Cosmos DB database backing the service.
        :param str key_vault_key_uri: The URI of the customer-managed key for the backing database.
        :param int offer_throughput: The provisioned throughput for the backing database.
        """
        if key_vault_key_uri is not None:
            pulumi.set(__self__, "key_vault_key_uri", key_vault_key_uri)
        if offer_throughput is not None:
            pulumi.set(__self__, "offer_throughput", offer_throughput)

    @property
    @pulumi.getter(name="keyVaultKeyUri")
    def key_vault_key_uri(self) -> Optional[str]:
        """
        The URI of the customer-managed key for the backing database.
        """
        return pulumi.get(self, "key_vault_key_uri")

    @property
    @pulumi.getter(name="offerThroughput")
    def offer_throughput(self) -> Optional[int]:
        """
        The provisioned throughput for the backing database.
        """
        return pulumi.get(self, "offer_throughput")


@pulumi.output_type
class ServiceExportConfigurationInfoResponse(dict):
    """
    Export operation configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "storageAccountName":
            suggest = "storage_account_name"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceExportConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceExportConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceExportConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 storage_account_name: Optional[str] = None):
        """
        Export operation configuration information
        :param str storage_account_name: The name of the default export storage account.
        """
        if storage_account_name is not None:
            pulumi.set(__self__, "storage_account_name", storage_account_name)

    @property
    @pulumi.getter(name="storageAccountName")
    def storage_account_name(self) -> Optional[str]:
        """
        The name of the default export storage account.
        """
        return pulumi.get(self, "storage_account_name")


@pulumi.output_type
class ServiceImportConfigurationInfoResponse(dict):
    """
    Import operation configuration information
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "initialImportMode":
            suggest = "initial_import_mode"
        elif key == "integrationDataStore":
            suggest = "integration_data_store"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceImportConfigurationInfoResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceImportConfigurationInfoResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceImportConfigurationInfoResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 enabled: Optional[bool] = None,
                 initial_import_mode: Optional[bool] = None,
                 integration_data_store: Optional[str] = None):
        """
        Import operation configuration information
        :param bool enabled: If the import operation is enabled.
        :param bool initial_import_mode: If the FHIR service is in InitialImportMode.
        :param str integration_data_store: The name of the default integration storage account.
        """
        if enabled is not None:
            pulumi.set(__self__, "enabled", enabled)
        if initial_import_mode is not None:
            pulumi.set(__self__, "initial_import_mode", initial_import_mode)
        if integration_data_store is not None:
            pulumi.set(__self__, "integration_data_store", integration_data_store)

    @property
    @pulumi.getter
    def enabled(self) -> Optional[bool]:
        """
        If the import operation is enabled.
        """
        return pulumi.get(self, "enabled")

    @property
    @pulumi.getter(name="initialImportMode")
    def initial_import_mode(self) -> Optional[bool]:
        """
        If the FHIR service is in InitialImportMode.
        """
        return pulumi.get(self, "initial_import_mode")

    @property
    @pulumi.getter(name="integrationDataStore")
    def integration_data_store(self) -> Optional[str]:
        """
        The name of the default integration storage account.
        """
        return pulumi.get(self, "integration_data_store")


@pulumi.output_type
class ServiceManagedIdentityResponseIdentity(dict):
    """
    Setting indicating whether the service has a managed identity associated with it.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "principalId":
            suggest = "principal_id"
        elif key == "tenantId":
            suggest = "tenant_id"
        elif key == "userAssignedIdentities":
            suggest = "user_assigned_identities"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceManagedIdentityResponseIdentity. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceManagedIdentityResponseIdentity.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceManagedIdentityResponseIdentity.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 principal_id: str,
                 tenant_id: str,
                 type: str,
                 user_assigned_identities: Optional[Mapping[str, 'outputs.UserAssignedIdentityResponse']] = None):
        """
        Setting indicating whether the service has a managed identity associated with it.
        :param str principal_id: The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.
        :param str tenant_id: The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.
        :param str type: Type of identity being specified, currently SystemAssigned and None are allowed.
        :param Mapping[str, 'UserAssignedIdentityResponse'] user_assigned_identities: The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.
        """
        pulumi.set(__self__, "principal_id", principal_id)
        pulumi.set(__self__, "tenant_id", tenant_id)
        pulumi.set(__self__, "type", type)
        if user_assigned_identities is not None:
            pulumi.set(__self__, "user_assigned_identities", user_assigned_identities)

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> str:
        """
        The service principal ID of the system assigned identity. This property will only be provided for a system assigned identity.
        """
        return pulumi.get(self, "principal_id")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> str:
        """
        The tenant ID of the system assigned identity. This property will only be provided for a system assigned identity.
        """
        return pulumi.get(self, "tenant_id")

    @property
    @pulumi.getter
    def type(self) -> str:
        """
        Type of identity being specified, currently SystemAssigned and None are allowed.
        """
        return pulumi.get(self, "type")

    @property
    @pulumi.getter(name="userAssignedIdentities")
    def user_assigned_identities(self) -> Optional[Mapping[str, 'outputs.UserAssignedIdentityResponse']]:
        """
        The set of user assigned identities associated with the resource. The userAssignedIdentities dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. The dictionary values can be empty objects ({}) in requests.
        """
        return pulumi.get(self, "user_assigned_identities")


@pulumi.output_type
class ServiceOciArtifactEntryResponse(dict):
    """
    An Open Container Initiative (OCI) artifact.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "imageName":
            suggest = "image_name"
        elif key == "loginServer":
            suggest = "login_server"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServiceOciArtifactEntryResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServiceOciArtifactEntryResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServiceOciArtifactEntryResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 digest: Optional[str] = None,
                 image_name: Optional[str] = None,
                 login_server: Optional[str] = None):
        """
        An Open Container Initiative (OCI) artifact.
        :param str digest: The artifact digest.
        :param str image_name: The artifact name.
        :param str login_server: The Azure Container Registry login server.
        """
        if digest is not None:
            pulumi.set(__self__, "digest", digest)
        if image_name is not None:
            pulumi.set(__self__, "image_name", image_name)
        if login_server is not None:
            pulumi.set(__self__, "login_server", login_server)

    @property
    @pulumi.getter
    def digest(self) -> Optional[str]:
        """
        The artifact digest.
        """
        return pulumi.get(self, "digest")

    @property
    @pulumi.getter(name="imageName")
    def image_name(self) -> Optional[str]:
        """
        The artifact name.
        """
        return pulumi.get(self, "image_name")

    @property
    @pulumi.getter(name="loginServer")
    def login_server(self) -> Optional[str]:
        """
        The Azure Container Registry login server.
        """
        return pulumi.get(self, "login_server")


@pulumi.output_type
class ServicesPropertiesResponse(dict):
    """
    The properties of a service instance.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "provisioningState":
            suggest = "provisioning_state"
        elif key == "accessPolicies":
            suggest = "access_policies"
        elif key == "acrConfiguration":
            suggest = "acr_configuration"
        elif key == "authenticationConfiguration":
            suggest = "authentication_configuration"
        elif key == "corsConfiguration":
            suggest = "cors_configuration"
        elif key == "cosmosDbConfiguration":
            suggest = "cosmos_db_configuration"
        elif key == "exportConfiguration":
            suggest = "export_configuration"
        elif key == "importConfiguration":
            suggest = "import_configuration"
        elif key == "privateEndpointConnections":
            suggest = "private_endpoint_connections"
        elif key == "publicNetworkAccess":
            suggest = "public_network_access"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServicesPropertiesResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServicesPropertiesResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServicesPropertiesResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 provisioning_state: str,
                 access_policies: Optional[Sequence['outputs.ServiceAccessPolicyEntryResponse']] = None,
                 acr_configuration: Optional['outputs.ServiceAcrConfigurationInfoResponse'] = None,
                 authentication_configuration: Optional['outputs.ServiceAuthenticationConfigurationInfoResponse'] = None,
                 cors_configuration: Optional['outputs.ServiceCorsConfigurationInfoResponse'] = None,
                 cosmos_db_configuration: Optional['outputs.ServiceCosmosDbConfigurationInfoResponse'] = None,
                 export_configuration: Optional['outputs.ServiceExportConfigurationInfoResponse'] = None,
                 import_configuration: Optional['outputs.ServiceImportConfigurationInfoResponse'] = None,
                 private_endpoint_connections: Optional[Sequence['outputs.PrivateEndpointConnectionResponse']] = None,
                 public_network_access: Optional[str] = None):
        """
        The properties of a service instance.
        :param str provisioning_state: The provisioning state.
        :param Sequence['ServiceAccessPolicyEntryResponse'] access_policies: The access policies of the service instance.
        :param 'ServiceAcrConfigurationInfoResponse' acr_configuration: The azure container registry settings used for convert data operation of the service instance.
        :param 'ServiceAuthenticationConfigurationInfoResponse' authentication_configuration: The authentication configuration for the service instance.
        :param 'ServiceCorsConfigurationInfoResponse' cors_configuration: The settings for the CORS configuration of the service instance.
        :param 'ServiceCosmosDbConfigurationInfoResponse' cosmos_db_configuration: The settings for the Cosmos DB database backing the service.
        :param 'ServiceExportConfigurationInfoResponse' export_configuration: The settings for the export operation of the service instance.
        :param 'ServiceImportConfigurationInfoResponse' import_configuration: The settings for the import operation of the service instance.
        :param Sequence['PrivateEndpointConnectionResponse'] private_endpoint_connections: The list of private endpoint connections that are set up for this resource.
        :param str public_network_access: Control permission for data plane traffic coming from public networks while private endpoint is enabled.
        """
        pulumi.set(__self__, "provisioning_state", provisioning_state)
        if access_policies is not None:
            pulumi.set(__self__, "access_policies", access_policies)
        if acr_configuration is not None:
            pulumi.set(__self__, "acr_configuration", acr_configuration)
        if authentication_configuration is not None:
            pulumi.set(__self__, "authentication_configuration", authentication_configuration)
        if cors_configuration is not None:
            pulumi.set(__self__, "cors_configuration", cors_configuration)
        if cosmos_db_configuration is not None:
            pulumi.set(__self__, "cosmos_db_configuration", cosmos_db_configuration)
        if export_configuration is not None:
            pulumi.set(__self__, "export_configuration", export_configuration)
        if import_configuration is not None:
            pulumi.set(__self__, "import_configuration", import_configuration)
        if private_endpoint_connections is not None:
            pulumi.set(__self__, "private_endpoint_connections", private_endpoint_connections)
        if public_network_access is not None:
            pulumi.set(__self__, "public_network_access", public_network_access)

    @property
    @pulumi.getter(name="provisioningState")
    def provisioning_state(self) -> str:
        """
        The provisioning state.
        """
        return pulumi.get(self, "provisioning_state")

    @property
    @pulumi.getter(name="accessPolicies")
    def access_policies(self) -> Optional[Sequence['outputs.ServiceAccessPolicyEntryResponse']]:
        """
        The access policies of the service instance.
        """
        return pulumi.get(self, "access_policies")

    @property
    @pulumi.getter(name="acrConfiguration")
    def acr_configuration(self) -> Optional['outputs.ServiceAcrConfigurationInfoResponse']:
        """
        The azure container registry settings used for convert data operation of the service instance.
        """
        return pulumi.get(self, "acr_configuration")

    @property
    @pulumi.getter(name="authenticationConfiguration")
    def authentication_configuration(self) -> Optional['outputs.ServiceAuthenticationConfigurationInfoResponse']:
        """
        The authentication configuration for the service instance.
        """
        return pulumi.get(self, "authentication_configuration")

    @property
    @pulumi.getter(name="corsConfiguration")
    def cors_configuration(self) -> Optional['outputs.ServiceCorsConfigurationInfoResponse']:
        """
        The settings for the CORS configuration of the service instance.
        """
        return pulumi.get(self, "cors_configuration")

    @property
    @pulumi.getter(name="cosmosDbConfiguration")
    def cosmos_db_configuration(self) -> Optional['outputs.ServiceCosmosDbConfigurationInfoResponse']:
        """
        The settings for the Cosmos DB database backing the service.
        """
        return pulumi.get(self, "cosmos_db_configuration")

    @property
    @pulumi.getter(name="exportConfiguration")
    def export_configuration(self) -> Optional['outputs.ServiceExportConfigurationInfoResponse']:
        """
        The settings for the export operation of the service instance.
        """
        return pulumi.get(self, "export_configuration")

    @property
    @pulumi.getter(name="importConfiguration")
    def import_configuration(self) -> Optional['outputs.ServiceImportConfigurationInfoResponse']:
        """
        The settings for the import operation of the service instance.
        """
        return pulumi.get(self, "import_configuration")

    @property
    @pulumi.getter(name="privateEndpointConnections")
    def private_endpoint_connections(self) -> Optional[Sequence['outputs.PrivateEndpointConnectionResponse']]:
        """
        The list of private endpoint connections that are set up for this resource.
        """
        return pulumi.get(self, "private_endpoint_connections")

    @property
    @pulumi.getter(name="publicNetworkAccess")
    def public_network_access(self) -> Optional[str]:
        """
        Control permission for data plane traffic coming from public networks while private endpoint is enabled.
        """
        return pulumi.get(self, "public_network_access")


@pulumi.output_type
class ServicesResourceResponseIdentity(dict):
    """
    Setting indicating whether the service has a managed identity associated with it.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "principalId":
            suggest = "principal_id"
        elif key == "tenantId":
            suggest = "tenant_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in ServicesResourceResponseIdentity. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        ServicesResourceResponseIdentity.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        ServicesResourceResponseIdentity.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 principal_id: str,
                 tenant_id: str,
                 type: Optional[str] = None):
        """
        Setting indicating whether the service has a managed identity associated with it.
        :param str principal_id: The principal ID of the resource identity.
        :param str tenant_id: The tenant ID of the resource.
        :param str type: Type of identity being specified, currently SystemAssigned and None are allowed.
        """
        pulumi.set(__self__, "principal_id", principal_id)
        pulumi.set(__self__, "tenant_id", tenant_id)
        if type is not None:
            pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> str:
        """
        The principal ID of the resource identity.
        """
        return pulumi.get(self, "principal_id")

    @property
    @pulumi.getter(name="tenantId")
    def tenant_id(self) -> str:
        """
        The tenant ID of the resource.
        """
        return pulumi.get(self, "tenant_id")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        """
        Type of identity being specified, currently SystemAssigned and None are allowed.
        """
        return pulumi.get(self, "type")


@pulumi.output_type
class SystemDataResponse(dict):
    """
    Metadata pertaining to creation and last modification of the resource.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "createdAt":
            suggest = "created_at"
        elif key == "createdBy":
            suggest = "created_by"
        elif key == "createdByType":
            suggest = "created_by_type"
        elif key == "lastModifiedAt":
            suggest = "last_modified_at"
        elif key == "lastModifiedBy":
            suggest = "last_modified_by"
        elif key == "lastModifiedByType":
            suggest = "last_modified_by_type"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in SystemDataResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        SystemDataResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        SystemDataResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 created_at: Optional[str] = None,
                 created_by: Optional[str] = None,
                 created_by_type: Optional[str] = None,
                 last_modified_at: Optional[str] = None,
                 last_modified_by: Optional[str] = None,
                 last_modified_by_type: Optional[str] = None):
        """
        Metadata pertaining to creation and last modification of the resource.
        :param str created_at: The timestamp of resource creation (UTC).
        :param str created_by: The identity that created the resource.
        :param str created_by_type: The type of identity that created the resource.
        :param str last_modified_at: The timestamp of resource last modification (UTC)
        :param str last_modified_by: The identity that last modified the resource.
        :param str last_modified_by_type: The type of identity that last modified the resource.
        """
        if created_at is not None:
            pulumi.set(__self__, "created_at", created_at)
        if created_by is not None:
            pulumi.set(__self__, "created_by", created_by)
        if created_by_type is not None:
            pulumi.set(__self__, "created_by_type", created_by_type)
        if last_modified_at is not None:
            pulumi.set(__self__, "last_modified_at", last_modified_at)
        if last_modified_by is not None:
            pulumi.set(__self__, "last_modified_by", last_modified_by)
        if last_modified_by_type is not None:
            pulumi.set(__self__, "last_modified_by_type", last_modified_by_type)

    @property
    @pulumi.getter(name="createdAt")
    def created_at(self) -> Optional[str]:
        """
        The timestamp of resource creation (UTC).
        """
        return pulumi.get(self, "created_at")

    @property
    @pulumi.getter(name="createdBy")
    def created_by(self) -> Optional[str]:
        """
        The identity that created the resource.
        """
        return pulumi.get(self, "created_by")

    @property
    @pulumi.getter(name="createdByType")
    def created_by_type(self) -> Optional[str]:
        """
        The type of identity that created the resource.
        """
        return pulumi.get(self, "created_by_type")

    @property
    @pulumi.getter(name="lastModifiedAt")
    def last_modified_at(self) -> Optional[str]:
        """
        The timestamp of resource last modification (UTC)
        """
        return pulumi.get(self, "last_modified_at")

    @property
    @pulumi.getter(name="lastModifiedBy")
    def last_modified_by(self) -> Optional[str]:
        """
        The identity that last modified the resource.
        """
        return pulumi.get(self, "last_modified_by")

    @property
    @pulumi.getter(name="lastModifiedByType")
    def last_modified_by_type(self) -> Optional[str]:
        """
        The type of identity that last modified the resource.
        """
        return pulumi.get(self, "last_modified_by_type")


@pulumi.output_type
class UserAssignedIdentityResponse(dict):
    """
    User assigned identity properties
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "clientId":
            suggest = "client_id"
        elif key == "principalId":
            suggest = "principal_id"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in UserAssignedIdentityResponse. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        UserAssignedIdentityResponse.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        UserAssignedIdentityResponse.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 client_id: str,
                 principal_id: str):
        """
        User assigned identity properties
        :param str client_id: The client ID of the assigned identity.
        :param str principal_id: The principal ID of the assigned identity.
        """
        pulumi.set(__self__, "client_id", client_id)
        pulumi.set(__self__, "principal_id", principal_id)

    @property
    @pulumi.getter(name="clientId")
    def client_id(self) -> str:
        """
        The client ID of the assigned identity.
        """
        return pulumi.get(self, "client_id")

    @property
    @pulumi.getter(name="principalId")
    def principal_id(self) -> str:
        """
        The principal ID of the assigned identity.
        """
        return pulumi.get(self, "principal_id")


@pulumi.output_type
class WorkspaceResponseProperties(dict):
    """
    Workspaces resource specific properties.
    """
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "privateEndpointConnections":
            suggest = "private_endpoint_connections"
        elif key == "provisioningState":
            suggest = "provisioning_state"
        elif key == "publicNetworkAccess":
            suggest = "public_network_access"

        if suggest:
            pulumi.log.warn(f"Key '{key}' not found in WorkspaceResponseProperties. Access the value via the '{suggest}' property getter instead.")

    def __getitem__(self, key: str) -> Any:
        WorkspaceResponseProperties.__key_warning(key)
        return super().__getitem__(key)

    def get(self, key: str, default = None) -> Any:
        WorkspaceResponseProperties.__key_warning(key)
        return super().get(key, default)

    def __init__(__self__, *,
                 private_endpoint_connections: Sequence['outputs.PrivateEndpointConnectionResponse'],
                 provisioning_state: str,
                 public_network_access: str):
        """
        Workspaces resource specific properties.
        :param Sequence['PrivateEndpointConnectionResponse'] private_endpoint_connections: The list of private endpoint connections that are set up for this resource.
        :param str provisioning_state: The provisioning state.
        :param str public_network_access: Control permission for data plane traffic coming from public networks while private endpoint is enabled.
        """
        pulumi.set(__self__, "private_endpoint_connections", private_endpoint_connections)
        pulumi.set(__self__, "provisioning_state", provisioning_state)
        pulumi.set(__self__, "public_network_access", public_network_access)

    @property
    @pulumi.getter(name="privateEndpointConnections")
    def private_endpoint_connections(self) -> Sequence['outputs.PrivateEndpointConnectionResponse']:
        """
        The list of private endpoint connections that are set up for this resource.
        """
        return pulumi.get(self, "private_endpoint_connections")

    @property
    @pulumi.getter(name="provisioningState")
    def provisioning_state(self) -> str:
        """
        The provisioning state.
        """
        return pulumi.get(self, "provisioning_state")

    @property
    @pulumi.getter(name="publicNetworkAccess")
    def public_network_access(self) -> str:
        """
        Control permission for data plane traffic coming from public networks while private endpoint is enabled.
        """
        return pulumi.get(self, "public_network_access")


