# CustomMetadataProperty

> Type in domain **Metadata**

- HTML: [CustomMetadataProperty.html](CustomMetadataProperty.html)
- Raw SDL: [CustomMetadataProperty.sdl](CustomMetadataProperty.sdl)
- Covered by: [llms.txt](../llms.txt)

Implements: `Node`

## Fields

- `id`: `ID!` — `CustomMetadataProperty` Id.
- `creator`: `User!` — `User` who created the `CustomMetadataProperty`.
- `createdAt`: `DateTime!` — `DateTime` of the `CustomMetadataProperty` creation.
- `modifier`: `User` — `User` who last modified the `CustomMetadataProperty`.
- `modifiedAt`: `DateTime` — `DateTime` of the `CustomMetadataProperty`'s last modification.
- `name`: `String!` — `CustomMetadataProperty` name.
- `type`: `CustomMetadataPropertyType!` — `CustomMetadataProperty` type details.
- `helpText`: `String` — `CustomMetadataProperty` help text.
- `isRequired`: `Boolean!` — Indicates if a `CustomMetadataProperty` is required to be defined.
- `isSearchable`: `Boolean!` _(beta)_ — Indicates if a `CustomMetadataProperty` is searchable.
- `isViewable`: `Boolean!` _(beta)_ — Indicates if a `CustomMetadataProperty` is viewable. This is a stored flag that hides the property from users entirely, independent of the current user's access. See `currentUserPermissions` for the per-request, access-rule-based canEdit/canAdmin checks.
- `defaultValue`: `Any` — `CustomMetadataProperty` value set to newly update `Assets` by default.
- `dependency`: `CustomMetadataPropertyDependency` _(beta)_ — `CustomMetadataPropertyDependency` details.
- `forbiddenDependeePropertyIds`: `[ID!]` _(beta)_ — `CustomMetadataProperty` Ids that cannot be used as dependee properties.
- `permissions`: `CustomMetadataPropertyPermissions` _(beta)_ — `CustomMetadataProperty` permissions.

## Related mutations

- [`createCustomMetadataProperty`](../mutation/createCustomMetadataProperty.md)
- [`deleteCustomMetadataProperty`](../mutation/deleteCustomMetadataProperty.md)
- [`updateCustomMetadataProperty`](../mutation/updateCustomMetadataProperty.md)

## Reach via

Example queries that can return this type from the root `Query`.

### `brand › customMetadataProperties`

```graphql
query BrandCustomMetadataProperties {
  brand(id: "…") {
    customMetadataProperties {
      __typename
      createdAt
      creator {
        __typename
        name
        id
      }
      defaultValue
      dependency {
        __typename
        propertyId
        type
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeEquals {
          propertyOptionId
        }
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeOneOf {
          propertyOptionIds
        }
      }
      forbiddenDependeePropertyIds
      helpText
      id
      isRequired
      isSearchable
      isViewable
      modifiedAt
      modifier {
        __typename
        name
        id
      }
      name
      permissions {
        basic {
          permissionLevel
          subject
        }
        custom {
          permissionLevel
          subject {
            __typename
            ... on AccountUser { id }
            ... on UserGroup { id }
          }
        }
      }
      type {
        __typename
        name
        ... on CustomMetadataPropertyTypeCatalog {
          allowedLinkedColumnIds
          allowMultiSelect
        }
      }
    }
  }
}
```

Raw: [`BrandCustomMetadataProperties.sdl`](../examples/BrandCustomMetadataProperties.sdl)

### `library › customMetadataProperties`

```graphql
query LibraryCustomMetadataProperties {
  library(id: "…") {
    customMetadataProperties {
      __typename
      createdAt
      creator {
        __typename
        name
        id
      }
      defaultValue
      dependency {
        __typename
        propertyId
        type
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeEquals {
          propertyOptionId
        }
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeOneOf {
          propertyOptionIds
        }
      }
      forbiddenDependeePropertyIds
      helpText
      id
      isRequired
      isSearchable
      isViewable
      modifiedAt
      modifier {
        __typename
        name
        id
      }
      name
      permissions {
        basic {
          permissionLevel
          subject
        }
        custom {
          permissionLevel
          subject {
            __typename
            ... on AccountUser { id }
            ... on UserGroup { id }
          }
        }
      }
      type {
        __typename
        name
        ... on CustomMetadataPropertyTypeCatalog {
          allowedLinkedColumnIds
          allowMultiSelect
        }
      }
    }
  }
}
```

