Skip to content

Type definitions#

Index > AppFabric > Type definitions

Auto-generated documentation for AppFabric type annotations stubs module mypy-boto3-appfabric.

ApiKeyCredentialTypeDef#

# ApiKeyCredentialTypeDef definition

class ApiKeyCredentialTypeDef(TypedDict):
    apiKey: str,

TenantTypeDef#

# TenantTypeDef definition

class TenantTypeDef(TypedDict):
    tenantIdentifier: str,
    tenantDisplayName: str,

AppBundleSummaryTypeDef#

# AppBundleSummaryTypeDef definition

class AppBundleSummaryTypeDef(TypedDict):
    arn: str,

AppBundleTypeDef#

# AppBundleTypeDef definition

class AppBundleTypeDef(TypedDict):
    arn: str,
    customerManagedKeyArn: NotRequired[str],

AuditLogProcessingConfigurationTypeDef#

# AuditLogProcessingConfigurationTypeDef definition

class AuditLogProcessingConfigurationTypeDef(TypedDict):
    schema: SchemaType,  # (1)
    format: FormatType,  # (2)
  1. See SchemaType
  2. See FormatType

AuthRequestTypeDef#

# AuthRequestTypeDef definition

class AuthRequestTypeDef(TypedDict):
    redirectUri: str,
    code: str,

BatchGetUserAccessTasksRequestRequestTypeDef#

# BatchGetUserAccessTasksRequestRequestTypeDef definition

class BatchGetUserAccessTasksRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    taskIdList: Sequence[str],

ResponseMetadataTypeDef#

# ResponseMetadataTypeDef definition

class ResponseMetadataTypeDef(TypedDict):
    RequestId: str,
    HTTPStatusCode: int,
    HTTPHeaders: Dict[str, str],
    RetryAttempts: int,
    HostId: NotRequired[str],

TagTypeDef#

# TagTypeDef definition

class TagTypeDef(TypedDict):
    key: str,
    value: str,

IngestionTypeDef#

# IngestionTypeDef definition

class IngestionTypeDef(TypedDict):
    arn: str,
    appBundleArn: str,
    app: str,
    tenantId: str,
    createdAt: datetime,
    updatedAt: datetime,
    state: IngestionStateType,  # (1)
    ingestionType: IngestionTypeType,  # (2)
  1. See IngestionStateType
  2. See IngestionTypeType

Oauth2CredentialTypeDef#

# Oauth2CredentialTypeDef definition

class Oauth2CredentialTypeDef(TypedDict):
    clientId: str,
    clientSecret: str,

DeleteAppAuthorizationRequestRequestTypeDef#

# DeleteAppAuthorizationRequestRequestTypeDef definition

class DeleteAppAuthorizationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    appAuthorizationIdentifier: str,

DeleteAppBundleRequestRequestTypeDef#

# DeleteAppBundleRequestRequestTypeDef definition

class DeleteAppBundleRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,

DeleteIngestionDestinationRequestRequestTypeDef#

# DeleteIngestionDestinationRequestRequestTypeDef definition

class DeleteIngestionDestinationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    ingestionDestinationIdentifier: str,

DeleteIngestionRequestRequestTypeDef#

# DeleteIngestionRequestRequestTypeDef definition

class DeleteIngestionRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,

FirehoseStreamTypeDef#

# FirehoseStreamTypeDef definition

class FirehoseStreamTypeDef(TypedDict):
    streamName: str,

S3BucketTypeDef#

# S3BucketTypeDef definition

class S3BucketTypeDef(TypedDict):
    bucketName: str,
    prefix: NotRequired[str],

GetAppAuthorizationRequestRequestTypeDef#

# GetAppAuthorizationRequestRequestTypeDef definition

class GetAppAuthorizationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    appAuthorizationIdentifier: str,

GetAppBundleRequestRequestTypeDef#

# GetAppBundleRequestRequestTypeDef definition

class GetAppBundleRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,

GetIngestionDestinationRequestRequestTypeDef#

# GetIngestionDestinationRequestRequestTypeDef definition

class GetIngestionDestinationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    ingestionDestinationIdentifier: str,

GetIngestionRequestRequestTypeDef#

# GetIngestionRequestRequestTypeDef definition

class GetIngestionRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,

IngestionDestinationSummaryTypeDef#

# IngestionDestinationSummaryTypeDef definition

class IngestionDestinationSummaryTypeDef(TypedDict):
    arn: str,

IngestionSummaryTypeDef#

