# 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 warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'ConnectorDefinitionConnector',
    'ConnectorDefinitionConnectorDefinitionVersion',
    'ConnectorDefinitionVersionConnector',
    'CoreDefinitionCore',
    'CoreDefinitionCoreDefinitionVersion',
    'CoreDefinitionVersionCore',
    'DeviceDefinitionDevice',
    'DeviceDefinitionDeviceDefinitionVersion',
    'DeviceDefinitionVersionDevice',
    'FunctionDefinitionDefaultConfig',
    'FunctionDefinitionEnvironment',
    'FunctionDefinitionExecution',
    'FunctionDefinitionFunction',
    'FunctionDefinitionFunctionConfiguration',
    'FunctionDefinitionFunctionDefinitionVersion',
    'FunctionDefinitionResourceAccessPolicy',
    'FunctionDefinitionRunAs',
    'FunctionDefinitionVersionDefaultConfig',
    'FunctionDefinitionVersionEnvironment',
    'FunctionDefinitionVersionExecution',
    'FunctionDefinitionVersionFunction',
    'FunctionDefinitionVersionFunctionConfiguration',
    'FunctionDefinitionVersionResourceAccessPolicy',
    'FunctionDefinitionVersionRunAs',
    'GroupGroupVersion',
    'LoggerDefinitionLogger',
    'LoggerDefinitionLoggerDefinitionVersion',
    'LoggerDefinitionVersionLogger',
    'ResourceDefinitionGroupOwnerSetting',
    'ResourceDefinitionLocalDeviceResourceData',
    'ResourceDefinitionLocalVolumeResourceData',
    'ResourceDefinitionResourceDataContainer',
    'ResourceDefinitionResourceDefinitionVersion',
    'ResourceDefinitionResourceDownloadOwnerSetting',
    'ResourceDefinitionResourceInstance',
    'ResourceDefinitionS3MachineLearningModelResourceData',
    'ResourceDefinitionSageMakerMachineLearningModelResourceData',
    'ResourceDefinitionSecretsManagerSecretResourceData',
    'ResourceDefinitionVersionGroupOwnerSetting',
    'ResourceDefinitionVersionLocalDeviceResourceData',
    'ResourceDefinitionVersionLocalVolumeResourceData',
    'ResourceDefinitionVersionResourceDataContainer',
    'ResourceDefinitionVersionResourceDownloadOwnerSetting',
    'ResourceDefinitionVersionResourceInstance',
    'ResourceDefinitionVersionS3MachineLearningModelResourceData',
    'ResourceDefinitionVersionSageMakerMachineLearningModelResourceData',
    'ResourceDefinitionVersionSecretsManagerSecretResourceData',
    'SubscriptionDefinitionSubscription',
    'SubscriptionDefinitionSubscriptionDefinitionVersion',
    'SubscriptionDefinitionVersionSubscription',
]