Raw: [`LibraryCustomMetadataProperties.sdl`](../examples/LibraryCustomMetadataProperties.sdl)

### `brands › customMetadataProperties`

```graphql
query BrandsCustomMetadataProperties {
  brands {
    customMetadataProperties {
      __typename
      createdAt
      creator {
        __typename
        name
        id
      }
      defaultValue
      dependency {
        __typename
        propertyId
        type
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeEquals {
          propertyOptionId
        }
        ... on CustomMetadataPropertySelectValueTypeDependencyTypeOneOf {
          propertyOptionIds
        }
      }
      forbiddenDependeePropertyIds
      helpText
      id
      isRequired
      isSearchable
      isViewable
      modifiedAt
      modifier {
        __typename
        name
        id
      }
      name
      permissions {
        basic {
          permissionLevel
          subject
        }
        custom {
          permissionLevel
          subject {
            __typename
            ... on AccountUser { id }
            ... on UserGroup { id }
          }
        }
      }
      type {
        __typename
        name
        ... on CustomMetadataPropertyTypeCatalog {
          allowedLinkedColumnIds
          allowMultiSelect
        }
      }
    }
  }
}
```

Raw: [`BrandsCustomMetadataProperties.sdl`](../examples/BrandsCustomMetadataProperties.sdl)

### `assets › customMetadata › property`

```graphql
query AssetsCustomMetadataProperty {
  assets(ids: "…") {
    customMetadata {
      property {
        __typename
        createdAt
        creator {
          __typename
          name
          id
        }
        defaultValue
        dependency {
          __typename
          propertyId
          type
          ... on CustomMetadataPropertySelectValueTypeDependencyTypeEquals {
            propertyOptionId
          }
          ... on CustomMetadataPropertySelectValueTypeDependencyTypeOneOf {
            propertyOptionIds
          }
        }
        forbiddenDependeePropertyIds
        helpText
        id
        isRequired
        isSearchable
        isViewable
        modifiedAt
        modifier {
          __typename
          name
          id
        }
        name
        permissions {
          basic {
            permissionLevel
            subject
          }
          custom {
            permissionLevel
            subject {
              __typename
              ... on AccountUser { id }
              ... on UserGroup { id }
            }
          }
        }
        type {
          __typename
          name
          ... on CustomMetadataPropertyTypeCatalog {
            allowedLinkedColumnIds
            allowMultiSelect
          }
        }
      }
    }
  }
}
```

Raw: [`AssetsCustomMetadataProperty.sdl`](../examples/AssetsCustomMetadataProperty.sdl)

### `asset › customMetadata › property`

```graphql
query AssetCustomMetadataProperty {
  asset(id: "…") {
    customMetadata {
      property {
        __typename
        createdAt
        creator {
          __typename
          name
          id
        }
        defaultValue
        dependency {
          __typename
          propertyId
          type
          ... on CustomMetadataPropertySelectValueTypeDependencyTypeEquals {
            propertyOptionId
          }
          ... on CustomMetadataPropertySelectValueTypeDependencyTypeOneOf {
            propertyOptionIds
          }
        }
        forbiddenDependeePropertyIds
        helpText
        id
        isRequired
        isSearchable
        isViewable
        modifiedAt
        modifier {
          __typename
          name
          id
        }
        name
        permissions {
          basic {
            permissionLevel
            subject
          }
          custom {
            permissionLevel
            subject {
              __typename
              ... on AccountUser { id }
              ... on UserGroup { id }
            }
          }
        }
        type {
          __typename
          name
          ... on CustomMetadataPropertyTypeCatalog {
            allowedLinkedColumnIds
            allowMultiSelect
          }
        }
      }
    }
  }
}
```

Raw: [`AssetCustomMetadataProperty.sdl`](../examples/AssetCustomMetadataProperty.sdl)