# IngestionSummaryTypeDef definition

class IngestionSummaryTypeDef(TypedDict):
    arn: str,
    app: str,
    tenantId: str,
    state: IngestionStateType,  # (1)
  1. See IngestionStateType

PaginatorConfigTypeDef#

# PaginatorConfigTypeDef definition

class PaginatorConfigTypeDef(TypedDict):
    MaxItems: NotRequired[int],
    PageSize: NotRequired[int],
    StartingToken: NotRequired[str],

ListAppAuthorizationsRequestRequestTypeDef#

# ListAppAuthorizationsRequestRequestTypeDef definition

class ListAppAuthorizationsRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    maxResults: NotRequired[int],
    nextToken: NotRequired[str],

ListAppBundlesRequestRequestTypeDef#

# ListAppBundlesRequestRequestTypeDef definition

class ListAppBundlesRequestRequestTypeDef(TypedDict):
    maxResults: NotRequired[int],
    nextToken: NotRequired[str],

ListIngestionDestinationsRequestRequestTypeDef#

# ListIngestionDestinationsRequestRequestTypeDef definition

class ListIngestionDestinationsRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    maxResults: NotRequired[int],
    nextToken: NotRequired[str],

ListIngestionsRequestRequestTypeDef#

# ListIngestionsRequestRequestTypeDef definition

class ListIngestionsRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    maxResults: NotRequired[int],
    nextToken: NotRequired[str],

ListTagsForResourceRequestRequestTypeDef#

# ListTagsForResourceRequestRequestTypeDef definition

class ListTagsForResourceRequestRequestTypeDef(TypedDict):
    resourceArn: str,

StartIngestionRequestRequestTypeDef#

# StartIngestionRequestRequestTypeDef definition

class StartIngestionRequestRequestTypeDef(TypedDict):
    ingestionIdentifier: str,
    appBundleIdentifier: str,

StartUserAccessTasksRequestRequestTypeDef#

# StartUserAccessTasksRequestRequestTypeDef definition

class StartUserAccessTasksRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    email: str,

StopIngestionRequestRequestTypeDef#

# StopIngestionRequestRequestTypeDef definition

class StopIngestionRequestRequestTypeDef(TypedDict):
    ingestionIdentifier: str,
    appBundleIdentifier: str,

TaskErrorTypeDef#

# TaskErrorTypeDef definition

class TaskErrorTypeDef(TypedDict):
    errorCode: NotRequired[str],
    errorMessage: NotRequired[str],

UntagResourceRequestRequestTypeDef#

# UntagResourceRequestRequestTypeDef definition

class UntagResourceRequestRequestTypeDef(TypedDict):
    resourceArn: str,
    tagKeys: Sequence[str],

AppAuthorizationSummaryTypeDef#

# AppAuthorizationSummaryTypeDef definition

class AppAuthorizationSummaryTypeDef(TypedDict):
    appAuthorizationArn: str,
    appBundleArn: str,
    app: str,
    tenant: TenantTypeDef,  # (1)
    status: AppAuthorizationStatusType,  # (2)
    updatedAt: datetime,
  1. See TenantTypeDef
  2. See AppAuthorizationStatusType

AppAuthorizationTypeDef#

# AppAuthorizationTypeDef definition

class AppAuthorizationTypeDef(TypedDict):
    appAuthorizationArn: str,
    appBundleArn: str,
    app: str,
    tenant: TenantTypeDef,  # (1)
    authType: AuthTypeType,  # (2)
    status: AppAuthorizationStatusType,  # (3)
    createdAt: datetime,
    updatedAt: datetime,
    persona: NotRequired[PersonaType],  # (4)
    authUrl: NotRequired[str],
  1. See TenantTypeDef
  2. See AuthTypeType
  3. See AppAuthorizationStatusType
  4. See PersonaType

ProcessingConfigurationTypeDef#

# ProcessingConfigurationTypeDef definition

class ProcessingConfigurationTypeDef(TypedDict):
    auditLog: NotRequired[AuditLogProcessingConfigurationTypeDef],  # (1)
  1. See AuditLogProcessingConfigurationTypeDef

ConnectAppAuthorizationRequestRequestTypeDef#

# ConnectAppAuthorizationRequestRequestTypeDef definition

class ConnectAppAuthorizationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    appAuthorizationIdentifier: str,
    authRequest: NotRequired[AuthRequestTypeDef],  # (1)
  1. See AuthRequestTypeDef