@pulumi.output_type
class ConnectorDefinitionConnector(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectorArn":
            suggest = "connector_arn"

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

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

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

    def __init__(__self__, *,
                 connector_arn: str,
                 id: str,
                 parameters: Optional[Any] = None):
        pulumi.set(__self__, "connector_arn", connector_arn)
        pulumi.set(__self__, "id", id)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="connectorArn")
    def connector_arn(self) -> str:
        return pulumi.get(self, "connector_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

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


@pulumi.output_type
class ConnectorDefinitionConnectorDefinitionVersion(dict):
    def __init__(__self__, *,
                 connectors: Sequence['outputs.ConnectorDefinitionConnector']):
        pulumi.set(__self__, "connectors", connectors)

    @property
    @pulumi.getter
    def connectors(self) -> Sequence['outputs.ConnectorDefinitionConnector']:
        return pulumi.get(self, "connectors")


@pulumi.output_type
class ConnectorDefinitionVersionConnector(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectorArn":
            suggest = "connector_arn"

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

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

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

    def __init__(__self__, *,
                 connector_arn: str,
                 id: str,
                 parameters: Optional[Any] = None):
        pulumi.set(__self__, "connector_arn", connector_arn)
        pulumi.set(__self__, "id", id)
        if parameters is not None:
            pulumi.set(__self__, "parameters", parameters)

    @property
    @pulumi.getter(name="connectorArn")
    def connector_arn(self) -> str:
        return pulumi.get(self, "connector_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

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


@pulumi.output_type
class CoreDefinitionCore(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "certificateArn":
            suggest = "certificate_arn"
        elif key == "thingArn":
            suggest = "thing_arn"
        elif key == "syncShadow":
            suggest = "sync_shadow"

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

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

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

    def __init__(__self__, *,
                 certificate_arn: str,
                 id: str,
                 thing_arn: str,
                 sync_shadow: Optional[bool] = None):
        pulumi.set(__self__, "certificate_arn", certificate_arn)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "thing_arn", thing_arn)
        if sync_shadow is not None:
            pulumi.set(__self__, "sync_shadow", sync_shadow)

    @property
    @pulumi.getter(name="certificateArn")
    def certificate_arn(self) -> str:
        return pulumi.get(self, "certificate_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="thingArn")
    def thing_arn(self) -> str:
        return pulumi.get(self, "thing_arn")

    @property
    @pulumi.getter(name="syncShadow")
    def sync_shadow(self) -> Optional[bool]:
        return pulumi.get(self, "sync_shadow")


@pulumi.output_type
class CoreDefinitionCoreDefinitionVersion(dict):
    def __init__(__self__, *,
                 cores: Sequence['outputs.CoreDefinitionCore']):
        pulumi.set(__self__, "cores", cores)

    @property
    @pulumi.getter
    def cores(self) -> Sequence['outputs.CoreDefinitionCore']:
        return pulumi.get(self, "cores")


@pulumi.output_type
class CoreDefinitionVersionCore(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "certificateArn":
            suggest = "certificate_arn"
        elif key == "thingArn":
            suggest = "thing_arn"
        elif key == "syncShadow":
            suggest = "sync_shadow"

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

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

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

    def __init__(__self__, *,
                 certificate_arn: str,
                 id: str,
                 thing_arn: str,
                 sync_shadow: Optional[bool] = None):
        pulumi.set(__self__, "certificate_arn", certificate_arn)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "thing_arn", thing_arn)
        if sync_shadow is not None:
            pulumi.set(__self__, "sync_shadow", sync_shadow)

    @property
    @pulumi.getter(name="certificateArn")
    def certificate_arn(self) -> str:
        return pulumi.get(self, "certificate_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="thingArn")
    def thing_arn(self) -> str:
        return pulumi.get(self, "thing_arn")

    @property
    @pulumi.getter(name="syncShadow")
    def sync_shadow(self) -> Optional[bool]:
        return pulumi.get(self, "sync_shadow")


@pulumi.output_type
class DeviceDefinitionDevice(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "certificateArn":
            suggest = "certificate_arn"
        elif key == "thingArn":
            suggest = "thing_arn"
        elif key == "syncShadow":
            suggest = "sync_shadow"

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

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

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

    def __init__(__self__, *,
                 certificate_arn: str,
                 id: str,
                 thing_arn: str,
                 sync_shadow: Optional[bool] = None):
        pulumi.set(__self__, "certificate_arn", certificate_arn)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "thing_arn", thing_arn)
        if sync_shadow is not None:
            pulumi.set(__self__, "sync_shadow", sync_shadow)

    @property
    @pulumi.getter(name="certificateArn")
    def certificate_arn(self) -> str:
        return pulumi.get(self, "certificate_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="thingArn")
    def thing_arn(self) -> str:
        return pulumi.get(self, "thing_arn")

    @property
    @pulumi.getter(name="syncShadow")
    def sync_shadow(self) -> Optional[bool]:
        return pulumi.get(self, "sync_shadow")


@pulumi.output_type
class DeviceDefinitionDeviceDefinitionVersion(dict):
    def __init__(__self__, *,
                 devices: Sequence['outputs.DeviceDefinitionDevice']):
        pulumi.set(__self__, "devices", devices)

    @property
    @pulumi.getter
    def devices(self) -> Sequence['outputs.DeviceDefinitionDevice']:
        return pulumi.get(self, "devices")


@pulumi.output_type
class DeviceDefinitionVersionDevice(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "certificateArn":
            suggest = "certificate_arn"
        elif key == "thingArn":
            suggest = "thing_arn"
        elif key == "syncShadow":
            suggest = "sync_shadow"

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

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

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

    def __init__(__self__, *,
                 certificate_arn: str,
                 id: str,
                 thing_arn: str,
                 sync_shadow: Optional[bool] = None):
        pulumi.set(__self__, "certificate_arn", certificate_arn)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "thing_arn", thing_arn)
        if sync_shadow is not None:
            pulumi.set(__self__, "sync_shadow", sync_shadow)

    @property
    @pulumi.getter(name="certificateArn")
    def certificate_arn(self) -> str:
        return pulumi.get(self, "certificate_arn")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="thingArn")
    def thing_arn(self) -> str:
        return pulumi.get(self, "thing_arn")

    @property
    @pulumi.getter(name="syncShadow")
    def sync_shadow(self) -> Optional[bool]:
        return pulumi.get(self, "sync_shadow")


@pulumi.output_type
class FunctionDefinitionDefaultConfig(dict):
    def __init__(__self__, *,
                 execution: 'outputs.FunctionDefinitionExecution'):
        pulumi.set(__self__, "execution", execution)

    @property
    @pulumi.getter
    def execution(self) -> 'outputs.FunctionDefinitionExecution':
        return pulumi.get(self, "execution")


@pulumi.output_type
class FunctionDefinitionEnvironment(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessSysfs":
            suggest = "access_sysfs"
        elif key == "resourceAccessPolicies":
            suggest = "resource_access_policies"

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

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

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

    def __init__(__self__, *,
                 access_sysfs: Optional[bool] = None,
                 execution: Optional['outputs.FunctionDefinitionExecution'] = None,
                 resource_access_policies: Optional[Sequence['outputs.FunctionDefinitionResourceAccessPolicy']] = None,
                 variables: Optional[Any] = None):
        if access_sysfs is not None:
            pulumi.set(__self__, "access_sysfs", access_sysfs)
        if execution is not None:
            pulumi.set(__self__, "execution", execution)
        if resource_access_policies is not None:
            pulumi.set(__self__, "resource_access_policies", resource_access_policies)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @property
    @pulumi.getter(name="accessSysfs")
    def access_sysfs(self) -> Optional[bool]:
        return pulumi.get(self, "access_sysfs")

    @property
    @pulumi.getter
    def execution(self) -> Optional['outputs.FunctionDefinitionExecution']:
        return pulumi.get(self, "execution")

    @property
    @pulumi.getter(name="resourceAccessPolicies")
    def resource_access_policies(self) -> Optional[Sequence['outputs.FunctionDefinitionResourceAccessPolicy']]:
        return pulumi.get(self, "resource_access_policies")

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


@pulumi.output_type
class FunctionDefinitionExecution(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "isolationMode":
            suggest = "isolation_mode"
        elif key == "runAs":
            suggest = "run_as"

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

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

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

    def __init__(__self__, *,
                 isolation_mode: Optional[str] = None,
                 run_as: Optional['outputs.FunctionDefinitionRunAs'] = None):
        if isolation_mode is not None:
            pulumi.set(__self__, "isolation_mode", isolation_mode)
        if run_as is not None:
            pulumi.set(__self__, "run_as", run_as)

    @property
    @pulumi.getter(name="isolationMode")
    def isolation_mode(self) -> Optional[str]:
        return pulumi.get(self, "isolation_mode")

    @property
    @pulumi.getter(name="runAs")
    def run_as(self) -> Optional['outputs.FunctionDefinitionRunAs']:
        return pulumi.get(self, "run_as")


@pulumi.output_type
class FunctionDefinitionFunction(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "functionArn":
            suggest = "function_arn"
        elif key == "functionConfiguration":
            suggest = "function_configuration"

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

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

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

    def __init__(__self__, *,
                 function_arn: str,
                 function_configuration: 'outputs.FunctionDefinitionFunctionConfiguration',
                 id: str):
        pulumi.set(__self__, "function_arn", function_arn)
        pulumi.set(__self__, "function_configuration", function_configuration)
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter(name="functionArn")
    def function_arn(self) -> str:
        return pulumi.get(self, "function_arn")

    @property
    @pulumi.getter(name="functionConfiguration")
    def function_configuration(self) -> 'outputs.FunctionDefinitionFunctionConfiguration':
        return pulumi.get(self, "function_configuration")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")


@pulumi.output_type
class FunctionDefinitionFunctionConfiguration(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "encodingType":
            suggest = "encoding_type"
        elif key == "execArgs":
            suggest = "exec_args"
        elif key == "memorySize":
            suggest = "memory_size"

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

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

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

    def __init__(__self__, *,
                 encoding_type: Optional[str] = None,
                 environment: Optional['outputs.FunctionDefinitionEnvironment'] = None,
                 exec_args: Optional[str] = None,
                 executable: Optional[str] = None,
                 memory_size: Optional[int] = None,
                 pinned: Optional[bool] = None,
                 timeout: Optional[int] = None):
        if encoding_type is not None:
            pulumi.set(__self__, "encoding_type", encoding_type)
        if environment is not None:
            pulumi.set(__self__, "environment", environment)
        if exec_args is not None:
            pulumi.set(__self__, "exec_args", exec_args)
        if executable is not None:
            pulumi.set(__self__, "executable", executable)
        if memory_size is not None:
            pulumi.set(__self__, "memory_size", memory_size)
        if pinned is not None:
            pulumi.set(__self__, "pinned", pinned)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)

    @property
    @pulumi.getter(name="encodingType")
    def encoding_type(self) -> Optional[str]:
        return pulumi.get(self, "encoding_type")

    @property
    @pulumi.getter
    def environment(self) -> Optional['outputs.FunctionDefinitionEnvironment']:
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="execArgs")
    def exec_args(self) -> Optional[str]:
        return pulumi.get(self, "exec_args")

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

    @property
    @pulumi.getter(name="memorySize")
    def memory_size(self) -> Optional[int]:
        return pulumi.get(self, "memory_size")

    @property
    @pulumi.getter
    def pinned(self) -> Optional[bool]:
        return pulumi.get(self, "pinned")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[int]:
        return pulumi.get(self, "timeout")


@pulumi.output_type
class FunctionDefinitionFunctionDefinitionVersion(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "defaultConfig":
            suggest = "default_config"

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

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

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

    def __init__(__self__, *,
                 functions: Sequence['outputs.FunctionDefinitionFunction'],
                 default_config: Optional['outputs.FunctionDefinitionDefaultConfig'] = None):
        pulumi.set(__self__, "functions", functions)
        if default_config is not None:
            pulumi.set(__self__, "default_config", default_config)

    @property
    @pulumi.getter
    def functions(self) -> Sequence['outputs.FunctionDefinitionFunction']:
        return pulumi.get(self, "functions")

    @property
    @pulumi.getter(name="defaultConfig")
    def default_config(self) -> Optional['outputs.FunctionDefinitionDefaultConfig']:
        return pulumi.get(self, "default_config")


@pulumi.output_type
class FunctionDefinitionResourceAccessPolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceId":
            suggest = "resource_id"

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

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

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

    def __init__(__self__, *,
                 resource_id: str,
                 permission: Optional[str] = None):
        pulumi.set(__self__, "resource_id", resource_id)
        if permission is not None:
            pulumi.set(__self__, "permission", permission)

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> str:
        return pulumi.get(self, "resource_id")

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


@pulumi.output_type
class FunctionDefinitionRunAs(dict):
    def __init__(__self__, *,
                 gid: Optional[int] = None,
                 uid: Optional[int] = None):
        if gid is not None:
            pulumi.set(__self__, "gid", gid)
        if uid is not None:
            pulumi.set(__self__, "uid", uid)

    @property
    @pulumi.getter
    def gid(self) -> Optional[int]:
        return pulumi.get(self, "gid")

    @property
    @pulumi.getter
    def uid(self) -> Optional[int]:
        return pulumi.get(self, "uid")


@pulumi.output_type
class FunctionDefinitionVersionDefaultConfig(dict):
    def __init__(__self__, *,
                 execution: 'outputs.FunctionDefinitionVersionExecution'):
        pulumi.set(__self__, "execution", execution)

    @property
    @pulumi.getter
    def execution(self) -> 'outputs.FunctionDefinitionVersionExecution':
        return pulumi.get(self, "execution")


@pulumi.output_type
class FunctionDefinitionVersionEnvironment(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "accessSysfs":
            suggest = "access_sysfs"
        elif key == "resourceAccessPolicies":
            suggest = "resource_access_policies"

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

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

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

    def __init__(__self__, *,
                 access_sysfs: Optional[bool] = None,
                 execution: Optional['outputs.FunctionDefinitionVersionExecution'] = None,
                 resource_access_policies: Optional[Sequence['outputs.FunctionDefinitionVersionResourceAccessPolicy']] = None,
                 variables: Optional[Any] = None):
        if access_sysfs is not None:
            pulumi.set(__self__, "access_sysfs", access_sysfs)
        if execution is not None:
            pulumi.set(__self__, "execution", execution)
        if resource_access_policies is not None:
            pulumi.set(__self__, "resource_access_policies", resource_access_policies)
        if variables is not None:
            pulumi.set(__self__, "variables", variables)

    @property
    @pulumi.getter(name="accessSysfs")
    def access_sysfs(self) -> Optional[bool]:
        return pulumi.get(self, "access_sysfs")

    @property
    @pulumi.getter
    def execution(self) -> Optional['outputs.FunctionDefinitionVersionExecution']:
        return pulumi.get(self, "execution")

    @property
    @pulumi.getter(name="resourceAccessPolicies")
    def resource_access_policies(self) -> Optional[Sequence['outputs.FunctionDefinitionVersionResourceAccessPolicy']]:
        return pulumi.get(self, "resource_access_policies")

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


@pulumi.output_type
class FunctionDefinitionVersionExecution(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "isolationMode":
            suggest = "isolation_mode"
        elif key == "runAs":
            suggest = "run_as"

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

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

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

    def __init__(__self__, *,
                 isolation_mode: Optional[str] = None,
                 run_as: Optional['outputs.FunctionDefinitionVersionRunAs'] = None):
        if isolation_mode is not None:
            pulumi.set(__self__, "isolation_mode", isolation_mode)
        if run_as is not None:
            pulumi.set(__self__, "run_as", run_as)

    @property
    @pulumi.getter(name="isolationMode")
    def isolation_mode(self) -> Optional[str]:
        return pulumi.get(self, "isolation_mode")

    @property
    @pulumi.getter(name="runAs")
    def run_as(self) -> Optional['outputs.FunctionDefinitionVersionRunAs']:
        return pulumi.get(self, "run_as")


@pulumi.output_type
class FunctionDefinitionVersionFunction(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "functionArn":
            suggest = "function_arn"
        elif key == "functionConfiguration":
            suggest = "function_configuration"

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

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

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

    def __init__(__self__, *,
                 function_arn: str,
                 function_configuration: 'outputs.FunctionDefinitionVersionFunctionConfiguration',
                 id: str):
        pulumi.set(__self__, "function_arn", function_arn)
        pulumi.set(__self__, "function_configuration", function_configuration)
        pulumi.set(__self__, "id", id)

    @property
    @pulumi.getter(name="functionArn")
    def function_arn(self) -> str:
        return pulumi.get(self, "function_arn")

    @property
    @pulumi.getter(name="functionConfiguration")
    def function_configuration(self) -> 'outputs.FunctionDefinitionVersionFunctionConfiguration':
        return pulumi.get(self, "function_configuration")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")


@pulumi.output_type
class FunctionDefinitionVersionFunctionConfiguration(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "encodingType":
            suggest = "encoding_type"
        elif key == "execArgs":
            suggest = "exec_args"
        elif key == "memorySize":
            suggest = "memory_size"

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

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

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

    def __init__(__self__, *,
                 encoding_type: Optional[str] = None,
                 environment: Optional['outputs.FunctionDefinitionVersionEnvironment'] = None,
                 exec_args: Optional[str] = None,
                 executable: Optional[str] = None,
                 memory_size: Optional[int] = None,
                 pinned: Optional[bool] = None,
                 timeout: Optional[int] = None):
        if encoding_type is not None:
            pulumi.set(__self__, "encoding_type", encoding_type)
        if environment is not None:
            pulumi.set(__self__, "environment", environment)
        if exec_args is not None:
            pulumi.set(__self__, "exec_args", exec_args)
        if executable is not None:
            pulumi.set(__self__, "executable", executable)
        if memory_size is not None:
            pulumi.set(__self__, "memory_size", memory_size)
        if pinned is not None:
            pulumi.set(__self__, "pinned", pinned)
        if timeout is not None:
            pulumi.set(__self__, "timeout", timeout)

    @property
    @pulumi.getter(name="encodingType")
    def encoding_type(self) -> Optional[str]:
        return pulumi.get(self, "encoding_type")

    @property
    @pulumi.getter
    def environment(self) -> Optional['outputs.FunctionDefinitionVersionEnvironment']:
        return pulumi.get(self, "environment")

    @property
    @pulumi.getter(name="execArgs")
    def exec_args(self) -> Optional[str]:
        return pulumi.get(self, "exec_args")

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

    @property
    @pulumi.getter(name="memorySize")
    def memory_size(self) -> Optional[int]:
        return pulumi.get(self, "memory_size")

    @property
    @pulumi.getter
    def pinned(self) -> Optional[bool]:
        return pulumi.get(self, "pinned")

    @property
    @pulumi.getter
    def timeout(self) -> Optional[int]:
        return pulumi.get(self, "timeout")


@pulumi.output_type
class FunctionDefinitionVersionResourceAccessPolicy(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceId":
            suggest = "resource_id"

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

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

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

    def __init__(__self__, *,
                 resource_id: str,
                 permission: Optional[str] = None):
        pulumi.set(__self__, "resource_id", resource_id)
        if permission is not None:
            pulumi.set(__self__, "permission", permission)

    @property
    @pulumi.getter(name="resourceId")
    def resource_id(self) -> str:
        return pulumi.get(self, "resource_id")

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


@pulumi.output_type
class FunctionDefinitionVersionRunAs(dict):
    def __init__(__self__, *,
                 gid: Optional[int] = None,
                 uid: Optional[int] = None):
        if gid is not None:
            pulumi.set(__self__, "gid", gid)
        if uid is not None:
            pulumi.set(__self__, "uid", uid)

    @property
    @pulumi.getter
    def gid(self) -> Optional[int]:
        return pulumi.get(self, "gid")

    @property
    @pulumi.getter
    def uid(self) -> Optional[int]:
        return pulumi.get(self, "uid")


@pulumi.output_type
class GroupGroupVersion(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "connectorDefinitionVersionArn":
            suggest = "connector_definition_version_arn"
        elif key == "coreDefinitionVersionArn":
            suggest = "core_definition_version_arn"
        elif key == "deviceDefinitionVersionArn":
            suggest = "device_definition_version_arn"
        elif key == "functionDefinitionVersionArn":
            suggest = "function_definition_version_arn"
        elif key == "loggerDefinitionVersionArn":
            suggest = "logger_definition_version_arn"
        elif key == "resourceDefinitionVersionArn":
            suggest = "resource_definition_version_arn"
        elif key == "subscriptionDefinitionVersionArn":
            suggest = "subscription_definition_version_arn"

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

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

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

    def __init__(__self__, *,
                 connector_definition_version_arn: Optional[str] = None,
                 core_definition_version_arn: Optional[str] = None,
                 device_definition_version_arn: Optional[str] = None,
                 function_definition_version_arn: Optional[str] = None,
                 logger_definition_version_arn: Optional[str] = None,
                 resource_definition_version_arn: Optional[str] = None,
                 subscription_definition_version_arn: Optional[str] = None):
        if connector_definition_version_arn is not None:
            pulumi.set(__self__, "connector_definition_version_arn", connector_definition_version_arn)
        if core_definition_version_arn is not None:
            pulumi.set(__self__, "core_definition_version_arn", core_definition_version_arn)
        if device_definition_version_arn is not None:
            pulumi.set(__self__, "device_definition_version_arn", device_definition_version_arn)
        if function_definition_version_arn is not None:
            pulumi.set(__self__, "function_definition_version_arn", function_definition_version_arn)
        if logger_definition_version_arn is not None:
            pulumi.set(__self__, "logger_definition_version_arn", logger_definition_version_arn)
        if resource_definition_version_arn is not None:
            pulumi.set(__self__, "resource_definition_version_arn", resource_definition_version_arn)
        if subscription_definition_version_arn is not None:
            pulumi.set(__self__, "subscription_definition_version_arn", subscription_definition_version_arn)

    @property
    @pulumi.getter(name="connectorDefinitionVersionArn")
    def connector_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "connector_definition_version_arn")

    @property
    @pulumi.getter(name="coreDefinitionVersionArn")
    def core_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "core_definition_version_arn")

    @property
    @pulumi.getter(name="deviceDefinitionVersionArn")
    def device_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "device_definition_version_arn")

    @property
    @pulumi.getter(name="functionDefinitionVersionArn")
    def function_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "function_definition_version_arn")

    @property
    @pulumi.getter(name="loggerDefinitionVersionArn")
    def logger_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "logger_definition_version_arn")

    @property
    @pulumi.getter(name="resourceDefinitionVersionArn")
    def resource_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "resource_definition_version_arn")

    @property
    @pulumi.getter(name="subscriptionDefinitionVersionArn")
    def subscription_definition_version_arn(self) -> Optional[str]:
        return pulumi.get(self, "subscription_definition_version_arn")


@pulumi.output_type
class LoggerDefinitionLogger(dict):
    def __init__(__self__, *,
                 component: str,
                 id: str,
                 level: str,
                 type: str,
                 space: Optional[int] = None):
        pulumi.set(__self__, "component", component)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "level", level)
        pulumi.set(__self__, "type", type)
        if space is not None:
            pulumi.set(__self__, "space", space)

    @property
    @pulumi.getter
    def component(self) -> str:
        return pulumi.get(self, "component")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def level(self) -> str:
        return pulumi.get(self, "level")

    @property
    @pulumi.getter
    def type(self) -> str:
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def space(self) -> Optional[int]:
        return pulumi.get(self, "space")


@pulumi.output_type
class LoggerDefinitionLoggerDefinitionVersion(dict):
    def __init__(__self__, *,
                 loggers: Sequence['outputs.LoggerDefinitionLogger']):
        pulumi.set(__self__, "loggers", loggers)

    @property
    @pulumi.getter
    def loggers(self) -> Sequence['outputs.LoggerDefinitionLogger']:
        return pulumi.get(self, "loggers")


@pulumi.output_type
class LoggerDefinitionVersionLogger(dict):
    def __init__(__self__, *,
                 component: str,
                 id: str,
                 level: str,
                 type: str,
                 space: Optional[int] = None):
        pulumi.set(__self__, "component", component)
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "level", level)
        pulumi.set(__self__, "type", type)
        if space is not None:
            pulumi.set(__self__, "space", space)

    @property
    @pulumi.getter
    def component(self) -> str:
        return pulumi.get(self, "component")

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def level(self) -> str:
        return pulumi.get(self, "level")

    @property
    @pulumi.getter
    def type(self) -> str:
        return pulumi.get(self, "type")

    @property
    @pulumi.getter
    def space(self) -> Optional[int]:
        return pulumi.get(self, "space")


@pulumi.output_type
class ResourceDefinitionGroupOwnerSetting(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "autoAddGroupOwner":
            suggest = "auto_add_group_owner"
        elif key == "groupOwner":
            suggest = "group_owner"

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

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

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

    def __init__(__self__, *,
                 auto_add_group_owner: bool,
                 group_owner: Optional[str] = None):
        pulumi.set(__self__, "auto_add_group_owner", auto_add_group_owner)
        if group_owner is not None:
            pulumi.set(__self__, "group_owner", group_owner)

    @property
    @pulumi.getter(name="autoAddGroupOwner")
    def auto_add_group_owner(self) -> bool:
        return pulumi.get(self, "auto_add_group_owner")

    @property
    @pulumi.getter(name="groupOwner")
    def group_owner(self) -> Optional[str]:
        return pulumi.get(self, "group_owner")


@pulumi.output_type
class ResourceDefinitionLocalDeviceResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "sourcePath":
            suggest = "source_path"
        elif key == "groupOwnerSetting":
            suggest = "group_owner_setting"

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

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

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

    def __init__(__self__, *,
                 source_path: str,
                 group_owner_setting: Optional['outputs.ResourceDefinitionGroupOwnerSetting'] = None):
        pulumi.set(__self__, "source_path", source_path)
        if group_owner_setting is not None:
            pulumi.set(__self__, "group_owner_setting", group_owner_setting)

    @property
    @pulumi.getter(name="sourcePath")
    def source_path(self) -> str:
        return pulumi.get(self, "source_path")

    @property
    @pulumi.getter(name="groupOwnerSetting")
    def group_owner_setting(self) -> Optional['outputs.ResourceDefinitionGroupOwnerSetting']:
        return pulumi.get(self, "group_owner_setting")


@pulumi.output_type
class ResourceDefinitionLocalVolumeResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "sourcePath":
            suggest = "source_path"
        elif key == "groupOwnerSetting":
            suggest = "group_owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 source_path: str,
                 group_owner_setting: Optional['outputs.ResourceDefinitionGroupOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "source_path", source_path)
        if group_owner_setting is not None:
            pulumi.set(__self__, "group_owner_setting", group_owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="sourcePath")
    def source_path(self) -> str:
        return pulumi.get(self, "source_path")

    @property
    @pulumi.getter(name="groupOwnerSetting")
    def group_owner_setting(self) -> Optional['outputs.ResourceDefinitionGroupOwnerSetting']:
        return pulumi.get(self, "group_owner_setting")


@pulumi.output_type
class ResourceDefinitionResourceDataContainer(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "localDeviceResourceData":
            suggest = "local_device_resource_data"
        elif key == "localVolumeResourceData":
            suggest = "local_volume_resource_data"
        elif key == "s3MachineLearningModelResourceData":
            suggest = "s3_machine_learning_model_resource_data"
        elif key == "sageMakerMachineLearningModelResourceData":
            suggest = "sage_maker_machine_learning_model_resource_data"
        elif key == "secretsManagerSecretResourceData":
            suggest = "secrets_manager_secret_resource_data"

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

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

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

    def __init__(__self__, *,
                 local_device_resource_data: Optional['outputs.ResourceDefinitionLocalDeviceResourceData'] = None,
                 local_volume_resource_data: Optional['outputs.ResourceDefinitionLocalVolumeResourceData'] = None,
                 s3_machine_learning_model_resource_data: Optional['outputs.ResourceDefinitionS3MachineLearningModelResourceData'] = None,
                 sage_maker_machine_learning_model_resource_data: Optional['outputs.ResourceDefinitionSageMakerMachineLearningModelResourceData'] = None,
                 secrets_manager_secret_resource_data: Optional['outputs.ResourceDefinitionSecretsManagerSecretResourceData'] = None):
        if local_device_resource_data is not None:
            pulumi.set(__self__, "local_device_resource_data", local_device_resource_data)
        if local_volume_resource_data is not None:
            pulumi.set(__self__, "local_volume_resource_data", local_volume_resource_data)
        if s3_machine_learning_model_resource_data is not None:
            pulumi.set(__self__, "s3_machine_learning_model_resource_data", s3_machine_learning_model_resource_data)
        if sage_maker_machine_learning_model_resource_data is not None:
            pulumi.set(__self__, "sage_maker_machine_learning_model_resource_data", sage_maker_machine_learning_model_resource_data)
        if secrets_manager_secret_resource_data is not None:
            pulumi.set(__self__, "secrets_manager_secret_resource_data", secrets_manager_secret_resource_data)

    @property
    @pulumi.getter(name="localDeviceResourceData")
    def local_device_resource_data(self) -> Optional['outputs.ResourceDefinitionLocalDeviceResourceData']:
        return pulumi.get(self, "local_device_resource_data")

    @property
    @pulumi.getter(name="localVolumeResourceData")
    def local_volume_resource_data(self) -> Optional['outputs.ResourceDefinitionLocalVolumeResourceData']:
        return pulumi.get(self, "local_volume_resource_data")

    @property
    @pulumi.getter(name="s3MachineLearningModelResourceData")
    def s3_machine_learning_model_resource_data(self) -> Optional['outputs.ResourceDefinitionS3MachineLearningModelResourceData']:
        return pulumi.get(self, "s3_machine_learning_model_resource_data")

    @property
    @pulumi.getter(name="sageMakerMachineLearningModelResourceData")
    def sage_maker_machine_learning_model_resource_data(self) -> Optional['outputs.ResourceDefinitionSageMakerMachineLearningModelResourceData']:
        return pulumi.get(self, "sage_maker_machine_learning_model_resource_data")

    @property
    @pulumi.getter(name="secretsManagerSecretResourceData")
    def secrets_manager_secret_resource_data(self) -> Optional['outputs.ResourceDefinitionSecretsManagerSecretResourceData']:
        return pulumi.get(self, "secrets_manager_secret_resource_data")


@pulumi.output_type
class ResourceDefinitionResourceDefinitionVersion(dict):
    def __init__(__self__, *,
                 resources: Sequence['outputs.ResourceDefinitionResourceInstance']):
        pulumi.set(__self__, "resources", resources)

    @property
    @pulumi.getter
    def resources(self) -> Sequence['outputs.ResourceDefinitionResourceInstance']:
        return pulumi.get(self, "resources")


@pulumi.output_type
class ResourceDefinitionResourceDownloadOwnerSetting(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "groupOwner":
            suggest = "group_owner"
        elif key == "groupPermission":
            suggest = "group_permission"

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

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

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

    def __init__(__self__, *,
                 group_owner: str,
                 group_permission: str):
        pulumi.set(__self__, "group_owner", group_owner)
        pulumi.set(__self__, "group_permission", group_permission)

    @property
    @pulumi.getter(name="groupOwner")
    def group_owner(self) -> str:
        return pulumi.get(self, "group_owner")

    @property
    @pulumi.getter(name="groupPermission")
    def group_permission(self) -> str:
        return pulumi.get(self, "group_permission")


@pulumi.output_type
class ResourceDefinitionResourceInstance(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceDataContainer":
            suggest = "resource_data_container"

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

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

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

    def __init__(__self__, *,
                 id: str,
                 name: str,
                 resource_data_container: 'outputs.ResourceDefinitionResourceDataContainer'):
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "resource_data_container", resource_data_container)

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter(name="resourceDataContainer")
    def resource_data_container(self) -> 'outputs.ResourceDefinitionResourceDataContainer':
        return pulumi.get(self, "resource_data_container")


@pulumi.output_type
class ResourceDefinitionS3MachineLearningModelResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "s3Uri":
            suggest = "s3_uri"
        elif key == "ownerSetting":
            suggest = "owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 s3_uri: str,
                 owner_setting: Optional['outputs.ResourceDefinitionResourceDownloadOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "s3_uri", s3_uri)
        if owner_setting is not None:
            pulumi.set(__self__, "owner_setting", owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="s3Uri")
    def s3_uri(self) -> str:
        return pulumi.get(self, "s3_uri")

    @property
    @pulumi.getter(name="ownerSetting")
    def owner_setting(self) -> Optional['outputs.ResourceDefinitionResourceDownloadOwnerSetting']:
        return pulumi.get(self, "owner_setting")


@pulumi.output_type
class ResourceDefinitionSageMakerMachineLearningModelResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "sageMakerJobArn":
            suggest = "sage_maker_job_arn"
        elif key == "ownerSetting":
            suggest = "owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 sage_maker_job_arn: str,
                 owner_setting: Optional['outputs.ResourceDefinitionResourceDownloadOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "sage_maker_job_arn", sage_maker_job_arn)
        if owner_setting is not None:
            pulumi.set(__self__, "owner_setting", owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="sageMakerJobArn")
    def sage_maker_job_arn(self) -> str:
        return pulumi.get(self, "sage_maker_job_arn")

    @property
    @pulumi.getter(name="ownerSetting")
    def owner_setting(self) -> Optional['outputs.ResourceDefinitionResourceDownloadOwnerSetting']:
        return pulumi.get(self, "owner_setting")


@pulumi.output_type
class ResourceDefinitionSecretsManagerSecretResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "aRN":
            suggest = "a_rn"
        elif key == "additionalStagingLabelsToDownload":
            suggest = "additional_staging_labels_to_download"

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

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

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

    def __init__(__self__, *,
                 a_rn: str,
                 additional_staging_labels_to_download: Optional[Sequence[str]] = None):
        pulumi.set(__self__, "a_rn", a_rn)
        if additional_staging_labels_to_download is not None:
            pulumi.set(__self__, "additional_staging_labels_to_download", additional_staging_labels_to_download)

    @property
    @pulumi.getter(name="aRN")
    def a_rn(self) -> str:
        return pulumi.get(self, "a_rn")

    @property
    @pulumi.getter(name="additionalStagingLabelsToDownload")
    def additional_staging_labels_to_download(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "additional_staging_labels_to_download")


@pulumi.output_type
class ResourceDefinitionVersionGroupOwnerSetting(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "autoAddGroupOwner":
            suggest = "auto_add_group_owner"
        elif key == "groupOwner":
            suggest = "group_owner"

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

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

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

    def __init__(__self__, *,
                 auto_add_group_owner: bool,
                 group_owner: Optional[str] = None):
        pulumi.set(__self__, "auto_add_group_owner", auto_add_group_owner)
        if group_owner is not None:
            pulumi.set(__self__, "group_owner", group_owner)

    @property
    @pulumi.getter(name="autoAddGroupOwner")
    def auto_add_group_owner(self) -> bool:
        return pulumi.get(self, "auto_add_group_owner")

    @property
    @pulumi.getter(name="groupOwner")
    def group_owner(self) -> Optional[str]:
        return pulumi.get(self, "group_owner")


@pulumi.output_type
class ResourceDefinitionVersionLocalDeviceResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "sourcePath":
            suggest = "source_path"
        elif key == "groupOwnerSetting":
            suggest = "group_owner_setting"

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

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

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

    def __init__(__self__, *,
                 source_path: str,
                 group_owner_setting: Optional['outputs.ResourceDefinitionVersionGroupOwnerSetting'] = None):
        pulumi.set(__self__, "source_path", source_path)
        if group_owner_setting is not None:
            pulumi.set(__self__, "group_owner_setting", group_owner_setting)

    @property
    @pulumi.getter(name="sourcePath")
    def source_path(self) -> str:
        return pulumi.get(self, "source_path")

    @property
    @pulumi.getter(name="groupOwnerSetting")
    def group_owner_setting(self) -> Optional['outputs.ResourceDefinitionVersionGroupOwnerSetting']:
        return pulumi.get(self, "group_owner_setting")


@pulumi.output_type
class ResourceDefinitionVersionLocalVolumeResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "sourcePath":
            suggest = "source_path"
        elif key == "groupOwnerSetting":
            suggest = "group_owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 source_path: str,
                 group_owner_setting: Optional['outputs.ResourceDefinitionVersionGroupOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "source_path", source_path)
        if group_owner_setting is not None:
            pulumi.set(__self__, "group_owner_setting", group_owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="sourcePath")
    def source_path(self) -> str:
        return pulumi.get(self, "source_path")

    @property
    @pulumi.getter(name="groupOwnerSetting")
    def group_owner_setting(self) -> Optional['outputs.ResourceDefinitionVersionGroupOwnerSetting']:
        return pulumi.get(self, "group_owner_setting")


@pulumi.output_type
class ResourceDefinitionVersionResourceDataContainer(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "localDeviceResourceData":
            suggest = "local_device_resource_data"
        elif key == "localVolumeResourceData":
            suggest = "local_volume_resource_data"
        elif key == "s3MachineLearningModelResourceData":
            suggest = "s3_machine_learning_model_resource_data"
        elif key == "sageMakerMachineLearningModelResourceData":
            suggest = "sage_maker_machine_learning_model_resource_data"
        elif key == "secretsManagerSecretResourceData":
            suggest = "secrets_manager_secret_resource_data"

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

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

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

    def __init__(__self__, *,
                 local_device_resource_data: Optional['outputs.ResourceDefinitionVersionLocalDeviceResourceData'] = None,
                 local_volume_resource_data: Optional['outputs.ResourceDefinitionVersionLocalVolumeResourceData'] = None,
                 s3_machine_learning_model_resource_data: Optional['outputs.ResourceDefinitionVersionS3MachineLearningModelResourceData'] = None,
                 sage_maker_machine_learning_model_resource_data: Optional['outputs.ResourceDefinitionVersionSageMakerMachineLearningModelResourceData'] = None,
                 secrets_manager_secret_resource_data: Optional['outputs.ResourceDefinitionVersionSecretsManagerSecretResourceData'] = None):
        if local_device_resource_data is not None:
            pulumi.set(__self__, "local_device_resource_data", local_device_resource_data)
        if local_volume_resource_data is not None:
            pulumi.set(__self__, "local_volume_resource_data", local_volume_resource_data)
        if s3_machine_learning_model_resource_data is not None:
            pulumi.set(__self__, "s3_machine_learning_model_resource_data", s3_machine_learning_model_resource_data)
        if sage_maker_machine_learning_model_resource_data is not None:
            pulumi.set(__self__, "sage_maker_machine_learning_model_resource_data", sage_maker_machine_learning_model_resource_data)
        if secrets_manager_secret_resource_data is not None:
            pulumi.set(__self__, "secrets_manager_secret_resource_data", secrets_manager_secret_resource_data)

    @property
    @pulumi.getter(name="localDeviceResourceData")
    def local_device_resource_data(self) -> Optional['outputs.ResourceDefinitionVersionLocalDeviceResourceData']:
        return pulumi.get(self, "local_device_resource_data")

    @property
    @pulumi.getter(name="localVolumeResourceData")
    def local_volume_resource_data(self) -> Optional['outputs.ResourceDefinitionVersionLocalVolumeResourceData']:
        return pulumi.get(self, "local_volume_resource_data")

    @property
    @pulumi.getter(name="s3MachineLearningModelResourceData")
    def s3_machine_learning_model_resource_data(self) -> Optional['outputs.ResourceDefinitionVersionS3MachineLearningModelResourceData']:
        return pulumi.get(self, "s3_machine_learning_model_resource_data")

    @property
    @pulumi.getter(name="sageMakerMachineLearningModelResourceData")
    def sage_maker_machine_learning_model_resource_data(self) -> Optional['outputs.ResourceDefinitionVersionSageMakerMachineLearningModelResourceData']:
        return pulumi.get(self, "sage_maker_machine_learning_model_resource_data")

    @property
    @pulumi.getter(name="secretsManagerSecretResourceData")
    def secrets_manager_secret_resource_data(self) -> Optional['outputs.ResourceDefinitionVersionSecretsManagerSecretResourceData']:
        return pulumi.get(self, "secrets_manager_secret_resource_data")


@pulumi.output_type
class ResourceDefinitionVersionResourceDownloadOwnerSetting(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "groupOwner":
            suggest = "group_owner"
        elif key == "groupPermission":
            suggest = "group_permission"

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

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

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

    def __init__(__self__, *,
                 group_owner: str,
                 group_permission: str):
        pulumi.set(__self__, "group_owner", group_owner)
        pulumi.set(__self__, "group_permission", group_permission)

    @property
    @pulumi.getter(name="groupOwner")
    def group_owner(self) -> str:
        return pulumi.get(self, "group_owner")

    @property
    @pulumi.getter(name="groupPermission")
    def group_permission(self) -> str:
        return pulumi.get(self, "group_permission")


@pulumi.output_type
class ResourceDefinitionVersionResourceInstance(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "resourceDataContainer":
            suggest = "resource_data_container"

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

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

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

    def __init__(__self__, *,
                 id: str,
                 name: str,
                 resource_data_container: 'outputs.ResourceDefinitionVersionResourceDataContainer'):
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "name", name)
        pulumi.set(__self__, "resource_data_container", resource_data_container)

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

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

    @property
    @pulumi.getter(name="resourceDataContainer")
    def resource_data_container(self) -> 'outputs.ResourceDefinitionVersionResourceDataContainer':
        return pulumi.get(self, "resource_data_container")


@pulumi.output_type
class ResourceDefinitionVersionS3MachineLearningModelResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "s3Uri":
            suggest = "s3_uri"
        elif key == "ownerSetting":
            suggest = "owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 s3_uri: str,
                 owner_setting: Optional['outputs.ResourceDefinitionVersionResourceDownloadOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "s3_uri", s3_uri)
        if owner_setting is not None:
            pulumi.set(__self__, "owner_setting", owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="s3Uri")
    def s3_uri(self) -> str:
        return pulumi.get(self, "s3_uri")

    @property
    @pulumi.getter(name="ownerSetting")
    def owner_setting(self) -> Optional['outputs.ResourceDefinitionVersionResourceDownloadOwnerSetting']:
        return pulumi.get(self, "owner_setting")


@pulumi.output_type
class ResourceDefinitionVersionSageMakerMachineLearningModelResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "destinationPath":
            suggest = "destination_path"
        elif key == "sageMakerJobArn":
            suggest = "sage_maker_job_arn"
        elif key == "ownerSetting":
            suggest = "owner_setting"

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

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

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

    def __init__(__self__, *,
                 destination_path: str,
                 sage_maker_job_arn: str,
                 owner_setting: Optional['outputs.ResourceDefinitionVersionResourceDownloadOwnerSetting'] = None):
        pulumi.set(__self__, "destination_path", destination_path)
        pulumi.set(__self__, "sage_maker_job_arn", sage_maker_job_arn)
        if owner_setting is not None:
            pulumi.set(__self__, "owner_setting", owner_setting)

    @property
    @pulumi.getter(name="destinationPath")
    def destination_path(self) -> str:
        return pulumi.get(self, "destination_path")

    @property
    @pulumi.getter(name="sageMakerJobArn")
    def sage_maker_job_arn(self) -> str:
        return pulumi.get(self, "sage_maker_job_arn")

    @property
    @pulumi.getter(name="ownerSetting")
    def owner_setting(self) -> Optional['outputs.ResourceDefinitionVersionResourceDownloadOwnerSetting']:
        return pulumi.get(self, "owner_setting")


@pulumi.output_type
class ResourceDefinitionVersionSecretsManagerSecretResourceData(dict):
    @staticmethod
    def __key_warning(key: str):
        suggest = None
        if key == "aRN":
            suggest = "a_rn"
        elif key == "additionalStagingLabelsToDownload":
            suggest = "additional_staging_labels_to_download"

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

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

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

    def __init__(__self__, *,
                 a_rn: str,
                 additional_staging_labels_to_download: Optional[Sequence[str]] = None):
        pulumi.set(__self__, "a_rn", a_rn)
        if additional_staging_labels_to_download is not None:
            pulumi.set(__self__, "additional_staging_labels_to_download", additional_staging_labels_to_download)

    @property
    @pulumi.getter(name="aRN")
    def a_rn(self) -> str:
        return pulumi.get(self, "a_rn")

    @property
    @pulumi.getter(name="additionalStagingLabelsToDownload")
    def additional_staging_labels_to_download(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "additional_staging_labels_to_download")


@pulumi.output_type
class SubscriptionDefinitionSubscription(dict):
    def __init__(__self__, *,
                 id: str,
                 source: str,
                 subject: str,
                 target: str):
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "subject", subject)
        pulumi.set(__self__, "target", target)

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def source(self) -> str:
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def subject(self) -> str:
        return pulumi.get(self, "subject")

    @property
    @pulumi.getter
    def target(self) -> str:
        return pulumi.get(self, "target")


@pulumi.output_type
class SubscriptionDefinitionSubscriptionDefinitionVersion(dict):
    def __init__(__self__, *,
                 subscriptions: Sequence['outputs.SubscriptionDefinitionSubscription']):
        pulumi.set(__self__, "subscriptions", subscriptions)

    @property
    @pulumi.getter
    def subscriptions(self) -> Sequence['outputs.SubscriptionDefinitionSubscription']:
        return pulumi.get(self, "subscriptions")


@pulumi.output_type
class SubscriptionDefinitionVersionSubscription(dict):
    def __init__(__self__, *,
                 id: str,
                 source: str,
                 subject: str,
                 target: str):
        pulumi.set(__self__, "id", id)
        pulumi.set(__self__, "source", source)
        pulumi.set(__self__, "subject", subject)
        pulumi.set(__self__, "target", target)

    @property
    @pulumi.getter
    def id(self) -> str:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter
    def source(self) -> str:
        return pulumi.get(self, "source")

    @property
    @pulumi.getter
    def subject(self) -> str:
        return pulumi.get(self, "subject")

    @property
    @pulumi.getter
    def target(self) -> str:
        return pulumi.get(self, "target")