CreateAppBundleResponseTypeDef#

# CreateAppBundleResponseTypeDef definition

class CreateAppBundleResponseTypeDef(TypedDict):
    appBundle: AppBundleTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppBundleTypeDef
  2. See ResponseMetadataTypeDef

GetAppBundleResponseTypeDef#

# GetAppBundleResponseTypeDef definition

class GetAppBundleResponseTypeDef(TypedDict):
    appBundle: AppBundleTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppBundleTypeDef
  2. See ResponseMetadataTypeDef

ListAppBundlesResponseTypeDef#

# ListAppBundlesResponseTypeDef definition

class ListAppBundlesResponseTypeDef(TypedDict):
    appBundleSummaryList: List[AppBundleSummaryTypeDef],  # (1)
    nextToken: str,
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppBundleSummaryTypeDef
  2. See ResponseMetadataTypeDef

CreateAppBundleRequestRequestTypeDef#

# CreateAppBundleRequestRequestTypeDef definition

class CreateAppBundleRequestRequestTypeDef(TypedDict):
    clientToken: NotRequired[str],
    customerManagedKeyIdentifier: NotRequired[str],
    tags: NotRequired[Sequence[TagTypeDef]],  # (1)
  1. See TagTypeDef

CreateIngestionRequestRequestTypeDef#

# CreateIngestionRequestRequestTypeDef definition

class CreateIngestionRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    app: str,
    tenantId: str,
    ingestionType: IngestionTypeType,  # (1)
    clientToken: NotRequired[str],
    tags: NotRequired[Sequence[TagTypeDef]],  # (2)
  1. See IngestionTypeType
  2. See TagTypeDef

ListTagsForResourceResponseTypeDef#

# ListTagsForResourceResponseTypeDef definition

class ListTagsForResourceResponseTypeDef(TypedDict):
    tags: List[TagTypeDef],  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See TagTypeDef
  2. See ResponseMetadataTypeDef

TagResourceRequestRequestTypeDef#

# TagResourceRequestRequestTypeDef definition

class TagResourceRequestRequestTypeDef(TypedDict):
    resourceArn: str,
    tags: Sequence[TagTypeDef],  # (1)
  1. See TagTypeDef

CreateIngestionResponseTypeDef#

# CreateIngestionResponseTypeDef definition

class CreateIngestionResponseTypeDef(TypedDict):
    ingestion: IngestionTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionTypeDef
  2. See ResponseMetadataTypeDef

GetIngestionResponseTypeDef#

# GetIngestionResponseTypeDef definition

class GetIngestionResponseTypeDef(TypedDict):
    ingestion: IngestionTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionTypeDef
  2. See ResponseMetadataTypeDef

CredentialTypeDef#

# CredentialTypeDef definition

class CredentialTypeDef(TypedDict):
    oauth2Credential: NotRequired[Oauth2CredentialTypeDef],  # (1)
    apiKeyCredential: NotRequired[ApiKeyCredentialTypeDef],  # (2)
  1. See Oauth2CredentialTypeDef
  2. See ApiKeyCredentialTypeDef

DestinationTypeDef#

# DestinationTypeDef definition

class DestinationTypeDef(TypedDict):
    s3Bucket: NotRequired[S3BucketTypeDef],  # (1)
    firehoseStream: NotRequired[FirehoseStreamTypeDef],  # (2)
  1. See S3BucketTypeDef
  2. See FirehoseStreamTypeDef

ListIngestionDestinationsResponseTypeDef#

# ListIngestionDestinationsResponseTypeDef definition

class ListIngestionDestinationsResponseTypeDef(TypedDict):
    ingestionDestinations: List[IngestionDestinationSummaryTypeDef],  # (1)
    nextToken: str,
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionDestinationSummaryTypeDef
  2. See ResponseMetadataTypeDef

ListIngestionsResponseTypeDef#

# ListIngestionsResponseTypeDef definition

class ListIngestionsResponseTypeDef(TypedDict):
    ingestions: List[IngestionSummaryTypeDef],  # (1)
    nextToken: str,
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionSummaryTypeDef
  2. See ResponseMetadataTypeDef

ListAppAuthorizationsRequestListAppAuthorizationsPaginateTypeDef#

# ListAppAuthorizationsRequestListAppAuthorizationsPaginateTypeDef definition

class ListAppAuthorizationsRequestListAppAuthorizationsPaginateTypeDef(TypedDict):
    appBundleIdentifier: str,
    PaginationConfig: NotRequired[PaginatorConfigTypeDef],  # (1)
  1. See PaginatorConfigTypeDef

ListAppBundlesRequestListAppBundlesPaginateTypeDef#

# ListAppBundlesRequestListAppBundlesPaginateTypeDef definition

class ListAppBundlesRequestListAppBundlesPaginateTypeDef(TypedDict):
    PaginationConfig: NotRequired[PaginatorConfigTypeDef],  # (1)
  1. See PaginatorConfigTypeDef

ListIngestionDestinationsRequestListIngestionDestinationsPaginateTypeDef#

# ListIngestionDestinationsRequestListIngestionDestinationsPaginateTypeDef definition

class ListIngestionDestinationsRequestListIngestionDestinationsPaginateTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    PaginationConfig: NotRequired[PaginatorConfigTypeDef],  # (1)
  1. See PaginatorConfigTypeDef

ListIngestionsRequestListIngestionsPaginateTypeDef#

# ListIngestionsRequestListIngestionsPaginateTypeDef definition

class ListIngestionsRequestListIngestionsPaginateTypeDef(TypedDict):
    appBundleIdentifier: str,
    PaginationConfig: NotRequired[PaginatorConfigTypeDef],  # (1)
  1. See PaginatorConfigTypeDef

UserAccessResultItemTypeDef#

# UserAccessResultItemTypeDef definition

class UserAccessResultItemTypeDef(TypedDict):
    app: NotRequired[str],
    tenantId: NotRequired[str],
    tenantDisplayName: NotRequired[str],
    taskId: NotRequired[str],
    resultStatus: NotRequired[ResultStatusType],  # (1)
    email: NotRequired[str],
    userId: NotRequired[str],
    userFullName: NotRequired[str],
    userFirstName: NotRequired[str],
    userLastName: NotRequired[str],
    userStatus: NotRequired[str],
    taskError: NotRequired[TaskErrorTypeDef],  # (2)
  1. See ResultStatusType
  2. See TaskErrorTypeDef

UserAccessTaskItemTypeDef#

# UserAccessTaskItemTypeDef definition

class UserAccessTaskItemTypeDef(TypedDict):
    app: str,
    tenantId: str,
    taskId: NotRequired[str],
    error: NotRequired[TaskErrorTypeDef],  # (1)
  1. See TaskErrorTypeDef

ConnectAppAuthorizationResponseTypeDef#

# ConnectAppAuthorizationResponseTypeDef definition

class ConnectAppAuthorizationResponseTypeDef(TypedDict):
    appAuthorizationSummary: AppAuthorizationSummaryTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppAuthorizationSummaryTypeDef
  2. See ResponseMetadataTypeDef

ListAppAuthorizationsResponseTypeDef#

# ListAppAuthorizationsResponseTypeDef definition

class ListAppAuthorizationsResponseTypeDef(TypedDict):
    appAuthorizationSummaryList: List[AppAuthorizationSummaryTypeDef],  # (1)
    nextToken: str,
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppAuthorizationSummaryTypeDef
  2. See ResponseMetadataTypeDef

CreateAppAuthorizationResponseTypeDef#

# CreateAppAuthorizationResponseTypeDef definition

class CreateAppAuthorizationResponseTypeDef(TypedDict):
    appAuthorization: AppAuthorizationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppAuthorizationTypeDef
  2. See ResponseMetadataTypeDef

GetAppAuthorizationResponseTypeDef#

# GetAppAuthorizationResponseTypeDef definition

class GetAppAuthorizationResponseTypeDef(TypedDict):
    appAuthorization: AppAuthorizationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppAuthorizationTypeDef
  2. See ResponseMetadataTypeDef

UpdateAppAuthorizationResponseTypeDef#

# UpdateAppAuthorizationResponseTypeDef definition

class UpdateAppAuthorizationResponseTypeDef(TypedDict):
    appAuthorization: AppAuthorizationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See AppAuthorizationTypeDef
  2. See ResponseMetadataTypeDef

CreateAppAuthorizationRequestRequestTypeDef#

# CreateAppAuthorizationRequestRequestTypeDef definition

class CreateAppAuthorizationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    app: str,
    credential: CredentialTypeDef,  # (1)
    tenant: TenantTypeDef,  # (2)
    authType: AuthTypeType,  # (3)
    clientToken: NotRequired[str],
    tags: NotRequired[Sequence[TagTypeDef]],  # (4)
  1. See CredentialTypeDef
  2. See TenantTypeDef
  3. See AuthTypeType
  4. See TagTypeDef

UpdateAppAuthorizationRequestRequestTypeDef#

# UpdateAppAuthorizationRequestRequestTypeDef definition

class UpdateAppAuthorizationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    appAuthorizationIdentifier: str,
    credential: NotRequired[CredentialTypeDef],  # (1)
    tenant: NotRequired[TenantTypeDef],  # (2)
  1. See CredentialTypeDef
  2. See TenantTypeDef

AuditLogDestinationConfigurationTypeDef#

# AuditLogDestinationConfigurationTypeDef definition

class AuditLogDestinationConfigurationTypeDef(TypedDict):
    destination: DestinationTypeDef,  # (1)
  1. See DestinationTypeDef

BatchGetUserAccessTasksResponseTypeDef#

# BatchGetUserAccessTasksResponseTypeDef definition

class BatchGetUserAccessTasksResponseTypeDef(TypedDict):
    userAccessResultsList: List[UserAccessResultItemTypeDef],  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See UserAccessResultItemTypeDef
  2. See ResponseMetadataTypeDef

StartUserAccessTasksResponseTypeDef#

# StartUserAccessTasksResponseTypeDef definition

class StartUserAccessTasksResponseTypeDef(TypedDict):
    userAccessTasksList: List[UserAccessTaskItemTypeDef],  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See UserAccessTaskItemTypeDef
  2. See ResponseMetadataTypeDef

DestinationConfigurationTypeDef#

# DestinationConfigurationTypeDef definition

class DestinationConfigurationTypeDef(TypedDict):
    auditLog: NotRequired[AuditLogDestinationConfigurationTypeDef],  # (1)
  1. See AuditLogDestinationConfigurationTypeDef

CreateIngestionDestinationRequestRequestTypeDef#

# CreateIngestionDestinationRequestRequestTypeDef definition

class CreateIngestionDestinationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    processingConfiguration: ProcessingConfigurationTypeDef,  # (1)
    destinationConfiguration: DestinationConfigurationTypeDef,  # (2)
    clientToken: NotRequired[str],
    tags: NotRequired[Sequence[TagTypeDef]],  # (3)
  1. See ProcessingConfigurationTypeDef
  2. See DestinationConfigurationTypeDef
  3. See TagTypeDef

IngestionDestinationTypeDef#

# IngestionDestinationTypeDef definition

class IngestionDestinationTypeDef(TypedDict):
    arn: str,
    ingestionArn: str,
    processingConfiguration: ProcessingConfigurationTypeDef,  # (1)
    destinationConfiguration: DestinationConfigurationTypeDef,  # (2)
    status: NotRequired[IngestionDestinationStatusType],  # (3)
    statusReason: NotRequired[str],
    createdAt: NotRequired[datetime],
    updatedAt: NotRequired[datetime],
  1. See ProcessingConfigurationTypeDef
  2. See DestinationConfigurationTypeDef
  3. See IngestionDestinationStatusType

UpdateIngestionDestinationRequestRequestTypeDef#

# UpdateIngestionDestinationRequestRequestTypeDef definition

class UpdateIngestionDestinationRequestRequestTypeDef(TypedDict):
    appBundleIdentifier: str,
    ingestionIdentifier: str,
    ingestionDestinationIdentifier: str,
    destinationConfiguration: DestinationConfigurationTypeDef,  # (1)
  1. See DestinationConfigurationTypeDef

CreateIngestionDestinationResponseTypeDef#

# CreateIngestionDestinationResponseTypeDef definition

class CreateIngestionDestinationResponseTypeDef(TypedDict):
    ingestionDestination: IngestionDestinationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionDestinationTypeDef
  2. See ResponseMetadataTypeDef

GetIngestionDestinationResponseTypeDef#

# GetIngestionDestinationResponseTypeDef definition

class GetIngestionDestinationResponseTypeDef(TypedDict):
    ingestionDestination: IngestionDestinationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionDestinationTypeDef
  2. See ResponseMetadataTypeDef

UpdateIngestionDestinationResponseTypeDef#

# UpdateIngestionDestinationResponseTypeDef definition

class UpdateIngestionDestinationResponseTypeDef(TypedDict):
    ingestionDestination: IngestionDestinationTypeDef,  # (1)
    ResponseMetadata: ResponseMetadataTypeDef,  # (2)
  1. See IngestionDestinationTypeDef
  2. See ResponseMetadataTypeDef