NAV Navbar
GraphQL

Dalet Galaxy five API

Dalet Galaxy five exposes a GraphQL-based web service that provides an interface into Dalet operations and data.

Getting Started

The application server WebService3 publishes this GraphQL API and is available for deployment from Dalet Galaxy Remote Admin inventory. It comes with configurable SSL options and endpoint port.

The link to the WebService3 server's welcome web page is available from the Settings page in the application server in Remote Admin inventory. The following resources are available on the welcome web page of WebService3:

  1. The GraphQL endpoint of the GraphQL API.
  2. The GraphiQL Web client. This interactive GraphQL client allows you to use the web service and activate its queries, mutations and subscriptions, via a web browser. It also includes built-in documentation for each operation describing methods’ inputs and outputs and other relevant information.
  3. A user guide PDF document.

To get familiar with GraphQL technology, you can start by reading the following documentation:

Learn GraphQL

Then you can use the GraphiQL Web client to experiment with GraphQL operations against your Dalet site. Note that any operation executed with this web client will be performed against your Dalet site, so you can retrieve real data and update it.

Security

SSL

WebService3 provides the option to access the service via https and to establish a secure connection with standard SSL certificates encryption.
This option is available when configuring the server, and requires:

Authentication

To authorize, use this code:

mutation LoginToDalet {
        login (
            input: {
                username: "MyLogin",
                password: "MyPassword" } ) 
            {
            token
        }
    }

The above command returns JSON structured like this:

{
  "data": {
    "login": {
      "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJkYWxldF9hZG1pbiIsImV4c
      CI6MTU4MjEzOTEyNCwiaWF0IjoxNTgyMTI0NzI0LCJ1c2VySWQiOiIxIn0.j8p0G0OBcpGELGKRyPqysi
      h0I8wWTqHrvVyk4bNydTUu4jfhTCBOTKdwpSL6haJWXJ3Q_-HloSLtVxuVk-cVOUHVfU74-mKgbKqak7_Foa14AAur9tt
      j61FI-5NlhDLzRzxSp0cWl0FTnfxZNr-EMUjSYxqlz4dWG0scrkQuFgbqPx13-R0GdbkIrtcakO_WOdCzm55_Yga_B_gfTIotL8
      1m9ELQxRdl6aG7CoVpjayW8TmmVrradXkRTMy_g1PXiy7AtIXRUF9y9WNcVON5oCZkvBEgXVRG70HEtgpJ9Mjf7ND8TdeoGHNvg
      VQJiWmY4EObWapRaSb90pw0GErypw"
    }
  }
}

The WebService3 server works with OAuth2 authentication, every operation performed against the service requires a JWT token to be passed in the request. To acquire a token, first perform a login request. The token is valid for 4 hours.

The login mutation does not require previous authentication, while all other operations do.

On providing valid username/password to the login mutation, you will receive a JWT token that you must provide in all future operations.

For regular http requests such as Query and Mutation, you must provide this token in the HTTP header called “Authorization” with the prefix “Bearer “:

Authorization: Bearer eyj0...mTnG

For Subscription over websocket, when connecting, the payload of the “connection_init” message must be a map with at least one key “Authorization” where the value is the JWT token with the prefix “Bearer “:

{ "type": "connection_init", "payload": { "Authorization": "Bearer eyj0...mTnG" } } }

Operations

Assets

Describes operations to create, retrieve, update and delete assets.

query assets

Example: Retrieve all video assets with item code "Ready" and with duration of 50 minutes

query {
  assets(
    input: {
      where: {
        assetTypesWith: { mediaTypes: [VIDEO] }
        metadataSearchMode: ALL_MATCH
        metadata: [
          { field: { name: "Item Code" }, value: "Ready" }
          { field: { name: "Title Duration" }, value: "P0:50:0.000S PAL" }
        ]
      }
    }
  ) {
    assets {
      id
      name
    }
  }
}

Retrieve information about assets matching the supplied filter.
Assets can be filtered by their ids, itemCodes, assetTypesWith, metadata, metadataSerchMode and categories.
The retrieved assets are an intersection of all filter fields.
In order to retrieve an asset, user should have View rights to its primary category.

Name Type Required? Description
where AssetFilterInput No Filter used to select the assets to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of assets matching the input filter

subqueries

Queries to retrieve information about assets from outputs of other operations.

Example: Retrieve the first five assets that reference the asset with id 17392 as metadata

query {
  assets(input: { where: { ids: [17392] } }) {
    assets {
      id
      usage {
        assetMetadataUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery assetMetadataUsage

Retrieve the assets that reference the current asset as metadata.
Assets can be filtered by their ids, itemCodes, assetTypesWith, metadata, metadataSerchMode and categories.
The retrieved assets correspond to the supplied filter.
In order to retrieve an asset, user should have View rights to its primary category.

Name Type Required? Description
where AssetFilterInput No Filter used to select the assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of assets matching the input filter

Example: Retrieve the first five bundle assets that have asset with id 357560 listed inside them

query {
  assets(input: { where: { ids: [357560] } }) {
    assets {
      id
      usage {
        bundlesUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery bundlesUsage

Retrieve the bundle assets that have the current asset listed inside them.
Bundle assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved bundle assets correspond to the supplied filter.
In order to retrieve a bundle asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the bundle assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of bundle assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of bundle assets matching the input filter

Example: Retrieve the first five clip assets that have asset with id 357014 as parent

query {
  assets(input: { where: { ids: [357014] } }) {
    assets {
      id
      usage {
        clipsUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery clipsUsage

Retrieve the clip assets that have the current asset as parent.
Clip assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved clip assets correspond to the supplied filter.
In order to retrieve a clip asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the clip assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of clip assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of clip assets matching the input filter

Example: Retrieve the first five EDL assets that have asset with id 356822 listed inside them

query {
  assets(input: { where: { ids: [356822] } }) {
    assets {
      id
      usage {
        edlsUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery edlsUsage

Retrieve the EDL assets that have the current asset listed inside them.
EDL assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved EDL assets correspond to the supplied filter.
In order to retrieve an EDL asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the EDL assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of EDL assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of EDL assets matching the input filter

Example: Retrieve the first five group assets that have asset with id 356290 listed inside them

query {
  assets(input: { where: { ids: [356290] } }) {
    assets {
      id
      usage {
        groupsUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery groupsUsage

Retrieve the group assets that have the current asset listed inside them.
Group assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved group assets correspond to the supplied filter.
In order to retrieve a group asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the group assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of group assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of group assets matching the input filter

Example: Retrieve the first five pattern assets that have asset with id 357540 listed inside them

query {
  assets(input: { where: { ids: [357540] } }) {
    assets {
      id
      usage {
        patternsUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery patternsUsage

Retrieve the pattern assets that have the current asset listed inside them.
Pattern assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved pattern assets correspond to the supplied filter.
In order to retrieve a pattern asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the pattern assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of pattern assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of pattern assets matching the input filter

Example: Retrieve the first five story assets that have asset with id 355560 embedded inside them

query {
  assets(input: { where: { ids: [355560] } }) {
    assets {
      id
      usage {
        storiesUsage(input: { select: { first: 5 } }) {
          assets {
            id
            name
            itemCode
            status {
              name
            }
          }
        }
      }
    }
  }
}

subquery storiesUsage

Retrieve the story assets that have the current asset embedded inside them.
Story assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved story assets correspond to the supplied filter.
In order to retrieve a story asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the story assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of story assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of story assets matching the input filter

Example: Retrieve the first five media assets listed in bundle asset with id 355260

query {
  assets(input: { where: { ids: [355260] } }) {
    assets {
      ... on BundleAsset {
        mediaAssets(input: { select: { first: 5 } }) {
          assets {
            id
          }
        }
      }
    }
  }
}

subquery mediaAssets

Retrieve the media assets listed in the current bundle asset.
Media assets can be filtered by their ids, itemCodes, assetTypesWith, metadata, metadataSerchMode and categories.
The retrieved media assets match the supplied filter.
In order to retrieve a media asset, user should have View rights to its primary category.

Name Type Required? Description
where AssetFilterInput No Filter used to select the media assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of media assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of media assets matching the input filter

Example: Retrieve the first five track stack assets listed in bundle asset with id 355260

query {
  assets(input: { where: { ids: [355260] } }) {
    assets {
      ... on BundleAsset {
        trackStackAssets(input: { select: { first: 5 } }) {
          assets {
            id
          }
        }
      }
    }
  }
}

subquery trackStackAssets

Retrieve the track stack assets listed in the current bundle asset.
Track stack assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved track stack assets match the supplied filter.
In order to retrieve a track stack asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the track stack assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of track stack assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of track stack assets matching the input filter

Example: Retrieve the first five version assets listed in bundle asset with id 355260

query {
  assets(input: { where: { ids: [355260] } }) {
    assets {
      ... on BundleAsset {
        versionAssets(input: { select: { first: 5 } }) {
          assets {
            id
          }
        }
      }
    }
  }
}

subquery versionAssets

Retrieve the version assets listed in the current bundle asset.
Version assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved version assets match the supplied filter.
In order to retrieve a version asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the version assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of version assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of version assets matching the input filter

Example: Retrieve all video assets from category with id 67

query {
  categories(input: { where: { ids: [67] } }) {
    categories {
      assets(input: { where: { assetTypesWith: { mediaTypes: [VIDEO] } } }) {
        assets {
          id
          name
        }
      }
    }
  }
}

subquery assets

Retrieve information about assets associated to the given category.
Assets can be filtered by their ids, itemCodes, assetTypesWith, metadata and metadataSerchMode.
The retrieved assets match the supplied filter.
In order to retrieve an asset, user should have View rights to its primary category.

Name Type Required? Description
where AssetInCategoryFilterInput No Filter used to select the assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of assets matching the input filter
pageInfo PageInfo Information about the current page of results
assets [AssetIfc] List of assets matching the input filter

Example: Retrieve the first five items inside group asset with id 356290

query {
  assets(input: { where: { ids: [356290] } }) {
    assets {
      id
      name
      ... on GroupAsset {
        items(input: { select: { first: 5 } }) {
          items {
            id
          }
        }
      }
    }
  }
}

subquery items

Retrieve items contained in the current group asset.
Group items can be filtered by their groupItemIds.
The retrieved group items match the supplied filter.

Name Type Required? Description
where NestedGroupItemsFilterInput No Filter used to select the items to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of items matching the input filter
pageInfo PageInfo Information about the current page of results
items [GroupItem] List of items matching the input filter

Example: Retrieve the first five associations for cg asset with id 357767

query {
  assets(input: { where: { ids: [357767] } }) {
    assets {
      ... on VideoAsset {
        cgToVideoAssociations(input: { select: { first: 5 } }) {
          cgToVideoAssociations {
            id
            videoAsset {
              id
            }
            cgAsset {
              id
            }
          }
        }
      }
    }
  }
}

subquery cgToVideoAssociations

Retrieve the CG assets associated to the current asset.
CG assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved CG assets match the supplied filter.
There can be at most one CG asset per CG channel.
In order to retrieve an asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the CG assets to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of CG to video associations matching the input filter
pageInfo PageInfo Information about the current page of results
CGToVideoAssociationsOutput [CGToVideoAssociation] List of CG to video associations

Example: Retrieve the first five associations for subtitle asset with id 2772

query {
  assets(input: { where: { ids: [2772] } }) {
    assets {
      id
      ... on VideoAsset {
        subtitlesToVideoAssociations(input: { select: { first: 5 } }) {
          subtitlesToVideoAssociations {
            id
            studioChannel {
              id
            }
            videoAsset {
              id
            }
            subtitlesAsset {
              id
            }
          }
        }
      }
    }
  }
}

subquery subtitlesToVideoAssociations

Retrieve the subtitles assets associated to the current asset.
Subtitles assets can be filtered by their ids, itemCodes, metadata, metadataSerchMode and categories.
The retrieved subtitles assets match the supplied filter.
There can be at most one subtitles asset per subtitles channel.
In order to retrieve an asset, user should have View rights to its primary category.

Name Type Required? Description
where SingleTypeAssetsFilterInput No Filter used to select the subtitles to video associations to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of Subtitles to video associations matching the input filter
pageInfo PageInfo Information about the current page of results
subtitlesToVideoAssociations [SubtitlesToVideoAssociation] List of Subtitles to video associations

mutation addItemsToGroups

Example: Add 2 asset segments to a group. The first will start at the beginning of the media's duration and will finish after 10:15 minutes, and the second will start 05:00 minutes before the end of the media's duration and will finish at the end of the media's duration

mutation {
  addItemsToGroups(input: { itemsToGroups: { groupId:2002,
  assetSegments: [ { assetId:2000, position: 0, tcOut: "00:10:15", tcOutRelativeToStart: true },
                   { assetId:1986, tcIn:"00:05:00", tcInRelativeToEnd:true } ] } } ) {
    groupItems {
      id
      asset {
        id
      }
    }
  }
}

Add a list of items to a specific group.
Items provided as part of ItemsToGroupInput must not be of type group assets.
In order to add items to group assets, user should have Insert and Remove rights on the category of the group asset and View rights on the category of the asset that he wants to add to the group.
The asset type of the item that is added to the group must correspond with the group channels configuration.

Name Type Required? Description
itemsToGroups [ItemsToGroupInput] Yes List of assets added to the group
Name Type Description
groupItems [GroupItem] List of assets that were added to the group

mutation copyAsset

Example: Copy different types of information from assets

mutation {
  metadata: copyAsset( input: {
      copyTypes: INHERITABLE_METADATA 
      sourceAssetId: 17392, targetAssetId: 354890
    } ) { 
    updatedAsset {
      id
  } }

  locators: copyAsset( input: {
      copyTypes: INHERITABLE_LOCATORS
      sourceAssetId: 2058, targetAssetId: 356887
    } ) { 
    updatedAsset {
      id
  } }

  genealogy: copyAsset( input: {
      copyTypes: GENEALOGY
      sourceAssetId: 354870, targetAssetId: 356830
    } ) { 
    updatedAsset {
      id
} } }

Copy information from one asset to another.
In order to copy information from one asset to another, user should have View rights on the category of the source asset and Insert and Remove rights on the category of the target asset.

Name Type Required? Description
copyTypes [CopyAssetDataType] Yes The type of the copy used when copying from a source asset to a target asset
sourceAssetId ID Yes The asset we copy from
targetAssetId ID Yes The asset we copy to
Name Type Description
updatedAsset AssetIfc The updated asset

mutation createAudioAssets

Example: Create an audio asset with keyword "API3" and status "Approved" in category with id 0

mutation {
  createAudioAssets(
    input: {
      assets: {
        assetName: "AudioAsset"
        categoryId: "0"
        itemCode: "ITEMCODE"
        status: { name: "Approved" }
        metadata: { field: { name: "Keywords" }, value: "API3" } } } ) {
    assets {
      id
    }
  }
}

Create a list of audio assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateAudioAssetInput] Yes List of inputs that defines the audio assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createBundleAssets

Example: Create a bundle asset with status "Approved" in category with id 0 and a specified keep date

mutation {
  createBundleAssets(
    input: {
      assets: {
        assetName: "BundleAsset"
        categoryId: "0"
        status: { name: "Approved" }
        itemCode: "ITEMCODE"
        metadata: {
          field: { name: "Title Keep Date" }, value: "2022-08-12T10:10:10.100" } } } ) {
    assets {
      id
    }
  }
}

Create a list of bundle assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateBundleAssetInput] Yes List of inputs that defines the bundle assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createCGAssets

Example: Create a CG asset of type with id 1080 in category with id 0 and a specified metadata value

mutation {
  createCGAssets(
    input: {
      assets: {
        assetName: "CG"
        categoryId: "0"
        cgType: { id: "1080" }
        itemCode: "ITEMCODE"
        metadata: { field: { name: "CG Ready" }, value: "Completed" } } } ) {
    assets {
      id
    }
  }
}

Create a list of CG assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateCGAssetInput] Yes List of inputs that defines the CG assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createCGToVideoAssociations

Example: Create an association between CG asset with id 356336 and video asset with id 17392

mutation {
  createCGToVideoAssociations(
    input: {
      associations: {
        videoAssetId: 17392
        cgAssetId: 356336
        studioChannelName: "CG"
      }
    }
  ) {
    associations {
      id
    }
  }
}

Create associations between CG assets and video assets.
Creating a CG to video asset association with tcIn matching existing association on same channel will overwrite the CG asset id and tcOut values of the existing association. The association id will not change. There is no limitation of the number of associations per channel for a video asset.
In order to associate a CG asset with a video asset, user should have Insert and Remove rights on the category of the video asset and View rights on the category of the CG asset.

Name Type Required? Description
associations [CreateCGToVideoAssociationInput] Yes
Name Type Description
associations [CGToVideoAssociation] List of the created associations

mutation createClipAssets

Example: Create a clip asset in category with id 0 originated from asset with id 1227

mutation {
  createClipAssets(
    input: {
      assets: {
        assetName: "ClipAsset"
        categoryId: "0"
        parentAssetId: 1227
        tcIn: "00:00", tcOut: "00:10"
        itemCode: "ITEMCODE" } } ) {
    assets {
      id
    }
  }
}

Create a list of clip assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateClipAssetInput] Yes List of inputs that defines the clip assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createExtendedAssets

Example: Create an extended asset of type "Archive File" in category with id 0 and a specified metadata value

mutation {
  createExtendedAssets(
    input: {
      assets: {
        assetName: "ExtendedAsset"
        categoryId: "0"
        extendedType: { name: "Archive File" }
        itemCode: "ITEMCODE"
        metadata: { field: { tagName: "TitleAuthor" }, value: "API3" } } } ) {
    assets {
      id
    }
  }
}

Create a list of extended assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateExtendedAssetInput] Yes List of inputs that defines the extended assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createGroupAssets

Example: Create a group asset with status "Approved" in category with id 0 and a specified metadata value

mutation {
  createGroupAssets(
    input: {
      assets: {
        assetName: "GroupAsset"
        categoryId: "0"
        status: { name: "Approved" }
        itemCode: "ITEMCODE"
        metadata: {
          field: { name: "Title End Date" }, value: "2022-08-12T10:10:10.100" } } } ) {
    assets {
      id
    }
  }
}

Create a list of group assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateGroupAssetInput] Yes List of inputs that defines the group assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createImageAssets

Example: Create two image assets with different attributes

mutation {
  createImageAssets(
    input: {
      assets: [
        { assetName: "ImageAsset1", categoryId: "0", status: { name: "New" } }
        { assetName: "ImageAsset2", categoryId: "1", itemCode: "ITEMCODE" } ] } ) {
    assets {
      id
    }
  }
}

Create a list of image assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateImageAssetInput] Yes List of inputs that defines the image assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createStoryAssets

Example: Create a story asset with template with id 4, in category with id 0, with the specified metadata

mutation {
  createStoryAssets(
    input: {
      assets: {
        assetName: "StoryAsset"
        categoryId: 0
        storyTemplate: { id: 4 }
        itemCode: "ITEMCODE"
        metadata: { field: { tagName: "TitleSource" }, value: "API3" } } } ) {
    assets {
      id
    }
  }
}

Create a list of story assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateStoryAssetInput] Yes List of inputs that defines the story assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createSubtitlesAssets

Example: Create a subtitles asset of type with id 1004, in category with id 0, with status "Archive"

mutation {
  createSubtitlesAssets(
    input: {
      assets: {
        assetName: "SubtitleAsset"
        categoryId: 0
        subtitlesType: { id: 1004 }
        status: { name: "Archive" }
        itemCode: "ITEMCODE" } } ) {
    assets {
      id
    }
  }
}

Create a list of subtitles assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateSubtitlesAssetInput] Yes List of inputs that defines the subtitles assets to create

Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate

Name Type Description
assets [AssetIfc] List of created assets

mutation createSubtitlesToVideoAssociations

Example: Create an association between subtitles asset with id 1750 and video asset with id 17392

mutation {
  createSubtitlesToVideoAssociations(
    input: {
      associations: {
        videoAssetId: 17392
        subtitlesAssetId: 1750
        studioChannelName: "Subtitle"
      }
    }
  ) {
    associations {
      id
    }
  }
}

Create associations between subtitles assets and video assets.
Creating a subtitles to video association with tcIn matching existing association on same channel will overwrite the subtitles asset id and tcOut values of the existing association. The association id will not change. There is no limitation of the number of associations per channel for a video asset.
In order to associate a subtitles asset with a video asset, user should have Insert and Remove rights on the category of the video asset and View rights on the category of the subtitles asset.

Name Type Required? Description
associations [CreateSubtitlesToVideoAssociationInput] Yes
Name Type Description
associations [SubtitlesToVideoAssociation] List of the created associations

mutation createTrackStackAssets

Example: Create a trackstack asset with template "TrackStackTemplate" in bundle with id 2273, with the specified metadata

mutation {
  createTrackStackAssets(
    input: {
      assets: {
        bundleAssetId: 2273
        assetName: "TrackStackAsset"
        template: { name: "TrackStackTemplate" }
        metadata: { field: { name: "TS Originated From" }, value: "API3" } } } ) {
    assets {
      id
    }
  }
}

Create a list of trackstack assets that are added to a bundle asset.
In order to create a track stack asset, user should have Insert and Remove rights on the category of the Bundle Asset.

Name Type Required? Description
assets [CreateTrackStackAssetInput] Yes List of inputs that defines the trackstack assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createTxVersionAssets

Example: Create a TXVersion asset in category with id 0, with status "Approved" and the specified metadata

mutation {
  createTxVersionAssets(
    input: {
      assets: {
        assetName: "TXVersionAsset"
        categoryId: 0
        status: { name: "Approved" }
        itemCode: "ITEMCODE"
        metadata: { field: { name: "Keywords" }, value: "API3" } } } ) {
    assets {
      id
    }
  }
}

Create a list of TXVersion assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateTxVersionAssetInput] Yes List of inputs that defines the TXVersion assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation createVideoAssets

Example: Create a video asset in category with id 0, with id 1 ("New") and the specified metadata

mutation {
  createVideoAssets(
    input: {
      assets: {
        assetName: "VideoAsset"
        categoryId: 0
        status: { id: 1 }
        itemCode: "ITEMCODE"
        metadata: {
          field: { name: "Title Keep Date" }, value: "2022-01-01T10:10:10.100" } } } ) {
    assets {
      id
    }
  }
}

Create a list of video assets with the given parameters.
In order to create an asset, user should have Insert rights on the category.

Name Type Required? Description
assets [CreateVideoAssetInput] Yes List of inputs that defines the video assets to create
Default values: The following depends on the site policy: recordDate, startDate, endDate, killDate, keepDate
Name Type Description
assets [AssetIfc] List of created assets

mutation deleteAssets

Example: Delete all video assets and their associated files from category with id 67

mutation {
  deleteAssets(
    input: {
      assetsWith: {
        categoriesWith: { ids: [67] }
        assetTypesWith: { mediaTypes: [VIDEO] }
      }
      purgeMedia: true
    } ) {
    deletedAssetIds
  }
}

Delete all assets matching the supplied filter.
In order to delete an asset, user should have Remove rights on the category of the asset.

Name Type Required? Description
assetsWith AssetFilterInput Yes At least one of ids or categoryId must be supplied
purgeMedia Boolean No By setting purgeMedia to true, the associated files will be deleted. The delete files process is asynchronous and there is no confirmation or notification when it is done.
Default values: false
Name Type Description
deletedAssetIds [ID] The ids of the deleted assets

mutation linkAssetsToCategories

Example: Link asset with id 17392 to category with id 67

mutation {
  linkAssetsToCategories(
    input: { assetsWith: { ids: [17392] }, 
    linkedCategoriesWith: { ids: [67] } }
  ) {
    assets {
      id
      name
    }
  }
}

Link a list of assets to a list of categories.
In order to link an asset to a category, user should have Insert rights on the category and View rights on the category of the asset.

Name Type Required? Description
assetsWith AssetFilterInput Yes The asset to add links to
linkedCategoriesWith CategoryFilterInput Yes The category that the asset will be linked to
Name Type Description
assets [AssetIfc] List of linked assets

mutation linkAssetToRunningOrderCategory

Example: Link asset with id 2004 to running order category with id 23

mutation {
  linkAssetToRunningOrderCategory(input: { assetId: 2004, categoryId: 23 }) {
    asset {
      id
      name
    }
  }
}

Link an asset to a running order category.
The mutation will not return empty even if the asset is already linked to the category in the same sequence.
In order to link an asset to a running order category, user should have Insert rights on the category and View rights on the category of the asset.

Name Type Required? Description
assetId ID Yes The asset to add links to
categoryId ID Yes The category that the asset will be linked to
sequence Int No The index position in the Running Order Category that the Asset will be linked to.
If sequence input is not supplied, the asset will be linked to the end of the category
Name Type Description
asset AssetIfc The linked asset

mutation removeCGToVideoAssociations

Example: Remove association with id 180

mutation {
  removeCGToVideoAssociations(input: { associationIds: [180] }) {
    deletedAssociationIds
  }
}

Remove associations between CG assets and video assets.

Name Type Required? Description
associationIds [ID] Yes The ids of the associations to remove
Name Type Description
deletedAssociationIds [ID] List of removed association ids

mutation removeItemsFromGroups

Example: Remove items with ids 1:1:1 and 1:1:2 from group with id 354890

mutation {
  removeItemsFromGroups(
    input: { groupItemsWith: { 
      groupAndIds: { groupId: 354890, groupItemIds: ["1:1:1", "1:1:2"] }
    } } ) {
    removedItemIdsByGroupId {
      groupId
      groupItemIds
    }
  }
}

Remove items from group assets matching the supplied filter.
In order to remove items from group assets, user should have Insert and Remove rights on the category of the group asset.

Name Type Required? Description
groupItemsWith GroupsItemsFilterInput Yes The items to remove and the group to remove from
Name Type Description
removedItemIdsByGroupId [GroupItemsOutput] List of removed item ids

mutation removeLinksFromCategories

Example: Remove links to category "To review" from all video assets with status "Approved" (status id = 4) in two "Incoming" categories

mutation {
    removeLinksFromCategories(input: {
        assetsWith: {
            assetTypesWith: { names: [ "Video" ] },
            metadata: { field: { tagName: "TitleStatus" }, value: [ "4" ] },
            categoriesWith: {fullNames: [ "CATEGORIES/Incoming/VendorA", "CATEGORIES/Incoming/VendorB" ]} },
        linkedCategoriesWith: { fullNames: [ "CATEGORIES/To review" ] } } ) {
        assets {
            id
        }
    }
}

Remove links between assets and categories matching the supplied filter.
All links to secondary categories can be deleted from an asset if no category is selected.

Name Type Required? Description
assetsWith AssetFilterInput Yes The asset to remove links from
At least one of ids or categoriesWith must be provided
linkedCategoriesWith CategoryFilterInput No The Category the Asset link should be deleted from
Name Type Description
assets [AssetIfc] List of affected assets

mutation removeSubtitlesToVideoAssociations

Example: Remove association with id 205

mutation {
  removeSubtitlesToVideoAssociations(input: { associationIds: [205] }) {
    deletedAssociationIds
  }
}

Remove associations between subtitles assets and video assets.

Name Type Required? Description
associationIds [ID] Yes The ids of the associations to remove
Name Type Description
deletedAssociationIds [ID] List of removed association ids

mutation updateAssets

Example: Update asset with id 17392 to be with status "Archive"

mutation {
  updateAssets(
    input: {
      assets: { id: 17392, assetStatus: { status: { name: "Archive" } } }
    } ) {
    assets {
      id
      name
      status {
        name
      }
    }
  }
}

Update a list of assets' fields with the given parameters.
In order to update an asset, user should have Insert and Remove rights on the category of the asset.

Name Type Required? Description
assets [UpdateAssetInput] Yes
Name Type Description
assets [AssetIfc] List of updated assets

subscription assets

Example: Subscribe to all types of notifications for video assets

subscription {
  assets(
    input: {
      notificationTypes: [ALL]
      assetsWith: { assetTypesWith: { mediaTypes: [VIDEO] } }
    }
  ) {
    notifications {
      contents {
        receivedAt
        rawNotification
        type
      }
    }
  }
}

Subscribe to notifications about assets.
In order to get the notifications for an asset, user should have View rights to its primary category.
Notifications of type DELETED will be emmited regardless of user rights.

Name Type Required? Description
notificationTypes [AssetNotificationType] Yes Filter used to select the type of notifications to subscribe to
assetsWith AssetFilterInput No Filter used to select the subscribed assets information
Name Type Description
notifications [AssetNotification] The notifications about the assets matching the input filter

Categories

Describes operations to create, retrieve, update and delete categories.

query categories

Example: Retrieve information about all the categories under parent category with id 0 which are defined as running order

query {
    categories( input: { where: { 
        parentIds: ["0"]
        runningOrder: true 
    } } ) {
    totalCount
        categories {
            id
            name
        }
    } 
}

Retrieve information about categories matching the supplied filter.
Categories can be filtered by their ids, fullNames, codes, parentIds, system and runningOrder.
The retrieved categories are an intersection of all filter fields.
In order to retrieve a category, user should have View rights on the category.

Name Type Required? Description
where CategoryFilterInput No Filter used to select the categories to retrieve
select Pagination No Define the page of results you want to query

* Outputs - CategoriesOutput:

Name Type Description
totalCount Int Total number of categories matching the input filter
pageInfo PageInfo Information about the current page of results
categories [Category] List of categories matching the input filter

subqueries

Queries to retrieve information about categories from outputs of other operations.

Example: Retrieve information about the categories that contain audio assets

query {
  assets(input: { where: { assetTypesWith: { mediaTypes: [AUDIO] } } }) {
    assets {
      categories {
        categories {
          id
          name
} } } } }

subquery categories

Retrieve categories that the current asset is linked to.
In order to retrieve a category, user should have View rights on the category.
See here categories

subquery children

Retrieve information about sub categories matching the supplied filter.
In order to retrieve a category, user should have View rights to the category and View rights to the parent category.

Example: Retrieve information about children sub-query in category

query {
    categories  {
        categories {
            children( input: { where: {
                ids: ["131",52] , 
                codes: ["GLOSSARIES"] , 
                system: true 
            } } ) {
                totalCount
                categories{
                    id
                    name
                }
            }
        }
    }
}
Name Type Required? Description
where SubCategoryFilterInput No Filter used to select the sub-categories to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of categories matching the input filter
pageInfo PageInfo Information about the current page of results
categories [Category] List of categories matching the input filter

mutation createCategory

Example: Create a new category with the name "newSubCategory" and code "SUB01" inside category with id 1

mutation {
    createCategory ( input: {  
        name: "newSubCategory" ,
        parentCategoryId: 1 ,
        code: "SUB01"
    } ) {
    category {
      id
    }
  }
}

Create a new category with the given parameters.
In order to create a category, user should have Insert rights on the parent category.

Name Type Required? Description
name String Yes
shortName String No Default value: The name of the category
code String No Default value: The code of the parent category
description String No
parentCategoryId ID Yes
killDateOffset Int No The date after which this category will be a candidate for automatic purge. The date is computed as: Now() + KillDateOffset()
Default value: 365
endDateOffset Int No The date after which this category reaches its End Date. The date is computed as: Now() + KillDateOffset()
Default value: 365
keepDateOffset Int No The date until which this category should be kept. The date is computed as: Now() + KeepDateOffset()
Default value: 0
runningOrder Boolean No Default value: false
color Color No Default value: white
Name Type Description
category Category The created categories

mutation createShotList

Example: Create a new shot list for user with id 12 with the name "My_ShotList"

mutation {
  createShotList ( input: {
    userId: 12 ,
    name: "My_ShotList"
    } ) {
    category {
      id
      fullName
    }
  }
}

Create a new shot list with the given parameters.
A shot list is a category with code UPCLB, runningOrder set to true and parent set to clipBin folder of the current user.
In order to create a shot list, user should have View rights on the clipBin category and Insert rights on the user's clipBin category.

Name Type Required? Description
userId ID Yes
name String Yes
shortName String No Default value: The name of the category
description String No
killDateOffset Int No The date after which this shotlist (category) will be a candidate for automatic purge. The date is computed as: Now() + KillDateOffset()
Default value: 365
endDateOffset Int No The date after which this shotlist (category) reaches its End Date. The date is computed as: Now() + KillDateOffset()
Default value: 365
keepDateOffset Int No The date until which this shotlist (category) should be kept. The date is computed as: Now() + KeepDateOffset()
Default value: 0
color Color No Default value: white
Name Type Description
category Category The created shot lists

mutation deleteCategories

Example: Delete the categories 4445 and 4446 from the site

mutation {
  deleteCategories(input: { categoriesWith: { ids: [4445, 4446] } } ) {
    deletedCategoryIds
  }
}

Delete a list of categories.
In order to delete a category, user should have Insert and Remove rights to the category.

Name Type Required? Description
categoriesWith DeleteCategoryFilterInput Yes At least one of ids, fullnames or parentIds must be supplied
Name Type Description
deletedCategoryIds [ID] List of ids of deleted categories

mutation linkAssetsToCategories

Please see linkAssetsToCategories

mutation linkAssetToRunningOrderCategory

Please see linkAssetToRunningOrderCategory

mutation removeLinksFromCategories

Please see removeLinksFromCategories

mutation updateCategory

Example: Change the name of category with id 2975 to "New name"

mutation {
  updateCategory ( input : {
    categoryId: 2795,
    name: "New name"
  } ) {
    category{
      id
    }
  }
}

Update Category information with the given parameters. In order to update a category, user should have View rights on the category and full rights on the parent category.

Name Type Required? Description
categoryId ID Yes
name String No
shortName String No
code String No
description String No
parentCategoryId ID No
killDateOffset Int No The date after when this category will be a candidate for automatic purge. The date is computed as: Now() + KillDateOffset()
endDateOffset Int No The date after when this category will be a candidate for automatic purge. The date is computed as: Now() + KillDateOffset()
keepDateOffset Int No The date until when this category should be kept. The date is computed as: Now() + KeepDateOffset()
runningOrder Boolean No
color Color No
Name Type Description
category Category Information about the updated category

subscription categories

Example: Subscribe to all types of notifications for categories

subscription {
  categories( input: {
        notificationTypes: [ALL] 
    } ) {
    notifications {
      category {
        id
      }
    }
  }
}

Subscribe to notifications about categories.

Name Type Required? Description
notificationTypes [CategoryNotificationType] Yes Filter used to select the type of notifications to subscribe to.
Name Type Description
notifications [CategoryNotification] The notifications about the categories matching the input filter

Configuration

Describes operations to retrieve Galaxy five site parameters needed by other modules.

query assetStatuses

Example: Retrieve information about the following asset statuses: "New", "Approved" and "Archive"

query {
  assetStatuses(input: { where: { names: ["New", "Approved", "Archive"] } }) {
    totalCount
    assetStatuses {
      id
      name
      abbreviation
      description
      color
    }
  }
}

Retrieve information about asset statuses matching the supplied filter.
Asset statuses can be filtered by their ids, names, and abbreviations.
The retrieved asset statuses are an intersection of all filter fields.

Name Type Required? Description
where AssetStatusesFilterInput No Filter used to select the asset statuses to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of asset statuses matching the input filter
pageInfo PageInfo Information about the current page of results
assetStatuses [AssetStatus] List of asset statuses matching the input filter

query blockTemplates

Example: Retrieve information about block templates with ids 1074 and 1075

query {
  blockTemplates(input: { where: { ids: [1074, 1075] } }) {
    totalCount
    blockTemplates {
      id
      name
      mediaType
      assetCanBeCreated
    }
  }
}

Retrieve information about block templates matching the supplied filter.
Block templates can be filtered by their ids and names.
The retrieved block templates are an intersection of all filter fields.

Name Type Required? Description
where BlockTemplatesFilterInput No Filter used to select the block templates to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of block templates matching the input filter
pageInfo PageInfo Information about the current page of results
blockTemplates [BlockTemplate] List of block templates matching the input filter

query cgTypes

Example: Retrieve information about CG types with ids 1078 and 1080

query {
  cgTypes(input: { where: { ids: [1078, 1080] } }) {
    totalCount
    cgTypes {
      id
      name
      assetCanBeCreated
      withFile
    }
  }
}

Retrieve information about CG types matching the supplied filter.
CG types can be filtered by their ids and names.
The retrieved CG types are an intersection of all filter fields.

Name Type Required? Description
where CgTypesFilterInput No Filter used to select the CG types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of CG types matching the input filter
pageInfo PageInfo Information about the current page of results
cgTypes [CgType] List of CG Types matching the input filter

query dataFields

Example: Retrieve information about data fields with names: "Task Assignee", "Task Created Time"

query {
  dataFields(
    input: { where: { names: ["Task Assignee", "Task Created Time"] } }
    ) {
        totalCount
        dataFields {
          id
          name
          inherited
          readOnly
    }
  }
}

Retrieve information about data fields matching the supplied filter.
Data fields can be filtered by their ids, tag names and names.
The retrieved data fields are an intersection of all filter fields.

Name Type Required? Description
where DataFieldsFilterInput No Filter used to select the data fields to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of data fields matching the input filter
pageInfo PageInfo Information about the current page of results
dataFields [DataField] List of data fields matching the input filter

query dataFieldTableTypes

Example: Retrieve information about all the data fields of type table on site and display the first 12 in the first page

query {
  dataFieldTableTypes(input: { select: { first: 12 } }) {
    totalCount
    dataFieldTableTypes {
      name
    }
  }
}

Retrieve information about data fields of type table matching the supplied filter.
Data field table types can be filtered by their names.

Name Type Required? Description
where DataFieldTableTypesFilterInput No Filter used to select the data field table types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of data field table types matching the input filter
pageInfo PageInfo Information about the current page of results
dataFieldTableTypes [DataFieldTableType] List of data field table types matching the input filter

query dataFieldTypes

Example: Retrieve information about all data field types configured on site and display the first 50 data field types in the first page

query {
  dataFieldTypes(input: { select: { first: 50 } }) {
    totalCount
    dataFieldTypes {
      name
    }
  }
}

Retrieve information about data field types matching the supplied filter.
Data field types can be filtered by their names.

Name Type Required? Description
where DataFieldTypesFilterInput No Filter used to select the data field types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of data field types matching the input filter
pageInfo PageInfo Information about the current page of results
dataFieldTypes [DataFieldType] List of data field types matching the input filter

query deployedSolrIndexes

Example: Retrieve information about the deployed SolR index "API3_Index"

query {
  deployedSolrIndexes(input: { where: { names: "API3_Index" } }) {
    totalCount
    solrIndexes {
      id
      name
      solrVersion
      version
      url
      cores {
        language {
          name }
        mapping {
          solrField {
            name }
          usage
        }
      }
    }
  }
}

Retrieve information about deployed SolR indexes matching the supplied filter.
Deployed SolR indexes can be filtered by their ids and names.
The retrieved deployed SolR indexes are an intersection of all filter fields.

Name Type Required? Description
where DeployedSolrIndexesFilterInput No Filter used to select the deployed SolR indexes to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of deployed SolR indexes matching the input filter
pageInfo PageInfo Information about the current page of results
solrIndexes [SolrIndex] List of deployed SolR indexes matching the input filter

query extendedAssetTypes

Example: Retrieve information about the following extended asset types: "Spreadsheet" and "Archive File"

query {
  extendedAssetTypes(
    input: { where: { names: ["Spreadsheet", "Archive File"] } }
    ) {
        totalCount
        extendedAssetTypes {
          id
          name
          withFile
        }
    }
}

Retrieve information about extended asset types matching the supplied filter.
Extended asset types can be filtered by their ids and names.
The retrieved extended asset types are an intersection of all filter fields.

Name Type Required? Description
where ExtendedAssetTypesFilterInput No Filter used to select the extended asset types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of extended asset types matching the input filter
pageInfo PageInfo Information about the current page of results
extendedAssetTypes [ExtendedAssetType] List of extended asset types matching the input filter

query languages

Example: Retrieve all languages configured to be used in Dalet Galaxy five

query {
  languages(input: { where: { usedOnSite: true } }) {
    totalCount
    languages {
      id
      name
    }
  }
}

Retrieve languages information matching the supplied filter.
Languages can be filtered by their ids, names, codes and the usedOnSite and default flags.
The retrieved languages are an intersection of all filter fields.

Name Type Required? Description
where LanguagesFilterInput No Filter used to select the languages to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of languages matching the input filter
pageInfo PageInfo Information about the current page of results
languages [Language] List of languages matching the input filter

query locatorFamilies

Example: Retrieve information about the locator family "Closed Captions"

query {
  locatorFamilies(input: { where: { names: ["Closed Captions"] } }) {
    totalCount
    locatorFamilies {
      name
      description
      abbreviation
      system
    }
  }
}

Retrieve information about locator families matching the supplied filter.
Locator families types can be filtered by their ids and names.
The retrieved locator families are an intersection of all filter fields.

Name Type Required? Description
where LocatorFamiliesFilterInput No Filter used to select the locator families to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of locator families matching the input filter
pageInfo PageInfo Information about the current page of results
locatorFamilies [LocatorFamily] List of locator families matching the input filter

query locatorTypes

Example: Retrieve information about all system locator types

query {
  locatorTypes(input: { where: { system: true } }) {
    totalCount
    locatorTypes {
      name
      abbreviation
      family {
        name
      }
      inheritance
      dataFields {
        name
      }
    }
  }
}

Retrieve information about locator types matching the supplied filter.
Locator types types can be filtered by their names, familyNames and system.
The retrieved locator types are an intersection of all filter fields.

Name Type Required? Description
where LocatorTypesFilterInput No Filter used to select the locator types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of locator types matching the input filter
pageInfo PageInfo Information about the current page of results
locatorTypes [LocatorType] List of locator types matching the input filter

query mediaFormats

Example: Retrieve information about all media formats of type "Video" that are used on site and display the first 12 formats in the first page

query {
  mediaFormats(
    input: { select: { first: 12 }, where: { types: VIDEO, usedOnSite: true } }
      ) {
        totalCount
        mediaFormats {
          id
          name
          fileNamePatterns
        }
    }
}

Retrieve information about media formats matching the supplied filter.
Media formats can be filtered by their ids, names, types and usedOnSite.
The retrieved media formats are an intersection of all filter fields.

Name Type Required? Description
where MediaFormatsFilterInput No Filter used to select the media formats to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of media formats matching the input filter
pageInfo PageInfo Information about the current page of results
mediaFormats [MediaFormatIfc] List of media formats matching the input filter

query mediaPackTemplates

Example: Retrieve information about the media pack template "IMF Package (IMP)"

query {
  mediaPackTemplates(input: { where: { names: "IMF Package (IMP)" } }) {
    mediaPackTemplates {
      id
      name
      embeddedItems {
        name
        rule{
          maxItemCount
        }
      }
    }
  }
}

Retrieve information about media pack templates matching the supplied filter.
Media pack templates can be filtered by their ids and names.
The retrieved media pack templates are an intersection of all filter fields.

Name Type Required? Description
where MediaPackTemplatesFilterInput No Filter used to select the media pack templates to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of media pack templates matching the input filter
pageInfo PageInfo Information about the current page of results
mediaPackTemplates [MediaPackTemplate] List of media pack templates matching the input filter

query migrationPolicies

Example: Retrieve information about all the migration policies that are used on site and display the first 25 policies in the first page

query {
  migrationPolicies(
    input: { select: { first: 25 }, where: { usedOnSite: true } }
      ) {
        totalCount
        migrationPolicies {
          id
          name
        }
    }
}

Retrieve information about migration policies matching the supplied filter.
Migration policies can be filtered by their ids and usedOnSite.
The retrieved migration policies are an intersection of all filter fields.

Name Type Required? Description
where MigrationPoliciesFilterInput No Filter used to select the migration policies to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of migration policies matching the input filter
pageInfo PageInfo Information about the current page of results
migrationPolicies [MigrationPolicy] List of migration policies matching the input filter

query stations

Example: Retrieve the playout stations that exist on site

query {
  stations(input: { where: { types: PLAYOUT } }) {
    stations {
      id
      name
      code
      defaultStudio {
        id
      }
    }
  }
}

Retrieve information about stations matching the supplied filter.
Stations can be filtered by their ids, names, codes and types.
The retrieved stations are an intersection of all filter fields.

Name Type Required? Description
where StationFilterInput No Filter used to select the stations to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of stations matching the input filter
pageInfo PageInfo Information about the current page of results
stations [Station] List of stations matching the input filter

query storageUnits

Example: Retrieve information about storage units with protocol type "AMAZON_S3"

query {
  storageUnits(input: { where: { protocolTypes: AMAZON_S3 } }) {
    totalCount
    storageUnits {
      id
      name
      type
      protocol {
        ... on AmazonS3StorageUnitProtocol {
          bucketName
          url
          storageClass
        }
      }
    }
  }
}

Retrieve information about storage units matching the supplied filter.
Storage units can be filtered by their ids, types and protocolTypes.
The retrieved storage units are an intersection of all filter fields.

Name Type Required? Description
where StorageUnitsFilterInput No Filter used to select the storage units to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of storage units matching the input filter
pageInfo PageInfo Information about the current page of results
storageUnits [StorageUnit] List of storage units matching the input filter

query storyTemplates

Example: Retrieve information about story templates with ids 1001 and 1014

query {
  storyTemplates(input: { where: { ids: [1001, 1014] } }) {
    totalCount
    storyTemplates {
      id
      name
      description
      assetCanBeCreated
    }
  }
}

Retrieve information about story templates matching the supplied filter.
Story templates can be filtered by their ids and names.
The retrieved story templates are an intersection of all filter fields.

Name Type Required? Description
where StoryTemplatesFilterInput No Filter used to select the story templates to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of story templates matching the input filter
pageInfo PageInfo Information about the current page of results
storyTemplates [StoryTemplate] List of story templates matching the input filter

query studioChannels

Example: Retrieve information about studio channels of type "PlayList" and language "English" (id=98)

query {
  studioChannels(input: { where: { types: [PLAYLIST], languageIds: [98] } }) {
    totalCount
    studioChannels {
      id
      name
      acceptedAssetTypes {
        id }
      associatedLocatorType {
        name }
    }
  }
}

Retrieve information about studio channels matching the supplied filter.
Studio channels can be filtered by their ids, names, types and languageIds.
The retrieved studio channels are an intersection of all filter fields.

Name Type Required? Description
where StudioChannelFilterInput No Filter used to select the studio channels to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of studio channels matching the input filter
pageInfo PageInfo Information about the current page of results
studioChannels [StudioChannel] List of studio channels matching the input filter

query studios

Example: Retrieve information about studios of type "Playout"

query {
  studios(input: { where: { types: PLAYOUT } }) {
    totalCount
    studios {
      id
      name
      fifo
    }
  }
}

Retrieve information about studios matching the supplied filter.
Studios can be filtered by their ids, names, and types.
The retrieved studios are an intersection of all filter fields.

Name Type Required? Description
where StudioFilterInput No Filter used to select the studios to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of studios matching the input filter
pageInfo PageInfo Information about the current page of results
studios [Studio] List of studios matching the input filter

query subtitlesTypes

Example: Retrieve information about subtitle type with name "Subtitle"

query {
  subtitlesTypes(input: { where: { names: "Subtitle" } }) {
    subtitlesTypes {
      id
      name
      mediaType
      storeTtml
      storeNative
    }
  }
}

Retrieve information about subtitle types matching the supplied filter.
Subtitle types can be filtered by their ids and names.
The retrieved subtitle types are an intersection of all filter fields.

Name Type Required? Description
where SubtitlesTypesFilterInput No Filter used to select the subtitle types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of subtitle types matching the input filter
pageInfo PageInfo Information about the current page of results
subtitlesTypes [SubtitlesType] List of subtitle types matching the input filter

query trackStackTemplates

Example: Retrieve information about track stack template with id 1073

query {
  trackStackTemplates(input: { where: { ids: 1073 } }) {
    totalCount
    trackStackTemplates {
      id
      name
      defaultCategory {
        id }
      associatedLocatorType {
        name }
      tracks {
        type }
    }
  }
}

Retrieve information about track stack templates matching the supplied filter.
Track stack templates types can be filtered by their ids and names.
The retrieved track stack templates types are an intersection of all filter fields.

Name Type Required? Description
where TrackStackTemplatesFilterInput No Filter used to select the track stack templates to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of track stack templates matching the input filter
pageInfo PageInfo Information about the current page of results
trackStackTemplates [TrackStackTemplate] List of track stack templates matching the input filter

query userTaskTypes

Example: Retrieve information about user task type with name "API User Task"

query {
  userTaskTypes(input: { where: { names: "API User Task" } }) {
    totalCount
    userTaskTypes {
      id
      name
      defaultDueDateOffset
      associatedTitleField {
        name }
      inputFields {
        name }
      outputFields {
        name }
      taskResults {
        value }
    }
  }
}

Retrieve information about user task types matching the supplied filter.
User task types types can be filtered by their ids and names.
The retrieved user task types types are an intersection of all filter fields.
In order to get a user task type, user should have View rights to the user task.

Name Type Required? Description
where UserTaskTypesFilterInput No Filter used to select the user task types to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of user task types matching the input filter
pageInfo PageInfo Information about the current page of results
userTaskTypes [UserTaskType] List of user task types matching the input filter

Locators

Describes operations to create, retrieve and delete locators.
Updating locators can be done by updateObjectsMetadata mutation.
Locator is a Dalet object and is used to add information at specific times in an object (Feed or Media).

query locators

Example: Retrieve all locators of type NLP-NER in asset with id 17392

query {
  locators(input: { where: { assetIds: [17392], typeNames: ["NLP-NER"] } }) {
    totalCount
    locators {
      id
    }
  }
}

Retrieve information about locators matching the supplied filter.
Locators can be filtered by their ids, assetIds, typeNames, familyNames and ranges.
The retrieved locators are an intersection of all filter fields.
In order to retrieve information, user should have View rights to the locator type and View rights to the category of the locator’s asset.

Name Type Required? Description
where LocatorFilterInput No Filter used to select the locators to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of locators matching the input filter
pageInfo PageInfo Information about the current page of results
locators [LocatorIfc] List of locators matching the input filter

subqueries

Query to retrieve information about locators from outputs of other operations.

subquery locators

Example: Retrieve all locators of type NLP-NER in asset with id 17392

query {
  assets(input: { where: { ids: [17392] } }) {
    assets {
      locators(input: { where: { typeNames: ["NLP-NER"] } }) {
        locators {
          id
        }
      }
    }
  }
}

Retrieve information about locators matching the supplied filter.
Locators can be filtered by their ids, typeNames, familyNames and ranges.
The retrieved locators are an intersection of all filter fields.
In order to retrieve information, user should have View rights to the locator type and View rights to the category of the locator’s asset.

Name Type Required? Description
where NestedLocatorFilterInput No Filter used to select the locators to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of locators matching the input filter
pageInfo PageInfo Information about the current page of results
locators [LocatorIfc] List of locators matching the input filter

mutation createLocators

Example: Create two new locators of type NLP-NER with timecode 0 in asset with id 17392

mutation {
  createLocators(
    input: {
      assetLocators: [
        { assetId: 17392, locators: { typeName: "NLP-NER", timecodeIn: "0" } }
        { assetId: 17392, locators: { typeName: "NLP-NER", timecodeIn: "0" } }
      ]
    }
  ) {
    locators {
      id
    }
  }
}

Create new locators on an asset with the given parameters.
In order to create a locator on an asset, user should have full rights to the locator type, and Insert rights to the category of the asset.

Name Type Required? Description
assetLocators [CreateAssetLocatorsInput] Yes List of inputs that defines the locators to create
Name Type Description
locators [LocatorIfc] List of created locators

mutation deleteLocators

Example: Delete all locators of type NLP-NER in asset with id 17392

mutation {
  deleteLocators(
    input: { locatorsWith: { assetIds: [17392], typeNames: ["NLP-NER"] } }
  ) {
    deletedLocatorIds
  }
}

Delete locators from an asset.
If no locator matches the supplied filters or if user rights are missing, nothing will be deleted and no error will be thrown.
In order to delete a locator from an asset, user should have full rights to the locator type, and Insert and Remove rights to the category of the locator’s asset.

Name Type Required? Description
locatorsWith LocatorFilterInput Yes List of inputs that defines what locators to delete.
At least one of ids or assetIds must be supplied
Name Type Description
deletedLocatorIds [ID] The ids of the deleted locators

subscription locators

Example: Subscribe to all types of notifications for locators with type NLP-NER in asset with id 17392

subscription {
  locators(
    input: {
      notificationTypes: [ALL]
      locatorsWith: { assetIds: [17392], typeNames: ["NLP-NER"] }
    } ) {
    notifications {
      contents {
        receivedAt
        rawNotification
        type
      }
    }
  }
}

Subscribe to notifications about locators.
The filter of familyNames refers to the configuration at the time of subscription. If the configuration is changed then a re-subscription is required.
The filter of ranges will be ignored for notification type DELETED.
In order to get a notification for a locator, the user should have view rights to the locator type and the asset.

Name Type Required? Description
notificationTypes [LocatorNotificationType] Yes Filter used to select the type of notifications to subscribe to
locatorsWith LocatorFilterInput No Filter used to select the subscribed locators information
Name Type Description
notifications [LocatorNotification] The notifications about the locators matching the input filter

Media

Describes operations to create, retrieve, update and delete media info.
Media info is the information about a single media object associated to an asset.

query mediaInfo

Example: Retrieve all media infos with format id 663

query {
  mediaInfo(input: { where: { formatIds: [663] } }) {
    mediaInfo {
      id
    }
  }
}

Retrieve information about media info matching the supplied filter.
Media infos can be filtered by their ids, assetIds, formatIds, storageUnitIds and mediaProcessStatuses.
The retrieved media infos are an intersection of all filter fields.

Name Type Required? Description
where MediaInfoFilterInput No Filter used to select the media info to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of media infos matching the input filter
pageInfo PageInfo Information about the current page of results
mediaInfo [MediaInfoIfc] List of media infos matching the input filter

mutation createFileMediaInfo

Example: Create new media info of format with id 663 in storage unit with id 14 inside asset with id 17392

mutation {
  createFileMediaInfo(
    input: { formatId: "663", storageUnitId: "14", assetId: "17392" }
  ) {
    mediaInfo {
      id
    }
  }
}

Create media info on an asset with the given parameters.
If the mediaProcessStatus is set to OFFLINE or not provided, the value provided for duration will be ignored and set to 0.
In order to create media info, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
formatId ID Yes
storageUnitId ID Yes
assetId ID Yes
baseFilename String No
duration Timecode No Default value: 0
mediaProcessStatus MediaProcessStatus No Default value: OFFLINE
Name Type Description
mediaInfo MediaInfoIfc Information about the created media info

mutation deleteMediaInfo

Example: Delete all media infos from asset with id 17392 and their associated files

mutation {
  deleteMediaInfo(
    input: {
      mediaInfoWith: { assetMediaInfoWith: { assetId: "17392" } }
      deleteFiles: true
    }
  ) {
    deletedMediaInfoId
  }
}

Delete media info from an asset.
In order to delete file media info, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
mediaInfoWith DeleteMediaInfoFilterInput Yes At least one of ids or assetMediaInfoWith(assetId) must be supplied
deleteFiles Boolean No By setting deleteFiles to true, the associated files will be deleted.
Default value: false
Name Type Description
deletedMediaInfoId [ID] The ids of the deleted media infos

mutation updateFileMediaInfo

Example: Update all media infos inside asset with id 17392 to be with new base file name "new media name"

mutation {
  updateFileMediaInfo(
    input: {
      mediaInfoWith: { assetMediaInfoWith: { assetId: "17392" } }
      baseFilename: "new media name"
    }
  ) {
    mediaInfo {
      id
    }
  }
}

Update media info on an asset with the given parameters.
If media process status is set to OFFLINE the duration will be ignored and set to 0.
In order to update file media info, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
mediaInfoWith UpdateMediaInfoFilterInput Yes At least one of ids or assetMediaInfoWith(assetId) must be supplied
duration Timecode No
mediaProcessStatus MediaProcessStatus No
baseFilename String No
Name Type Description
mediaInfo [MediaInfoIfc] Information about the updated media info

subscription mediaInfos

Example: Subscribe to all types of notifications for media infos of format 663 inside asset with id 17392

subscription {
  mediaInfos(
    input: { notificationTypes: [ALL], assetIds: [17392], formatIds: [663] }
  ) {
    notifications {
      contents {
        receivedAt
        rawNotification
        type
      }
      mediaInfo {
        id
      }
    }
  }
}

Subscribe to notifications about media infos.

Name Type Required? Description
notificationTypes [MediaNotificationType] Yes Filter used to select the type of notifications to subscribe to
formatIds [ID] No Filter used to select the subscribed format ids of the media
assetIds [ID] No Filter used to select the subscribed asset ids of the media
Name Type Description
notifications [MediaNotification] The notifications about the media infos matching the input filter

Metadata

Describes operations to create, retrieve, update and delete metadata for assets, categories, contacts, locators, glossary values, planning events and rundowns.

Metadata Values

Type Description
Id Id represented as a string, for example: "ID123"
String String value, for example: "TitleName"
TimeCode Timecode represented as a string, for example: "P10:0:0.000S"
TimeCodeDate TimecodeDate represented as a string, for example: "2005-01-18T10:0:0.000 PAL".
If not specified, the timezone used for the value is UTC

subqueries

Queries to retrieve information about metadata from outputs of other operations.

subquery metadata

Example: Retrieve the metadata value of "Title Duration" in assets with id 35059

query {
  assets(input: { where: { ids: 35059 } }) {
    assets {
      id
      metadata(input: { where: { fields: { names: ["Title Duration"] } } }) {
        totalCount
        metadata {
          field {
            id
          }
          ... on PeriodMetadata {
            value
          }
        }
      }
    }
  }
}

Retrieve information about the assets, categories or locators metadata matching the supplied filter, depending on the operation that called the sub query.
Metadata can be filtered by data field id, name and tagName.
The retrieved metadata is the intersection of all filter fields results.

Name Type Required? Description
where NestedMetadataFilterInput No Filter used to select the metadata to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of metadata matching the input filter
pageInfo PageInfo Information about the current page of results
metadata [MetadataIfc] List of metadata matching the input filter

subquery metadata (items)

Example: Retrieve information about the value of "ITEM_HOLD" of the first item in group asset with id 354890

query {
  assets(input: { where: { ids: [354890] } }) {
    assets {
      ... on GroupAsset {
        items(input: { where: { groupItemIds: ["1:1:1"] } }) {
          items {
            metadata(input: { where: { fields: [ITEM_HOLD] } }) {
              metadata {
                ... on BooleanGroupItemMetadata {
                  value
                }
              }
            }
          }
        }
      }
    }
  }
}

Retrieve the information about group item metadata matching the supplied filter.
Group item metadata can be filtered by their fields (pre-defined list of fields that can be retrieved).

Name Type Required? Description
where NestedGroupItemMetadataFilterInput No Filter used to select the group item metadata to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of group item metadata matching the input filter
pageInfo PageInfo Information about the current page of results
metadata [GroupItemMetadataIfc] List of group item metadata matching the input filter

mutation addRowsToAssetsTableMetadata

Example: Add a new row to the table NLP_keyword_table in asset with id 366231 with metadata for the data fields "LOCATOR_Comment" and "Timing"

mutation {
  addRowsToAssetsTableMetadata(
    input: {
      assetIds: ["366231"]
      tableMetadata: [ {field: { name: "NLP_keyword_table" }
          columns: [
            { field: { name: "LOCATOR_Comment" }, value: "Approved" }
            { field: { name: "Timing" }, value: "12:30:42.100" } ] } ] }
   ) {
    updatedAssets {
      id
      objectType
    }
  }
}

Add a new row to a specific table metadata.
When adding new rows, invalid metadata is ignored and a new row is created without the invalid metadata.
In order to add rows to table metadata, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
assetIds [ID] Yes The ids of the assets to add rows in
tableMetadata [NewTableMetadataRowInput] Yes List of inputs that defines which table metadata to add
Name Type Description
updatedAssets [AssetIfc] List of the assets that the rows were added to

mutation deleteRowsFromAssetsTableMetadata

Example: Delete rows with ids 911290 and 911297 from table metadata

mutation {
  deleteRowsFromAssetsTableMetadata(
    input: { 
        tableMetadataWith: { rowIds: [911290, 911297] } }
  ) {
    deletedRowIds
  }
}

Delete rows from table metadata by providing a list of row ids.
If the inserted row ids are wrong or user rights are missing, nothing will be deleted and no error will be thrown.
In order to delete rows of table metadata, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
tableMetadataWith DeleteTableMetadataFilterInput Yes The ids of the rows to delete
Name Type Description
deletedRowIds [ID] The ids of the deleted rows

mutation updateGroupItemsMetadata

Example: Update item 1:1:1 inside group asset with id 356806. The updated metadata is to set the field ITEM_HOLD to false

mutation {
  updateGroupItemsMetadata(
    input: {
      groupAssetId: "356806"
      itemsMetadata: {
        itemId: "1:1:1"
        metadata: { field: ITEM_HOLD, value: "false" }
      } }
  ) {
    groupAsset {
      id
      name
      lastModifiedAt
    }
  }
}

Update a list of fields for items inside a group asset with the given parameters.
The item id used is the one displayed in Galaxy, for example: "1:1:1".
In order to update metadata for Group items, user should have Insert and Remove rights to the category of the Group asset.

Name Type Required? Description
groupAssetId ID Yes The id of the group asset to update
itemsMetadata [GroupItemDetailInput] Yes List of inputs that defines the group item and the metadata to update
Name Type Description
groupAsset GroupAsset Information about the updated group asset

mutation updateObjectsMetadata

Example: Apply several metadata updates on asset with id 366231: set new item code, append two values to a multi-cardinality data field, and remove the second value from the multi-cardinality data field

mutation {
  set: updateObjectsMetadata(
    input: {
      actionType: SET
      objectsMetadata: [
        { objectId: 366231 , objectType: ASSET
          metadata: { field: { name: "Item Code" }, value: "DAL_101010" } } ] } ) {
    updatedObjects {
      id } }

  append: updateObjectsMetadata(
    input: {
      actionType: APPEND
      objectsMetadata: [
        { objectId: 366231 , objectType: ASSET
          metadata: [
            { field: { name: "Multi text" }, value: "value 1" }
            { field: { name: "Multi text" }, value: "value 2" } ] } ] } ) {
    updatedObjects {
      id } }

  remove: updateObjectsMetadata(
    input: {
      actionType: REMOVE
      objectsMetadata: [
        { objectId: 366231 , objectType: ASSET
          metadata: { field: { name: "Multi text" }, value: "value 2" } } ] } ) {
    updatedObjects {
      id } }
}

Update metadata of several objects with the given parameters.
SET overrides the existing value of a field, and APPEND and REMOVE can be used only on multi-cardinality fields.
In order to update metadata of objects, user should have Insert and Remove rights to the category of the object.

Name Type Required? Description
objectsMetadata [ObjectMetadataInput] Yes List of objects and metadata to update
actionType UpdateMetadataActionType Yes The action to perform on the metadata
Name Type Description
updatedObjects [ObjectIfc] Information about the updated objects

mutation updateRowsOfAssetsTableMetadata

Example: Update row with id 911820 with metadata on the data fields LOCATOR_Comment and Timing

mutation {
  updateRowsOfAssetsTableMetadata(
    input: {
      tableMetadata: [
        { rowId: "911820"
          columns: [
            { field: { name: "Timing" }, value: "11:00:10.000" }
            { field: { name: "LOCATOR_Comment" }, value: "approved" }
          ] } ] } ) {
    updatedAssets {
      id
      name
    }
  }
}

Update rows of table metadata with new metadata input.
When updating rows, invalid metadata is ignored and the rows are updated without the invalid metadata.
In order to update rows of table metadata, user should have Insert and Remove rights to the category of the asset.

Name Type Required? Description
tableMetadata [TableMetadataRowInput] Yes List of inputs that defines the row to update
Name Type Description
updatedAssets AssetIfc Information about the updated asset

subscription metadata

Example: Subscribe to all types of notifications related to the data field "Title Kill Date" on assets

subscription {
  metadata(
    input: {
      notificationTypes: [ALL]
      dataFieldsWith: { names: "Title Kill Date" }
      objectsWith: { type: ASSET } }
  ) {
    notifications {
      contents {
        receivedAt
        rawNotification
        initiatedByUser {
          login
        }
      }
    }
  }
}

Subscribe to notifications about metadata.
The subscription can be on objects thus subscribing to all metadata on those objects, or by data fields directly.
In order to get a notification for an object, the user should have View rights for it.

Name Type Required? Description
notificationTypes [MetadataNotificationType] Yes Filter used to select the type of the notifications to subscribe to
objectsWith [ObjectsFilterInput] No Filter used to select the subscribed objects
dataFieldsWith DataFieldsFilterInput No Filter used to select the subscribed data fields
Name Type Description
notifications [MetadataNotification] The notifications about the metadata matching the input filter

UserGroups

Describes operations to create, retrieve, update and delete user groups.

query userGroups

Example: Retrieve information about user groups with names PLANNING and ADMINISTRATORS

query {
  userGroups(input: { where: { names: ["PLANNING", "ADMINISTRATORS"] } }) {
    totalCount
    userGroups {
      id
      name
    }
  }
}

Retrieve information about user groups matching the supplied filter.
User groups can be filtered by their ids, names and userIds.
The retrieved user groups are an intersection of all filter fields.

Name Type Required? Description
where UserGroupFilterInput No Filter used to select the user groups to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of user groups matching the input filter
pageInfo PageInfo Information about the current page of results
userGroups [userGroups] List of user groups matching the input filter

subqueries

Query to retrieve information about user groups from outputs of other operations.

subquery userGroups

Example: Retrieve all user groups that contains users with login "Test_User"

query {
  users(input: { where: { logins: ["Test_User"] } }) {
    users {
      userGroups {
        userGroups {
          id
          name
        }
      }
    }
  }
}

Retrieve information about user groups matching the supplied filter.
user groups can be filtered by their ids and names.

Name Type Required? Description
where NestedUserGroupFilterInput No Filter used to select the user groups to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of user groups matching the input filter
pageInfo PageInfo Information about the current page of results
userGroups [UserGroup] List of user groups matching the input filter

mutation addUsersToUserGroups

Example: Add user "TestUser" to user groups called "ADMINISTRATORS"

mutation {
  addUsersToUserGroups(
    input: {
      users: { logins: ["TestUser"] }
      userGroups: { names: ["ADMINISTRATORS"] }
    } ) {
    addedAssociations {
      users {
        id
      }
      userGroup {
        name
      }
    }
  }
}

Add users to all groups that correspond to supplied filters.

Name Type Required? Description
users UserFilterInput Yes The users to add to the user group.
At least one of ids, logins or userGroupIds must be provided
userGroups UserGroupFilterInput Yes The user group which the user will be added to.
At least one of ids, names or userIds must be provided
Name Type Description
addedAssociations [UserToGroupAssociation]

mutation createUserGroup

Example: Create new group with name "myNewGroup" and description "description for the new group"

mutation {
    createUserGroup( input: {
        name: "myNewGroup" , 
        description: "description for the new group"
    } ) {
    userGroup {
      id
      name
      description
    }
  }
}

Create a new Dalet group of users with the given parameters.

Name Type Required? Description
name String Yes
description String No
Name Type Description
userGroup UserGroup Information about the created user group

mutation deleteUserGroups

Example: Delete user groups with the name "News" if they contain users with ids 403 or 409

mutation {
    deleteUserGroups( input: {
        userGroupsWith: { 
            names: ["News"], 
            userIds: [403, 409] } } ) {
        deletedUserGroupIds
    }
}

Delete groups of users with the given parameters.

Name Type Required? Description
userGroupsWith UserGroupFilterInput Yes List of inputs that defines which groups to delete.
At least one of names or ids must be supplied, deleting groups only by userIds is not allowed
Name Type Description
deletedUserGroupIds [ID] The ids of the deleted user groups

mutation removeUsersFromUserGroups

Example: Remove user with id 15 from group "Admins"

mutation {
  removeUsersFromUserGroups(
    input: { users: { ids: [15] }, userGroups: { names: ["Admins"] } }
  ) {
    removedAssociations {
      users {
        id
        login
      }
      userGroup {
        id
        name
      }
    }
  }
}   

Remove users from groups that correspond to all supplied filters.

Name Type Required? Description
users UserFilterInput Yes The users to remove from the user group.
At least one of ids, logins or userGroupIds must be provided
userGroups UserGroupFilterInput Yes The user group which the user will be removed from.
At least one of ids, names or userIds must be provided
Name Type Description
removedAssociations [UserToGroupAssociation]

mutation updateUserGroup

Example: Update the name of the user group with id 164 to "my_NewGroup"

mutation {
  updateUserGroup(input: { userGroupId: 164, name: "my_NewGroup" }) {
    userGroup {
      id
      name
      description
    }
  }
}

Update information of a given user group of users.

Name Type Required? Description
userGroupId ID Yes
name String No The new user group name to update
description String No The new user group description to update
Name Type Description
userGroup userGroup Attributes of the updated user group

subscription userGroups

Example: Subscribe to notifications of type MODIFIED on user groups with ids 250 and 259

subscription {
  userGroups(
    input: { notificationTypes: [MODIFIED], userGroupIds: [250,259] } ) {
    notifications {
      contents {
        receivedAt
        rawNotification
      }
      userGroup {
        name
        users {
          users {
            login
 } } } } } }

Subscribe to notifications about user groups.

Name Type Required? Description
notificationTypes [UserNotificationType] Yes Filter used to select the type of notifications to subscribe to
userGroupIds [ID] No Filter used to select the subscribed user groups ids
Name Type Description
notifications [UserGroupNotification] The notifications about the user groups matching the input filter

Users

Describes operations to create, retrieve, update and delete users.

query users

Example: Retrieve all users inside group with id 9

query {
  users(input: { where: { userGroupIds: [9] } }) {
    users {
      id
      login
    }
  }
}

Retrieve information about users matching the supplied filter.
Users can be filtered by their ids, logins and userGroupIds.
The retrieved users are an intersection of all filter fields.

Name Type Required? Description
where UserFilterInput No Filter used to select the users to retrieve
select Pagination No Define the page of results you want to query
Name Type Description
totalCount Int Total number of users matching the input filter
pageInfo PageInfo Information about the current page of results
users [User] List of users matching the input filter

subqueries

Query to retrieve information about users from outputs of other operations.

subquery users

Example: Retrieve all users from group with id 9

query {
  userGroups(input: { where: { ids: [9] } }) {
    userGroups {
      users {
        users {
          id
          login
        }
      }
    }
  }
}

Retrieve information about users matching the supplied filter.
Users can be filtered by their ids, logins and userGroupIds.
The retrieved users are an intersection of all filter fields.

Name Type Required? Description
where NestedUserFilterInput No Filter used to select the users to retrieve
select Pagination No Define the page of results you want to query

Name Type Description
totalCount Int Total number of users matching the input filter
pageInfo PageInfo Information about the current page of results
users [User] List of users matching the input filter

mutation addUsersToUserGroups

Please see addUsersToUserGroups

mutation createUser

Example: Create new user with login "myUser", name "Test User" and password "myPassword"

mutation {
  createUser(
    input: {
      login: "myUser"
      firstName: "Test"
      lastName: "User"
      password: "myPassword"
    }
  ) {
    user {
      id
      login
    }
  }
}

Create new user with the given parameters.
The supplied login must be unique and the supplied password must be at least 6 characters long.

Name Type Required? Description
login String Yes Login must be unique
firstName String Yes
lastName String Yes
password String Yes Password must be at least 6 characters long
remarks String No
Name Type Description
user User Information about the created user

mutation deleteUsers

Example: Delete all users inside group with id 9

mutation {
  deleteUsers(input: { usersWith: { userGroupIds: [9] } }) {
    deletedUserIds
  }
}

Delete users with the given parameters.

Name Type Required? Description
usersWith UserFilterInput Yes List of inputs that defines which users to delete.
At least one of ids, logins or userGroupIds must be supplied
Name Type Description
deletedUserIds [ID] The ids of the deleted users

mutation removeUsersFromUserGroups

Please see removeUsersFromUserGroups

mutation updateUser

Example: Update new password to user with login "myUser"

mutation {
  updateUser(
    input: { userWith: { login: "myUser" }, password: "newPassword" }
  ) {
    user {
      id
      login
    }
  }
}

Update user with the given parameters.
Null parameters will be ignored.
The password is updated only if it is supplied and if it respects the password policy.

Name Type Required? Description
userWith SingleUserFilterInput Yes The id or the login that define which user to update
firstName String No
lastName String No
password String No Password must be at least 6 characters long
remarks String No
Name Type Description
user User List of updated users

subscription users

Example: Subscribe to all types of notifications for user with id 149

subscription {
  users(
    input: {
      notificationTypes: [ALL] , userIds: [149]
    } ) {
    notifications {
      contents {
        receivedAt
        rawNotification
      }
      user{
        id
     } } } }

Subscribe to notifications about users.

Name Type Required? Description
notificationTypes [UserNotificationType] Yes Filter used to select the type of notifications to subscribe to
userIds [ID] No Filter used to select the subscribed users ids
Name Type Description
notifications [UserNotification] The notifications about the users matching the input filter

Inputs

AssetFilterInput

Name Type Required? Description
ids [ID] No
itemCodes [String] No
assetTypesWith AssetTypeFilterInput No Properties of the type of asset
metadata [MetadataInput] No Metadata describing the assets
metadataSearchMode MetadataSearchMode No Determine how to refer to multiple values in metadata input
Default value: AT_LEAST_ONE_MATCH
categoriesWith CategoryFilterInput No Primary categories of the assets

AssetInCategoryFilterInput

Name Type Required? Description
ids [ID] No
itemCodes [String] No
assetTypesWith AssetTypeFilterInput No Properties of the type of asset
metadata [MetadataInput] No Metadata describing the assets
metadataSearchMode MetadataSearchMode No Determine how to refer to multiple values in metadata input
Default value: AT_LEAST_ONE_MATCH

AssetMediaInfoFilterInput

Name Type Required? Description
assetId ID Yes
formatIds [ID] No
storageUnitIds [ID] No
mediaProcessStatuses [MediaProcessStatus] No

AssetSegmentInput

Name Type Required? Description
assetId ID Yes
position Int No Position of the added item inside the group.
If the supplied position exceeds the number of items currently in the group, the item will be added to the end of the group
tcIn Timecode No The offset specifying the beginning of the segment. If the supplied offset is greater than the duration of the asset, tcIn is set to the tcIn of the end of the asset
tcInRelativeToEnd Boolean No Flag to indicate whether tcIn should be relative to the end of the media duration
tcOut Timecode No The offset specifying the end of the segment. The maximum valid offset is asset duration less tcIn
tcOutRelativeToStart Boolean No Flag to indicate whether tcOut should be relative to the start of the media duration

AssetStatusInput

Name Type Required? Description
id ID No
name String No
abbreviation String No The short abbreviation of asset status as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters

AssetStatusesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
abbreviations [String] No The short abbreviation of asset status as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters

AssetTypeFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
objectTypes [String] No
mediaTypes [AssetMediaType] No Types of media that can be associated to the asset type

AssetTypeInput

Name Type Required? Description
id ID No
name String No

BlockTemplatesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

CategoryFilterInput

Name Type Required? Description
ids [ID] No
fullNames [String] No Full path of the category in the cateogries tree separated by "/", for example: "CATEGORIES/To review". The total length of the full name must be less than 255 chars. Each name in the path must be less than 32 chars
codes [String] No A short code used to indicate the basic usage of this category
parentIds [ID] No Refers to the parent category
system Boolean No This category is a system category flag
runningOrder Boolean No This category is a running order flag

CgTypesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

CreateAudioAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateAssetLocatorsInput

Name Type Required? Description
assetId ID Yes
locators NewLocatorInput Yes

CreateBundleAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateCGAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
cgType AssetTypeInput Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateCGToVideoAssociationInput

Name Type Required? Description
videoAssetId ID Yes
cgAssetId ID Yes
studioChannelName String Yes
tcIn Timecode No Default value: P0:0:0.000S PAL
tcOut Timecode No Default value: P0:0:0.000S PAL

CreateClipAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
parentAssetId ID Yes
tcIn Timecode Yes
tcOut Timecode Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateExtendedAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
extendedType AssetTypeInput Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateGroupAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateImageAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateStoryAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
storyTemplate AssetTypeInput Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateSubtitlesAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
subtitlesType AssetTypeInput Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateSubtitlesToVideoAssociationInput

Name Type Required? Description
videoAssetId ID Yes
subtitlesAssetId ID Yes
studioChannelName String Yes
tcIn Timecode No Default value: P0:0:0.000S PAL
tcOut Timecode No Default value: P0:0:0.000S PAL

CreateTrackStackAssetInput

Name Type Required? Description
bundleAssetId ID Yes The bundle asset to create the trackstack in
assetName String Yes
template AssetTypeInput Yes Attributes (id or name) of the trackstack template to use
metadata [MetadataInput] No

CreateTxVersionAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

CreateVideoAssetInput

Name Type Required? Description
assetName String Yes
categoryId ID Yes
status AssetStatusInput No Default value: New
itemCode String No Default value: Depends on site policy
metadata [MetadataInput] No

DataFieldInput

Name Type Required? Description
id ID No
tagName String No
name String No

DataFieldsFilterInput

Name Type Required? Description
ids [ID] No
tagNames [String] No
names [String] No

DataFieldTableTypesFilterInput

Name Type Required? Description
names [String] No

DataFieldTypesFilterInput

Name Type Required? Description
names [String] No

DeleteCategoryFilterInput

Name Type Required? Description
ids [ID] No
fullNames [String] No
parentIds [ID] No
system Boolean No
runningOrder Boolean No

DeleteMediaInfoFilterInput

Name Type Required? Description
ids [ID] No
assetMediaInfoWith [AssetMediaInfoFilterInput] No

DeleteTableMetadataFilterInput

Name Type Required? Description
rowIds [ID] Yes

DeployedSolrIndexesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

ExtendedAssetTypesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

GroupItemDetailInput

Name Type Required? Description
itemId ID Yes
metadata [GroupItemMetadataInput] Yes

GroupsItemsFilterInput

Name Type Required? Description
groupAndIds [GroupItemsIdFilterInput] Yes The group id and the item ids

GroupItemsIdFilterInput

Name Type Required? Description
groupId ID Yes
groupItemIds [ID] Yes

GroupItemMetadataInput

Name Type Required? Description
field GroupItemDataField Yes
value String No

ItemsToGroupInput

Name Type Required? Description
groupId ID Yes
assetSegments [AssetSegmentInput] Yes Default values: tcOutRelativeToStart and tcInRelativeToEnd are set to false, position=0

LanguagesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
codes [String] No
usedOnSite Boolean No
default Boolean No

LocatorFamiliesFilterInput

Name Type Required? Description
names [String] No
abbreviations [String] No The short abbreviation of locator families as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters
system Boolean No

LocatorFilterInput

Name Type Required? Description
ids [ID] No
assetIds [ID] No
typeNames [String] No List of locator types
familyNames [String] No List of locator families
ranges [LocatorRangeInput] No List of the locator ranges (time code in and time code out)

LocatorRangeInput

Name Type Required? Description
from Timecode Yes
to Timecode Yes

LocatorTypesFilterInput

Name Type Required? Description
names [String] No
familyNames [String] No
system Boolean No

MediaFormatsFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
types [FormatMediaType] No
usedOnSite Boolean No

MediaInfoFilterInput

Name Type Required? Description
ids [ID] No
assetIds [ID] No
formatIds [ID] No
storageUnitIds [ID] No
mediaProcessStatuses [MediaProcessStatus] No

MediaPackTemplatesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

MetadataInput

Name Type Required? Description
field DataFieldInput Yes The metadata field to be used
value [String] No The value of the metadata field for the corresponding object.
See Metadata Values for more information

MigrationPoliciesFilterInput

Name Type Required? Description
ids [ID] No
usedOnSite Boolean No

NestedGroupItemMetadataFilterInput

Name Type Required? Description
fields [GroupItemDataField] No

NestedGroupItemsFilterInput

Name Type Required? Description
groupItemIds [ID] Yes

NestedLocatorFilterInput

Name Type Required? Description
ids [ID] No
typeNames [String] No List of locator types
familyNames [String] No List of locator families
ranges [LocatorRangeInput] No List of the locator ranges (time code in and time code out)

NestedMetadataFilterInput

Name Type Required? Description
fields DataFieldsFilterInput No

NestedUserFilterInput

Name Type Required? Description
ids [ID] No
logins [String] No

NestedUserGroupFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

NewLocatorInput

Name Type Required? Description
typeName String Yes
timecodeIn Timecode Yes
timecodeOut Timecode No
metadata [MetadataInput] No

NewTableMetadataRowInput

Name Type Required? Description
field [DataFieldInput] Yes
columns [MetadataInput] No

ObjectsFilterInput

Name Type Required? Description
ids ID No
type ObjectTypeWithMetadata Yes

ObjectMetadataInput

Name Type Required? Description
objectId ID Yes
objectType ObjectTypeWithMetadata Yes
metadata [MetadataInput] Yes

Pagination

Name Type Required? Description
first PageLength No The number of the results per page
after String No The cursor of the object preceding the batch. This object is not included in the new results

SingleTypeAssetsFilterInput

Name Type Required? Description
ids [ID] No
itemCodes [String] No
metadata [MetadataInput] No
metadataSearchMode MetadataSearchMode No Determine how to refer to multiple values in metadata input
Default value: AT_LEAST_ONE_MATCH
categoriesWith CategoryFilterInput No Primary categories of the assets

SingleUserFilterInput

Name Type Required? Description
id ID No
login String No

StationFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
codes [String] No
types [StationType] No

StorageUnitsFilterInput

Name Type Required? Description
ids [ID] No
types [StorageUnitType] No
protocolTypes [StorageUnitProtocolType] No

StoryTemplatesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

StudioChannelFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
types [StudioChannelType] No
languageIds [ID] No

StudioFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
types [StudioType] No

SubtitlesTypesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

TableMetadataRowInput

Name Type Required? Description
rowId ID Yes
columns [MetadataInput] Yes

TrackStackTemplatesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

UpdateAssetInput

Name Type Required? Description
id ID Yes
name String No
itemCode String No
primaryCategoryId ID No
assetStatus UpdateAssetStatusInput No

UpdateAssetStatusInput

Name Type Required? Description
status AssetStatusInput Yes
comment String No

UpdateMediaInfoFilterInput

Name Type Required? Description
ids [ID] No
assetMediaInfoWith [AssetMediaInfoFilterInput] No

UserFilterInput

Name Type Required? Description
ids [ID] No
logins [String] No
userGroupIds [ID] No The groups that the user is currently a part of

UserGroupFilterInput

Name Type Required? Description
ids [ID] No
names [String] No
userIds [ID] No The users the group contains

UserTaskTypesFilterInput

Name Type Required? Description
ids [ID] No
names [String] No

Outputs

AmazonS3StorageUnitProtocol

Name Type Description
bucketName String The name of the AmazonS3 bucket
url String URL of the storage unit
cloudFrontDomainName String The domain name generated when CloudFront service starts
storageClass AmazonS3StorageClass The storage class the media is stored in on Amazon S3 bucket
mediaNamingRule StorageUnitMediaNamingRule Naming conventions for media files exported from Dalet

ArchiveStorageUnitProtocol

Name Type Description
mediaNamingRule StorageUnitMediaNamingRule Naming conventions for media files exported from Dalet

AssetIfc

Example: Retrieve the id and name of assets with ids 17392, 2772, 355789 and additional information for different types of assets using different implementations

query {
  assets(input: { where: { ids: [17392, 2772, 355789] } }) {
    assets {
      id
      name
      ... on VideoAsset {
        duration
      }
      ... on GroupAsset {
        items {
          items {
            id
          }
        }
      }
      ... on ClipAsset {
        timecodeIn
        timecodeOut
      }
    }
  }
}
Name Type Description
id ID
objectType ObjectType The type of object returned. For AssetIfc the value will be ASSET
assetType AssetTypeIfc
status AssetStatus The editorial status of this asset
name String
itemCode String
categories CategoriesOutput Query to retrieve categories where the current asset is linked to
primaryCategory Category The main category in which this asset is located
metadata NestedMetadataOutput Query to retrieve the asset metadata matching the supplied filter
locators LocatorsOutput Query to retrieve the locators attached to the current asset and that match the supplied filter
usage AssetUsage Describes how an asset is used by other assets
createdAt TimeDate
createdBy User
lastModifiedAt TimeDate
lastModifiedBy User
recordDate TimeDate
startDate TimeDate The date on which the asset was created
endDate TimeDate The date after which the asset reaches its End Date
killDate TimeDate The date after which the asset will be a candidate for automatic purge
keepDate TimeDate The date until which the asset should be kept

To retrieve the extended information available inside the AssetIfc output, use the syntax:
...on VideoAsset{ duration } (see example on the right)

AudioAsset

AudioAsset is an implementation of AssetIfc and ObjectIfc.
In addition, AudioAsset has the following specific fields:

Name Type Description
duration Period

BundleAsset

BundleAsset is an implementation of AssetIfc and ObjectIfc.
In addition, BundleAsset has the following specific fields:

Name Type Description
mediaAssets AssetsOutput Query to retrieve the media assets listed in the current bundle asset
trackStackAssets AssetsOutput Query to retrieve the trackstack assets associated to the current bundle asset
versionAssets AssetsOutput Query to retrieve the TxVersion assets associated to the current bundle asset

CGAsset

CGAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for CGAsset implementation.

ClipAsset

ClipAsset is an implementation of AssetIfc and ObjectIfc.
In addition, ClipAsset has the following specific fields:

Name Type Description
parentAsset AssetIfc The parent asset of the clip asset
timecodeIn Timecode
timecodeOut Timecode

EDLAsset

EDLAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for EDLAsset implementation.

ExtendedAsset

ExtendedAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for ExtendedAsset implementation.

GroupAsset

GroupAsset is an implementation of AssetIfc and ObjectIfc.
In addition, GroupAsset has the following specific fields:

Name Type Description
items NestedGroupItemsOutput Query to retrieve items contained in the current GroupAsset

ImageAsset

ImageAsset is an implementation of AssetIfc and ObjectIfc.
In addition, ImageAsset has the following specific fields:

Name Type Description
duration Period

TrackStackAsset

TrackStackAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for TrackStackAsset implementation.

StoryAsset

StoryAsset is an implementation of AssetIfc and ObjectIfc.
In addition, StoryAsset has the following specific fields:

Name Type Description
duration Period

SubtitlesAsset

SubtitlesAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for SubtitlesAsset implementation.

TxVersionAsset

TxVersionAsset is an implementation of AssetIfc and ObjectIfc.
In addition, TxVersionAsset has the following specific fields:

Name Type Description
duration Period

UnsupportedAsset

UnsupportedAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for UnsupportedAsset implementation.

UserTaskAsset

UserTaskAsset is an implementation of AssetIfc and ObjectIfc.
There are no specific fields for UserTaskAsset implementation.

VideoAsset

VideoAsset is an implementation of AssetIfc and ObjectIfc.
In addition, VideoAsset has the following specific fields:

Name Type Description
duration Period
cgToVideoAssociations CGToVideoAssociationsOutput Query to retrieve the CG assets associated to the current asset
subtitlesToVideoAssociations SubtitlesToVideoAssociationsOutput Query to retrieve the subtitles assets associated to the current asset

AssetNotification

Name Type Description
contents [AssetNotificationContent]
asset AssetIfc

AssetNotificationContent

Name Type Description
receivedAt TimeDate The time that the notification was received
type AssetNotificationType Type of notification received
rawNotification String
initiatedByUser User The user that initiated the notification
initiatedByApplication String The application that initiated the notification
relatedCategory Category

AssetStatus

Name Type Description
id ID
name String
abbreviation String The short Abbreviation of this status as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters
description String A description of this status and its role in the workflow
color Color The display color for this asset status in the GUI

AssetTypeIfc

Example: Retrieve the id and name of the asset types of assets with ids 2002, 34056, 356770. Retrieve additional information for different types of asset types using different implementations

query {
  assets(input: { where: { ids: [2002, 34056, 356770] } }) {
    assets {
      assetType {
        id
        name
        ... on MediaPackTemplate {
          embeddedItems {
            name
          }
        }
        ... on TrackStackTemplate {
          mediaFormats {
            name
          }
        }
        ... on UserTaskType {
          taskResults {
            value
          }
        }
      }
    }
  }
}
Name Type Description
id ID
name String
description String
objectType String
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown

To retrieve the extended information available inside the AssetTypeIfc output, use the syntax:
...on UserTaskType{ taskResults { value } } (see example on the right)

BlockTemplate

BlockTemplate is an implementation of AssetTypeIfc.
There are no specific fields for BlockTemplate implementation.

CgType

CgType is an implementation of AssetTypeIfc.
There are no specific fields for CgType implementation.

ExtendedAssetType

ExtendedAssetType is an implementation of AssetTypeIfc.
There are no specific fields for ExtendedAssetType implementation.

MediaPackTemplate

MediaPackTemplate is an implementation of AssetTypeIfc.
In addition, MediaPackTemplate has the following specific fields:

Name Type Description
embeddedItems [MediaPackTemplateItem]

SimpleAssetType

SimpleAssetType is an implementation of AssetTypeIfc.
There are no specific fields for SimpleAssetType implementation.

StoryTemplate

StoryTemplate is an implementation of AssetTypeIfc.
There are no specific fields for StoryTemplate implementation.

SubtitlesType

SubtitlesType is an implementation of AssetTypeIfc.
In addition, SubtitlesType has the following specific fields:

Name Type Description
storeTtml Boolean
storeNative Boolean

TrackStackTemplate

TrackStackTemplate is an implementation of AssetTypeIfc.
In addition, TrackStackTemplate has the following specific fields:

Name Type Description
defaultCategory Category
associatedLocatorType LocatorType
mediaFormats [MediaFormatIfc]
tracks [TemplateTrack]

UserTaskType

UserTaskType is an implementation of AssetTypeIfc.
In addition, UserTaskType has the following specific fields:

Name Type Description
defaultCategory Category
defaultPriority UserTaskPriority
defaultDueDateOffset Period
defaultUserGroupAssignments [UserGroup]
associatedTitleField DataField
inputFields [DataField]
outputFields [DataField]
taskResults [UserTaskResult]

AssetUsage

Name Type Description
assetMetadataUsage AssetsOutput Query to retrieve the assets that reference the current asset as metadata
clipsUsage AssetsOutput Query to retrieve the clip assets that have the current asset as parent
edlsUsage AssetsOutput Query to retrieve the EDL assets that have the current asset listed inside them
groupsUsage AssetsOutput Query to retrieve the group assets that have the current asset listed inside them
patternsUsage AssetsOutput Query to retrieve the pattern assets that have the current asset listed inside them
bundlesUsage AssetsOutput Query to retrieve the bundle assets that have the current asset listed inside them
storiesUsage AssetsOutput Query to retrieve the story assets that have the current asset embedded inside them

AvidStorageUnitProtocol

Name Type Description
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit
subFolderNamingRule StorageUnitSubFolderNamingRule Naming rule for sub folders created when exporting media files to an external storage unit with this protocol

BlackPearlStorageUnitProtocol

Name Type Description
bucketName String The name of the Black Pearl bucket
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit

BlockTemplate

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown

Category

Category is an implementation of ObjectIfc.

Name Type Description
Id ID
objectType ObjectType The type of object returned. For category the value will be CATEGORY
name String
shortName String A short code (5 letters max) describing the typical usage of this category
fullName String Corresponds to the path from the root of all categories separated by "/". The total length of the full name must be less than 255 chars. Each name in the path must
code String A short code used to indicate the basic usage of this category
description String
parent Category The parent category of the category
childCount Int Number of sub categories contained in this category
children CategoriesOutput Query to retrieve information about sub categories matching the supplied filter
metadata NestedMetadataOutput Query to retrieve information about categories metadata matching the supplied filter
assets AssetsOutput Query to retrieve information about assets associated with the given category and supplied filter
system Boolean
runningOrder Boolean
color Color
keepDateOffset Int The date until which this category should be kept. The date is computed as: Now() + KeepDateOffset()
endDateOffset Int The date after which this category reaches its End Date. The date is computed as: Now() + EndDateOffset()
killDateOffset Int The date after which this category will be a candidate for automatic purge. The date is computed as: Now() + KillDateOffset()

CategoryNotification

Name Type Description
contents [CategoryNotificationContent]
category Category The categories matching the input filter

CategoryNotificationContent

Name Type Description
type CategoryNotificationType Type of notification received
receivedAt TimeDate The time that the notification was received
rawNotification String
initiatedByApplication String The user that initiated the notification
initiatedByUser User The application that initiated the notification

CGToVideoAssociation

Name Type Description
id ID
studioChannel StudioChannel
videoAsset VideoAsset
cgAsset CGAsset
tcIn Timecode
tcOut Timecode

CgType

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown

DaletToSolrField

Name Type Description
daletFieldName String The Dalet name of an indexed field
solrField SolrDataField The Solr name of an indexed field
usage SolrFieldUsage The type of search performed on indexed fields

DataField

Name Type Description
id ID
name String
tagName String
description String
type DataFieldTypeIfc
cardinality DataFieldCardinality The cardinality of the data field
inherited Boolean
readOnly Boolean
mandatory Boolean
valueType MetadataValueType Types of metadata values

DataFieldTableType

Name Type Description
name String
dataFields [DataField]

DivaStorageUnitProtocol

Name Type Description
url String URL to access the storage unit location
host String Machine hosting the server
port Int Port to connect to the Diva machine
divaMediaType DivaMediaType Diva media name definition
divaMediaName String The name of the media on Diva
divaCategory String The category that media in this storage unit is stored in on Diva
useExtension Boolean Flag to indicate whether the file extension is added to the media name stored in Diva DB
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit

DataFieldType

Name Type Description
name String
displayName String
description String
system Boolean
valueType MetadataValueType Types of metadata values

DataFieldTypeIfc

Example: Retrieve the names of "UserInGroup" and "Acceptance" data fields and additional information for different data field types using different implementations

query {
  dataFieldTypes(input: { where: { names: ["UserInGroup", "Acceptance"] } }) {
    dataFieldTypes {
      name
      ... on EnumDataFieldType {
        values
      }
      ... on IconSelectionDataFieldType {
        acceptAnyValue
      }
    }
  }
}
Name Type Description
name String
displayName String
description String
system Boolean
valueType MetadataValueType Types of metadata values

To retrieve the extended information available inside the DataFieldTypeIfc output, use the syntax:
...on EnumDataFieldType{ values } (see example on the right)

EnumDataFieldType

EnumDataFieldType is an implementation of DataFieldTypeIfc.
In addition, EnumDataFieldType has the following specific fields:

Name Type Description
acceptAnyValue Boolean
addNewValuesToList Boolean
sorted Boolean
values [String]

GlossaryDataFieldType

GlossaryDataFieldType is an implementation of DataFieldTypeIfc.
There are no specific fields for GlossaryDataFieldType implementation.

IconSelectionDataFieldType

IconSelectionDataFieldType is an implementation of DataFieldTypeIfc.
In addition, IconSelectionDataFieldType has the following specific fields:

Name Type Description
acceptAnyValue Boolean
addNewValuesToList Boolean
sorted Boolean
values [ValueWithIcon]

LengthRangeDataFieldType

LengthRangeDataFieldType is an implementation of DataFieldTypeIfc.
In addition, LengthRangeDataFieldType has the following specific fields:

Name Type Description
lengthUnit LengthRangeUnit
minLength Int
maxLength Int

RangeDataFieldType

RangeDataFieldType is an implementation of DataFieldTypeIfc.
In addition, RangeDataFieldType has the following specific fields:

Name Type Description
minValue String
maxValue String

RelationSelectionDataFieldType

RelationSelectionDataFieldType is an implementation of DataFieldTypeIfc.
In addition, RelationSelectionDataFieldType has the following specific fields:

Name Type Description
acceptAnyValue Boolean
addNewValuesToList Boolean
sorted Boolean
values [RelationSelectionValue]
parentType DataFieldTypeIfc

SimpleDataFieldType

SimpleDataFieldType is an implementation of DataFieldTypeIfc.
There are no specific fields for SimpleDataFieldType implementation.

ExtendedAssetType

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown

FtpStorageUnitProtocol

Name Type Description
url String URL of the storage unit
login String Login name for the connection to the FTP server
host String Machine hosting the FTP server
rootDirectory String Root storage folder on the FTP server
port Int Port to connect to the FTP server
encryption FtpEncryption The encryption method used to connect to the storage unit via FTP
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit
auxiliaryFiles StorageUnitAuxiliaryFiles The auxiliary files associated to media files that will be imported together with the media when copying media to this storage unit
subFolderNamingRule StorageUnitSubFolderNamingRule Naming rule for sub folders created when exporting media files to an external storage unit with this protocol

GroupItem

Name Type Description
id ID
parentGroupAsset GroupAsset
asset AssetIfc
metadata NestedGroupItemMetadataOutput Query to retrieve the asset metadata matching the supplied filter

GroupItemMetadataIfc

Example: Retrieve the metadata fields "ITEM_HOLD" and "ITEM_SCHEDULED_DURATION" and their values in the first item in group with id 354890 using different implementations

query {
  assets(input: { where: { ids: [354890] } }) {
    assets {
      ... on GroupAsset {
        items(input: { where: { groupItemIds: ["1:1:1"] } }) {
          items {
            metadata(
              input: { where: { fields: [ITEM_HOLD, ITEM_SCHEDULED_DURATION] } }
            ) {
              metadata {
                field
                ... on BooleanGroupItemMetadata {
                  boolean: value
                }
                ... on TimecodeGroupItemMetadata {
                  timecode: value
                }
              }
            }
          }
        }
      }
    }
  }
}
Name Type Description
field GroupItemDataField

To retrieve the extended information available inside the GroupItemMetadataIfc output, use the syntax:
...on BooleanGroupItemMetadata{ value } (see example on the right)

BooleanGroupItemMetadata

BooleanGroupItemMetadata is an implementation of GroupItemMetadataIfc.
In addition, BooleanGroupItemMetadata has the following specific fields:

Name Type Description
value [Boolean]

StringGroupItemMetadata

StringGroupItemMetadata is an implementation of GroupItemMetadataIfc.
In addition, StringGroupItemMetadata has the following specific fields:

Name Type Description
value [String]

TimecodeDateGroupItemMetadata

TimecodeDateGroupItemMetadata is an implementation of GroupItemMetadataIfc.
In addition, TimecodeDateGroupItemMetadata has the following specific fields:

Name Type Description
value [TimecodeDate]

TimecodeGroupItemMetadata

TimecodeGroupItemMetadata is an implementation of GroupItemMetadataIfc.
In addition, TimecodeGroupItemMetadata has the following specific fields:

Name Type Description
value [Timecode]

UnsupportedGroupItemMetadata

UnsupportedGroupItemMetadata is an implementation of GroupItemMetadataIfc.
There are no specific fields for UnsupportedGroupItemMetadata implementation.

GroupItemsOutput

Name Type Description
groupId ID
groupItemIds [ID]

HttpStorageUnitProtocol

Name Type Description
url String URL of the storage unit
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit

Language

Name Type Description
id ID
name String
code String
isoCode String
subtitlesCode String
default Boolean
usedOnSite Boolean

LocatorFamily

Name Type Description
name String
description String
abbreviation String The short Abbreviation of this locator family as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters
color Color
system Boolean

LocatorIfc

Example: Retrieve locators of type NLP-NER and retrieve additional information about their metadata using locator implementation

query {
  locators(input: { where: { typeNames: ["NLP-NER"] } } ) {
    locators {
      id
      ... on Locator {
        metadata {
          metadata {
            field { name }
        } } } } } 
}
Name Type Description
id ID
objectType ObjectType The type of object returned. For LocatorIfc the value will be LOCATOR
lastModifiedBy String
lastModifiedAt TimeDate
type LocatorType
parentObject AssetIfc
timecodeIn Timecode
timecodeOut Timecode

To retrieve the extended information available inside the LocatorIfc output, use the syntax:
...on Locator{ metadata } (see example on the right)

Locator

Locator is an implementation of LocatorIfc and ObjectIfc.
In addition, Locator has the following specific fields:

Name Type Description
metadata NestedMetadataOutput Query to retrieve information about locators metadata matching the supplied filter

LocatorNotification

Name Type Description
contents [LocatorNotificationContent]
locators LocatorIfc

LocatorNotificationContent

Name Type Description
receivedAt TimeDate The time that the notification was received
type LocatorNotificationType The type of notification
asset AssetIfc
rawNotification String
initiatedByUser User The user that initiated the notification
initiatedByApplication String The application that initiated the notification

LocatorType

Name Type Description
name String
family LocatorFamily
abbreviation String The short Abbreviation of this locator type as displayed in the GUI. The length of the abbreviation MUST be between 1 and 3 characters
color Color
subtype LocatorSubType The sub type of the locator type
inheritance LocatorInheritance The type of inheritance for range type locators
hidden Boolean
system Boolean
maxAllowedInstances Int
createThumbnails Boolean
dataFields [DataField] The data fields of the locator type

MasstechStorageUnitProtocol

Name Type Description
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit
subFolderNamingRule StorageUnitSubFolderNamingRule Naming rule for sub folders created when exporting media files to an external storage unit with this protocol

MediaFormatIfc

Example: Retrieve the first 100 used on site media formats. Retrieve additional information using various media format implementations

query {
  mediaFormats(
    input: { select: { first: 100 }, where: { usedOnSite: true } }
  ) {
    totalCount
    mediaFormats {
      id
      name
      ... on AudioMediaFormat {
        availableForEditing
      }
      ... on ImageMediaFormat {
        width
        height
      }
      ... on MiscMediaFormat {
        mimeType
      }
      ... on SubtitlesMediaFormat {
        fileNamePatterns
      }
      ... on VideoMediaFormat {
        rate
      }
    }
  }
}
Name Type Description
id ID
name String
alias String
fileNamePatterns [String]
mediaType FormatMediaType
usedOnSite Boolean

To retrieve the extended information available inside the MediaFormatIfc output, use the syntax:
...on AudioMediaFormat{ availableForEditing } (see example on the right)

AudioMediaFormat

AudioMediaFormat is an implementation of MediaFormatIfc.
In addition, AudioMediaFormat has the following specific fields:

Name Type Description
availableForBrowsing Boolean
availableForEditing Boolean
availableForStreaming Boolean

ImageMediaFormat

ImageMediaFormat is an implementation of MediaFormatIfc.
In addition, ImageMediaFormat has the following specific fields:

Name Type Description
canBeAConversionSource Boolean
canBeAConversionTarget Boolean
previewInWebSpace Boolean
previewInGalaxy Boolean
width Int
height Int

MiscMediaFormat

MiscMediaFormat is an implementation of MediaFormatIfc.
In addition, MiscMediaFormat has the following specific fields:

Name Type Description
mimeType String
associatedAssetType AssetTypeIfc

SubtitlesMediaFormat

SubtitlesMediaFormat is an implementation of MediaFormatIfc.
There are no specific fields for SubtitlesMediaFormat implementation.

VideoMediaFormat

VideoMediaFormat is an implementation of MediaFormatIfc.
In addition, VideoMediaFormat has the following specific fields:

Name Type Description
rate Int
scale Int
availableForBrowsing Boolean
availableForEditing Boolean
availableForStreaming Boolean

MediaInfoIfc

Example: Retrieve media info ids of two assets and retrieve additional information using various media info implementations

query {
  mediaInfo(input: { where: { assetIds: [357768, 357011] } } ) {
    mediaInfo {
      id
      ... on AudioMediaInfo {
        duration
        filesFullPath
      }
      ... on VideoMediaInfo {
        tcIn
        tcOut
      }
    }
  }
}
Name Type Description
id ID
format MediaFormatIfc
mediaProcessStatus MediaProcessStatus
storageUnit StorageUnit
createdAt TimeDate
lastModifiedAt TimeDate
mainFileFullPath String
version Int

To retrieve the extended information available inside the MediaInfoIfc output, use the syntax:
...on AudioMediaInfo{ duration } (see example on the right)

AudioMediaInfo

AudioMediaInfo is an implementation of MediaInfoIfc.
In addition, AudioMediaInfo has the following specific fields:

Name Type Description
filesFullPath [String]
duration Timecode
tcIn Timecode
tcOut Timecode

DeletedMediaInfo

DeletedMediaInfo is an implementation of MediaInfoIfc.
There are no specific fields for DeletedMediaInfo implementation.

ImageMediaInfo

ImageMediaInfo is an implementation of MediaInfoIfc.
There are no specific fields for ImageMediaInfo implementation.

MiscMediaInfo

MiscMediaInfo is an implementation of MediaInfoIfc.
There are no specific fields for MiscMediaInfo implementation.

SubtitlesMediaInfo

SubtitlesMediaInfo is an implementation of MediaInfoIfc.
There are no specific fields for SubtitlesMediaInfo implementation.

VideoMediaInfo

VideoMediaInfo is an implementation of MediaInfoIfc.
In addition, VideoMediaInfo has the following specific fields:

Name Type Description
filesFullPath [String]
duration Timecode
tcIn Timecode
tcOut Timecode

MediaNotification

Name Type Description
contents [MediaNotificationContent]
mediaInfo MediaInfoIfc

MediaNotificationContent

Name Type Description
receivedAt TimeDate The time that the notification was received
type MediaNotificationType Type of notification received
rawNotification String
initiatedByUser User The user that initiated the notification
initiatedByApplication String The application that initiated the notification

MediaPackTemplate

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown
embeddedItems [MediaPackTemplateItem] The items embedded in the media pack template

MediaPackTemplateItem

Name Type Description
name String
type AssetTypeIfc
category Category The category of the items embedded in the media pack template
includeSubCategories Boolean Indicates whether to include sub-categories when populating the media pack
rule MediaPackTemplateItemRule The rule for the number of items allowed in the media pack template
field DataField

MediaPackTemplateItemRule

Name Type Description
minItemCount Int Minimal number of items in the rule
maxItemCount Int Maximal number of items in the rule

MetadataIfc

Example: Retrieve a few metadata fields on video with id 366231. Retrieve the field values using various metadata implementations

query {
  assets(input: { where: { ids: 366231 } }) {
    assets {
      metadata(
        input: { 
          where: { fields: { 
            names: ["Title Duration", "Title Author", "Title Reference"] } }
       } ) {
        metadata {
            field {
             tagName
          }
          ... on TextMetadata {
            text: value
          }
          ... on PeriodMetadata {
            period: value
          }
          ... on ObjectMetadata {
            object: value {
              id
              ... on AssetIfc {
                name
              }
            }
          }
        }
      }
    }
  }
}
Name Type Description
field DataField

To retrieve the extended information available inside the MetadataIfc output, use the syntax:
...on TextMetadata{ value } (see example on the right)

If the outputs of the implementations have the same name but different types, add an alias before using the output.
For example: somename: value{ }

NumberMetadata

NumberMetadata is an implementation of MetadataIfc.
In addition, NumberMetadata has the following specific fields:

Name Type Description
value [Int]

ObjectMetadata

ObjectMetadata is an implementation of MetadataIfc.
In addition, ObjectMetadata has the following specific fields:

Name Type Description
value [ObjectIfc]

PeriodMetadata

PeriodMetadata is an implementation of MetadataIfc.
In addition, PeriodMetadata has the following specific fields:

Name Type Description
value [Period]

TextMetadata

TextMetadata is an implementation of MetadataIfc.
In addition, TextMetadata has the following specific fields:

Name Type Description
value [String]

TimeDateMetadata

TimeDateMetadata is an implementation of MetadataIfc.
In addition, TimeDateMetadata has the following specific fields:

Name Type Description
value [TimeDate]

TimecodeDateMetadata

TimecodeDateMetadata is an implementation of MetadataIfc.
In addition, TimecodeDateMetadata has the following specific fields:

Name Type Description
value [TimecodeDate]

TimecodeMetadata

TimecodeMetadata is an implementation of MetadataIfc.
In addition, TimecodeMetadata has the following specific fields:

Name Type Description
value [Timecode]

UnsupportedMetadata

UnsupportedMetadata is an implementation of MetadataIfc.
There are no specific fields for UnsupportedMetadata implementation.

MetadataNotification

Name Type Description
contents [MetadataNotificationContent]
object ObjectIfc

MetadataNotificationContent

Name Type Description
receivedAt TimeDate
type MetadataNotificationType
rawNotification String
initiatedByUser User
initiatedByApplication String
metadata [MetadataIfc]

MigrationPolicy

Name Type Description
id ID
name String
enabled Boolean Indicates whether the migration policy is enabled on site

NamingPathElement

Name Type Description
constant Boolean A constant name assigned to a sub-folder created for files exported to this External Storage Unit
value String Asset Manager fields whose content is used as part of the naming rule for a sub-folder created for files exported to this ESU
format String Date format for Date AM fields whose content is used as part of the naming rule for a sub-folder created for files exported to this ESU

ObjectIfc

Example: Update metadata of a video and a category and retrieve additional information about the updated objects using the object implementations

mutation {
  updateObjectsMetadata(
    input: {
      actionType: SET
      objectsMetadata: [
        {
          objectId: 357768 , objectType: ASSET
          metadata: { field: { name: "Item Code" } , value: "DAL_58710" }
        } {
          objectId: 45 , objectType: CATEGORY
          metadata: { field: { name: "Category Description" } , value: "short description" }
        } ] } ) {
    updatedObjects {
      id
      objectType
      ... on VideoAsset {
        duration
        status
      ... on Category {
        fullName
        childCount
        runningOrder }
    }
  }
}
Name Type Description
id ID
objectType ObjectType

To retrieve the extended information available inside the ObjectIfc output, use the syntax:
...on Category{ name } (see example on the right)

ObjectIfc has the following implementations:
AudioAsset
BundleAsset
Category
CGAsset
ClipAsset
EDLAsset
ExtendedAsset
GroupAsset
ImageAsset
Locator
StoryAsset
SubtitlesAsset
TrackStackAsset
TxVersionAsset
UnsupportedAsset
UnsupportedObject
User
UserGroup
UserTaskAsset
VideoAsset

UnsupportedObject

UnsupportedObject is an implementation of ObjectIfc.
There are no specific fields for UnsupportedObject implementation.

OembedStorageUnitProtocol

Name Type Description
url String URL of the storage unit
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit

PageInfo

Name Type Description
endCursor String The cursor of the last result
hasNextPage Boolean Indicates if there is another results page

QuantelStorageUnitProtocol

Name Type Description
poolId String Id of the pool used to store video on Quantel sQ server
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit

RelationSelectionValue

Name Type Description
parentValue String
relatedValues [String]

SecureFtpStorageUnitProtocol

Name Type Description
url String URL of the storage unit
authenticationMode SecureFtpAuthenticationMode The authentication mode of the storage unit
strictHostCheck Boolean Performs a strict host check operation when connecting with SFTP protocol with Public Key authentication mode
hostPublicKeyFilePath String Path to the public key file on the server. The file contains the public key used to decrypt and identify users
login String Login name for the connection to the secure FTP server
host String Machine hosting the secure FTP server
rootDirectory String Root storage folder on the secure FTP server
port Int Port to connect to the secure FTP server
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit
auxiliaryFiles StorageUnitAuxiliaryFiles The auxiliary files associated to media files that will be imported together with the media when copying media to this storage unit
subFolderNamingRule StorageUnitSubFolderNamingRule Naming rule for sub folders created when exporting media files to an external storage unit with this protocol

SocialMediaAccount

Name Type Description
id ID
name String
description String

SolrCore

Name Type Description
id ID
name String
language Language
mapping [DaletToSolrField] The relationship between a field in Dalet in the index and a field in Solr in the index

SolrDataField

Name Type Description
name String
type SolrDataFieldType Properties of the data field type
cardinality SolrFieldCardinality
indexed Boolean
stored Boolean
omitNorms Boolean
highlights Boolean
termOffsets Boolean
termPositions Boolean
termVectors Boolean

SolrDataFieldType

Name Type Description
name String
description String
system Boolean
baseType SolrFieldBaseType
usages [SolrFieldUsage] Usages that can be configured on the data field type

SolrIndex

Name Type Description
id ID
name String
tagName String
description String
solrVersion SolrVersion The verison of the solr engine
version Int The version of the deployed solr index
status SolrIndexStatus The status of the SolR index
url String
languages [Language]
cores [SolrCore] A Solr index with an appropriate schema for each language searched

Station

Name Type Description
id ID
name String
description String
code String
type StationType The type of station
defaultStudio Studio The default studio of the station
defaultRundownCategory Category The default category to create rundowns in
fifo Boolean Indicates whether the recording station is of type FIFO

StorageUnit

Name Type Description
id ID
name String
type StorageUnitType The type of storage unit
protocol StorageUnitProtocolUnion Used to access this storage unit
domain StorageUnitDomain The domain of the storage unit
aliases [StorageUnitAlias] The aliases of the storage unit

StorageUnitAlias

Name Type Description
id ID
name String
path String

StorageUnitAuxiliaryFiles

Name Type Description
movRef Boolean Flag to indicate whether movRef files associated to media files will be copied together with the media when copying media to the target storage unit. The flag is set on the target storage unit
tcd Boolean Flag to indicate whether tcd files associated to media files will be copied together with the media when copying media to the target storage unit. The flag is set on the target storage unit
idx Boolean Flag to indicate whether idx files associated to media files will be copied together with the media when copying media to the target storage unit. The flag is set on the target storage unit
vol Boolean Flag to indicate whether vol files associated to media files will be copied together with the media when copying media to the target storage unit. The flag is set on the target storage unit

StorageUnitDomain

Name Type Description
id ID
name String
description String

StorageUnitMediaNamingRule

Name Type Description
fields [DataField] Asset Manager fields whose content is used as part of the naming rule of files in the storage unit
delimiter String The delimiter used between field values. Used as part of the naming rule of files in the storage unit
maxLength Int The maximum length of the name of a file in the storage unit
forbiddenCharacters String A list of characters that MUST NOT be used in the name of files in the storage unit
prefix String A unique prefix for the media file name

StorageUnitProtocolUnion

Name Description
UncStorageUnitProtocol Used for direct connection to shared folders in the network
HttpStorageUnitProtocol Used for communication using the HTTP protocol
FtpStorageUnitProtocol Used for the Dalet integration with the FTP protocol
SecureFtpStorageUnitProtocol Used for the Dalet integration with Secure FTP protocol
DivaStorageUnitProtocol Used for the Dalet integration with Diva
MasstechStorageUnitProtocol Used for the Dalet integration with Masstech
ArchiveStorageUnitProtocol Used for integration with Archive systems
QuantelStorageUnitProtocol Used for the Dalet integration with Quantel
AmazonS3StorageUnitProtocol Used for the Dalet integration with AmazonS3
BlackPearlStorageUnitProtocol Used for the Dalet integration with Black Pearl
AvidStorageUnitProtocol Used for the Dalet integration with Avid
YouTubeStorageUnitProtocol Used for the Dalet integration with YouTube
OembedStorageUnitProtocol Used for referencing external media with oembed URL

StorageUnitSubFolderNamingRule

Name Type Description
pathElements [NamingPathElement]

StoryTemplate

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown

Studio

Name Type Description
id ID
type StudioType The type of studio
name String
fifo Boolean Indicates whether the recording studio is of type FIFO

StudioChannel

Name Type Description
id ID
name String
type StudioChannelType The type of studio
description String
acceptedAssetTypes [AssetTypeIfc]
language Language
associatedLocatorType LocatorType The locator type associated to the studio channel

SubtitlesToVideoAssociation

Name Type Description
id ID
studioChannel StudioChannel
videoAsset VideoAsset
subtitlesAsset SubtitlesAsset
tcIn Timecode
tcOut Timecode

SubtitlesType

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown
storeTtml Boolean Indicates whether the subtitles type contains a TTML version. If TTML is available, subtitles can be previewed in Dalet
storeNative Boolean Indicates whether the subtitle type stores a native subtitle format (for example STL)

TemplateTrack

Name Type Description
type TemplateTrackType The type of template track
metadata MetadataIfc The data fields of the template track

TrackStackTemplate

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown
defaultCategory Category The default category to create the track stack assets in
associatedLocatorType LocatorType The locator type associated to the track stack template
mediaFormats [MediaFormatIfc] The media formats that are supported in the track stack template and can be added to a track stack in the Bundle Editor
tracks [TemplateTrack] The tracks configured in the track stack template

UncStorageUnitProtocol

Name Type Description
HSMSupport Boolean Used if the storage unit supports HSM data storage technique
path String The path of the storage unit
mediaNamingRule StorageUnitMediaNamingRule Naming rule for media files created in this storage unit
auxiliaryFiles StorageUnitAuxiliaryFiles The auxiliary files associated to media files that will be imported/exported together with the media when copying media to this storage unit
suffixOnOverwrite Boolean A unique suffix for the media file name in case an online media info is overritten
login String Login name for the connection to the FTP server

User

User is an implementation of ObjectIfc.

Name Type Description
id ID
objectType ObjectType The type of object returned
userGroups UserGroupsOutput Query to retrieve user groups information matching the supplied filter. The user groups include the current user
login String
firstName String
lastName String
nickname String
remarks String
readRate Int The calculated time of reading text in a story in characters per second. Only relevant for users in the system Speakers group
fax String
phone String
workPhone String
mobilePhone String
email String
address String
accountValidFrom TimeDate The date the user is valid from
accountValidTo TimeDate The date the user is valid to
clipBinCategory Category ClipBin category created automatically with all access rights enabled for the created user
assignmentsCategory Category Assignments category created automatically with all access rights enabled for the created user
privateCategory Category Private category created automatically with all access rights enabled for the created user
quickSaveCategory Category Quick save category created automatically with all access rights enabled for the created user

UserGroup

UserGroup is an implementation of ObjectIfc.

Name Type Description
id ID
objectType ObjectType The type of object returned
name String
description String
priority Int
users UsersOutput Query to retrieve users information matching the supplied filter. The users reside in the current user group

UserGroupNotification

Name Type Description
contents [UserGroupNotificationContent]
user UserGroup

UserGroupNotificationContent

Name Type Description
receivedAt TimeDate The time that the notification was received
type UserNotificationType Type of notification received
users [User] Information about the users as part of the notification details
rawNotification String
initiatedByUser User The user that initiated the notification
initiatedByApplication String The application that initiated the notification

UserNotification

Name Type Description
contents [UsersNotificationContent]
user User

UsersNotificationContent

Name Type Description
receivedAt TimeDate The time that the notification was received
type UserNotificationType Type of notification received
userGroup UserGroup The user group that the user was added to or removed from for notifications of type ADDED_TO_GROUP or REMOVED_FROM_GROUP
rawNotification String
initiatedByUser User The user that initiated the notification
initiatedByApplication String The application that initiated the notification

UserTaskResult

Name Type Description
value String
color Color

UserTaskType

Name Type Description
id ID
name String
description String
objectType ObjectType The type of object returned
mediaType AssetMediaType Types of media that can be associated to the asset type
editor String
withFile Boolean Indicates whether assets of this asset type have media
assetCanBeCreated Boolean
reuseAction ReuseAction The behavior when an asset of this type is dragged from the base browser into a story or rundown
defaultCategory Category The default category to create the user task assets in
associatedLocatorType LocatorType The locator type associated to the user task type
defaultPriority UserTaskPriority The default priority of the user task
defaultDueDateOffset Period The default due date offset of the user task
defaultUserGroupAssignments [UserGroup] The default userGroup assigned to the user task
associatedTitleField DataField The data field associated to the user task
inputFields [DataField] The input fields of the user task
outputFields [DataField] The output fields of the user task
taskResults [UserTaskResult] The task results of the user task

UserToGroupAssociation

Name Type Description
userGroup UserGroup
users [User]

ValueWithIcon

Name Type Description
value String

YouTubeStorageUnitProtocol

Name Type Description
youtubeId String Id of the YouTube RSU created when RSU is first created. Does not change even if the YouTube Account associated to the RSU is changed
youtubeUrl String URL of the YouTube RSU created when RSU is first created. Does not change even if the YouTube Account associated to the RSU is changed
youtubeAccount SocialMediaAccount The YouTube Social Media Account created in Dalet Galaxy associated to the YouTube RSU. This is not necessarily the same as the account name in YouTube

Enum

AmazonS3StorageClass

Value Description
STANDARD
STANDARD_INFREQUENT_ACCESS
REDUCED_REDUNDANCY
GLACIER
DEEP_ARCHIVE
INTELLIGENT_TIERING
ONEZONE_INFREQUENT_ACCESS

AssetMediaType

Value Description
VIDEO
AUDIO
STORY
IMAGE
CG
OTHER

AssetNotificationType

Value Description
CREATED Notifications about creation of assets
MODIFIED Notifications about modification of assets
DELETED Notifications about deletion of assets
LINKED_TO_CATEGORY Notifications about links of assets to a category
REMOVED_FROM_CATEGORY Notifications about removal of assets links from a category
ALL All types of notifications triggered by changes in assets on site

CategoryNotificationType

Value Description
CREATED Notifications for creation of categories
MODIFIED Notifications about modification of categories definitions
DELETED Notifications about deletion of categoies
ALL All types of notifications triggered by changes in categories on site

CopyAssetDataType

Value Description
GENEALOGY Copies the genealogy metadata from source asset to a target asset
INHERITABLE_LOCATORS Copies all inheritable locators from source asset to a target asset
INHERITABLE_METADATA Copies all inheritable metadata from source asset to target asset

DataFieldCardinality

Value Description
SINGLE
MULTI

DivaMediaType

Value Description
DEFAULT Corresponds to the default DIVA storage configuration as configured in DIVA
GROUP A named group of tapes. Can be configured in DIVA or created from the Dalet Admin
DISK_ARRAY A collection of disks, as configured in DIVA. Each disk is known to DIVA through its physical path and capacity

FormatMediaType

Value Description
VIDEO
AUDIO
IMAGE
SUBTITLES
MISC

FtpEncryption

Value Description
PLAIN_FTP
EXPLICIT_FTPS
IMPLICIT_FTPS

GroupItemDataField

Value Description
ITEM_COMPUTED_DURATION
ITEM_COMPUTED_START_TIME
ITEM_SCHEDULED_DURATION
ITEM_USE_SCHEDULED_DURATION
ITEM_HOLD
ITEM_CUSTOM_1
ITEM_CUSTOM_2
ITEM_CUSTOM_3
ITEM_CUSTOM_4
ITEM_CUSTOM_5
ITEM_CUSTOM_6
ITEM_CUSTOM_7
ITEM_CUSTOM_8
ITEM_CUSTOM_9
ITEM_CUSTOM_10
ITEM_CUSTOM_11
ITEM_CUSTOM_BOOLEAN_1
ITEM_CUSTOM_BOOLEAN_2
ITEM_CUSTOM_BOOLEAN_3
ITEM_CUSTOM_BOOLEAN_4
ITEM_CUSTOM_BOOLEAN_5

Invalid Input Reasons

Value Description
TOO_SHORT Value too short
WRONG_FORMAT Value of wrong format
NEGATIVE Negative value
TOO_LONG Value too long
FORBIDDEN_CHARACTERS Forbidden characters
MULTIPLE_VALUES Mutliple values
EMPTY_OR_NULL Value empty or null
WRONG_TYPE Value of wrong type
UNSUPPORTED_NOTIFICATION_TYPE Unsupported notification type
UNSUPPORTED_OBJECT_TYPE Unsupported object type
MISSING_VALUE Missing value
ALREADY_EXISTS Value already exists
INVALID_VALUE Invalid value
MISMATCH Value mismatch

LengthRangeUnit

Value Description
CHARACTERS
WORDS
PAGES

LocatorInheritance

Value Description
NONE Locators will not be inherited when a clip is rendered from the source material
PARTIAL Locators will be inherited when a clip is rendered from the source material even if only a portion of the source locator is included in the clip
FULL Locators will be inherited when a clip is rendered from the source material ONLY if the complete source locator is included in the clip

LocatorNotificationType

Value Description
CREATED Notifications about creation of locators
MODIFIED Notifications about modification of locators definitions
DELETED Notifications about deletion of locators
ALL All types of notifications triggered by changes in locators on site

LocatorSubType

Value Description
RANGE Locator type that includes a period of time and has time code in and time code out
SINGLE Locator type that represents a single point and only has time code in
TABLE Locator type that allows to arrange metadata in tables in Asset Manager forms

MediaNotificationType

Value Description
MODIFIED Notifications about modification of media infos definitions
CREATED Notifications about creation of media infos
DELETED Notifications about deletion of media infos
ALL All types of notifications triggered by changes in media infos on site

MediaProcessStatus

Value Description
NEAR_ONLINE
ONLINE
PREPARE_COPY
COPYING
PREPARE_RECORD
RECORDING
CHANGING_BY_OTHER
OFFLINE

MetadataNotificationType

Value Description
MODIFIED Notifications about modification of metadata
ALL All types of notifications triggered by changes in metadata

MetadataSearchMode

Value Description
ALL_MATCH Selected objects will match all provided metadata (AND operator)
AT_LEAST_ONE_MATCH Selected objects will match at least one provided metadata (OR operator)

MetadataValueType

Value Description
TEXT Base type of a data field that expects a String as value
NUMBER Base type of a data field that expects an Int as value
PERIOD Base type of a data field that expects a Period as value
TIME_DATE Base type of a data field that expects TimeDate as value
TIMECODE Base type of a data field that expects a TimeCode as value
TIMECODE_DATE Base type of a data field that expects a TimeCodeDate as value
OBJECT Base type of a data field that expects an objectValueTypes as value
CALCULATED Base type of a data field that expects a value other than the above, such as Usage or Genealogy.
Fields of this type are read only

ObjectType

Value Description
ASSET
CATEGORY
CONTACT
GLOSSARY_VALUE
LOCATOR
PLANNING_EVENT
PLAYOUT
RECORDING_JOB
RUNDOWN
WEBLINK
WORKFLOW_INSTANCE
USER
USER_GROUP

ObjectTypeWithMetadata

Value Description
ASSET
CATEGORY
CONTACT
GLOSSARY_VALUE
LOCATOR
PLANNING_EVENT
RUNDOWN

ObjectValueTypes

Value Description
CategoryType
ItemType
BroadcastItemType
ClockType
UserType
UserGroupType
StationType
StorageType
StudioType
FormatType
UsersInGroupType
JobType

Precondition

Value Description
MEDIA_ALREADY_EXISTS
MUST_NOT_BE_PRIMARY_MEDIA
MUST_NOT_BE_PRIMARY_CATEGORY
CLIP_MEDIA_INFO
MEDIA_INFO_MUST_BE_ATTACHED_TO_TITLE
CATEGORY_MUST_BE_EMPTY
CATEGORY_MUST_NOT_BE_IN_THE_RECYCLE_BIN
CATEGORY_MUST_NOT_BE_GLOSSARY_FOLDER
CATEGORY_MUST_NOT_BE_RUNDOWN_FOLDER
ASSETS_MUST_NOT_BE_LINKED_TO_CATEGORY
ASSET_MUST_NOT_BE_USED_BY_OTHER_ASSETS
MUST_MATCH_ANY_GROUP_CHANNEL
INVALID_LOGIN
DATA_FIELD_MUST_BE_WRITABLE
DATA_FIELD_MUST_BE_MULTI_CARDINALITY
DATA_FIELD_MUST_BE_TABLE
USER_MUST_HAVE_CLIP_BIN_CATEGORY
USER_MUST_NOT_BE_LOGGED
CANNOT_REMOVE_USER_FROM_PUBLIC_GROUP
MUST_BE_A_VIDEO_ASSET_TYPE
MUST_BE_A_CG_ASSET_TYPE
MUST_BE_A_SUBTITLES_ASSET_TYPE
MUST_BE_AN_EXTENDED_ASSET_TYPE
MUST_BE_AN_TRACK_STACK_ASSET_TYPE
MUST_BE_A_STORY_ASSET_TYPE
MUST_BE_A_GROUP_ASSET_TYPE
MUST_BE_A_CATEGORY
STUDIO_CHANNEL_MUST_ACCEPT_THE_TITLE_TYPE

ResourceType

Value Description
DATA_FIELD
DATA_FIELD_TYPE
DATA_FIELD_TYPE_KIND
TABLE_DATA_FIELD_ROW
LOCATOR
LOCATOR_SUB_TYPE
LOCATOR_INHERITANCE
LOCATOR_TYPE
LOCATOR_FAMILY
LANGUAGE
ASSET
ASSET_TYPE
ASSET_STATUS
CG_TO_VIDEO_ASSOCIATION
SUBTITLES_TO_VIDEO_ASSOCIATION
DIVA_MEDIA_TYPE
MEDIA_INFO
MEDIA_INFO_TYPE
MEDIA_PROCESS_STATUS
MEDIA_TYPE
REUSE_ACTION
MEDIA_RESOURCE
MEDIA_RESOURCE_TYPE
CG_TYPE
MEDIA_FORMAT
OBJECT_TYPE
SOCIAL_MEDIA_ACCOUNT
SOLR_INDEX
SOLR_INDEX_STATUS
SOLR_DATA_FIELD_BASE_TYPE
SOLR_DATA_FIELD_TYPE
SOLR_VERSION
LENGTH_RANGE_UNIT
STUDIO
STUDIO_TYPE
STUDIO_CHANNEL
STUDIO_CHANNEL_TYPE
ENCRYPTION
AUTHENTICATION_MODE
STORAGE_UNIT
STORAGE_UNIT_PROTOCOL
STORAGE_UNIT_DOMAIN
AMAZON_S3_STORAGE_CLASS
TEMPLATE_TRACK_TYPE
USER_TASK_PRIORITY
SOLR_DATA_FIELD_USAGE
USER
USER_GROUP
GROUP_ITEM
GROUP
CATEGORY
FOLDER
NOTIFICATION_TYPE
CONTACT
GLOSSARY_VALUE
PLANNING_EVENT
PLAYOUT
RECORDING_JOB
RUNDOWN
WEBLINK
WORKFLOW_INSTANCE
UNKNOWN

ReuseAction

Value Description
COPY Creates a copy of the inserted asset with a new asset id
LINK Creates a link to the inserted asset with the same asset id

SecureFtpAuthenticationMode

Value Description
PASSWORD
PUBLIC_PRIVATE_KEYS

SelectorType

Value Description
ID
LOGIN
NAME
TYPE
TAG_NAME
ABBREVIATION

SolrIndexStatus

Value Description
NEW
READY
BLOCKED

SolrFieldBaseType

Value Description
NUMBER
TEXT
DATE_TIME
OTHER

SolrFieldCardinality

Value Description
SINGLE
MULTI

SolrFieldUsage

Value Description
SEARCH_BY_TERM Returns objects that include part of the value in the search query
SEARCH_BY_RANGE Returns objects that match the range of values in the search query
SEARCH_BY_EXACT_VALUE Returns objects which exactly match the value in the search query
SORT Sorts search results according to the metadata field with this usage. If this usage is not configured for a field, you cannot sort search results based on this metadata field
HIGHLIGHT Returns highlighted matches and snippets which show the context in which the value of your query appears in the metadata of your search results
FACET_SEARCH_RESULT Breaks up search results into multiple categories and displays a count for returned facets
FULLTEXT Makes the selected field available for full text search
PHONETIC Returns objects that match the value in the search query phonetically

SolrVersion

Value Description
SOLR_4_6
SOLR_7_5

StationType

Value Description
PLAYOUT
RECORDING

StorageUnitProtocolType

Value Description
UNC
HTTP
FTP
SECURE_FTP
DIVA
MASSTECH
ARCHIVE
QUANTEL
AMAZON_S3
BLACKPEARL
AVID
YOUTUBE
OEMBED

StorageUnitType

Value Description
LOCAL
REMOTE
EXTERNAL

StudioChannelType

Value Description
PLAYLIST
CARTS
INGEST
PLANNING_AREA

StudioType

Value Description
PLAYOUT
RECORDING

TemplateTrackType

Value Description
TT_VIDEO
TT_AUDIO
TT_SUBTITLES

UpdateMetadataActionType

Value Description
SET Override the existing value of a field
APPEND Add a value to a multi-cardinality field
REMOVE Remove a value from a multi-cardinality field

UserNotificationType

Value Description
MODIFIED Notifications about modification of users definitions
ADDED_TO_GROUP Notifications about addition of users to user groups
REMOVED_FROM_GROUP Notifications about removal of users from user groups
CREATED Notifications about creation of users
DELETED Notifications about deletion of users
ALL All types of notifications triggered by changes in users on site

UserTaskPriority

Value Description
LOW
MEDIUM
HIGH

Scalar

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as a key for a cache.
The ID type appears in a JSON response as a String; however, it is not intended to be human-readable.
When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

String

The String scalar type represents textual data, represented as UTF-8 character sequences.
The String type is most often used by GraphQL to represent free-form human-readable text.

Boolean

The Boolean scalar type represents true or false.

TimeCode

Time code is a combination of frame, rate and scale, presented as hours/minutes/seconds/milliseconds.
For example: 14:14:36.279 PAL

TimeCodeDate

Time code date is a combination of time code and date. If not specified, the timezone used for the value is UTC.
For example: 2005-01-18T14:14:36.279 PAL

TimeDate

A date and time in ISO format.
If not specified, the timezone used for the value is UTC, for example: "P10:0:0.000S"

Color

A color specified in Hexadecimal Code RGB, for example for red: #FF0000.

Int

The Int scalar type represents non-fractional signed whole numeric values.
Int can represent values between -(2^31) and 2^31 - 1.

Period

A duration in ISO format that represent a period of time, for example: PT10S.

PageLength

Page length Should be between 1 to 1000

Errors

This section specifies the types of errors that are supported in WebService3.
General structure of an error message contains:

AuthenticationError

Login with bad username and password

mutation LoginToDalet {
        login(input: {
            username: "BadUser",
            password: "BadPassword"
        }) {
            token
        }
    }

The above returns this error:

{
  "errors": [
    {
      "message": "Bad credentials",
      "locations": [
        {
          "line": 2,
          "column": 9
        }
      ],
      "path": [
        "login"
      ],
      "extensions": {
        "errorCode": "AuthenticationError",
        "classification": "ExecutionAborted"
      }
    }
  ],
  "data": {
    "login": null
  }
}

Indicates that the call is not authenticated.

Possible reasons:

Value Description
Bad credentials Incorrect username or password
Authentication server unreachable
User not authenticated The token used is invalid

Extensions

InvalidInput

Run mutation with an empty mandatory input

mutation {
  createAudioAssets(input: { assets: { assetName: "", 
                                       categoryId: "0" } }) {
    assets {
      id
    }
  }
}

The above returns this error:

{
  "errors": [
    {
      "message": "Input name [name] with value [] is invalid with [Missing Value] reason. Error details: Must not be empty",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createAudioAssets"
      ],
      "extensions": {
        "reason": "MISSING_VALUE",
        "name": "name",
        "errorCode": "InvalidInput",
        "value": "",
        "classification": "ValidationError"
      }
    }
  ],
  "data": {
    "createAudioAssets": {
      "assets": []
    }
  }
}

Indicates that an input value is not valid.

Extensions

NoAccessRightsException

Run mutation to create an audio asset while logged in with unauthorized user

mutation {
  createAudioAssets(input: { assets: { assetName: "AudioAsset", 
                                       categoryId: "0" } }) {
    assets {
      id
    }
  }
}

The above returns this error:

{
  "errors": [
    {
      "message": "User with id [26] does not have access rights to perform operation type [Create] for resource type [Asset]",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createAudioAssets"
      ],
      "extensions": {
        "errorCode": "NoAccessRightsException",
        "resourceSelectorType": null,
        "operationType": "CREATE",
        "resourceSelector": null,
        "userId": 26,
        "resourceType": "ASSET",
        "classification": "ValidationError"
      }
    }
  ],
  "data": {
    "createAudioAssets": {
      "assets": []
    }
  }
}

Indicates that a user has insufficient rights to perform the requested operation.

Extensions

ResourceDoesNotExist

Run mutation to create an audio asset in a category that does not exist

mutation {
  createAudioAssets(input: { assets: { assetName: "AudioAsset", 
                                       categoryId: "1000" } }) {
    assets {
      id
    }
  }
}

The above returns this error:

{
  "errors": [
    {
      "message": "Resource with [Id: 1000, Type: Category] does not exist",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createAudioAssets"
      ],
      "extensions": {
        "errorCode": "ResourceDoesNotExist",
        "resourceSelectorType": "ID",
        "resourceSelector": "1000",
        "resourceType": "CATEGORY",
        "classification": "DataFetchingException"
      }
    }
  ],
  "data": {
    "createAudioAssets": {
      "assets": []
    }
  }
}

Indicates that one of the objects (storage unit, media info, format, asset etc.) being accessed does not exist.

Extensions

ResourcePreconditionViolation

Run mutation to add an item to group using an asset id that is not of type group as groupId

mutation {
  addItemsToGroups(
    input: {
      itemsToGroups: { assetSegments: { assetId: 1980 }, 
                       groupId: 2266 } } ) {
    groupItems {
      id
    }
  }
}

The above returns this error:

{
  "errors": [
    {
      "message": "Resource with [Id: 2266, Type: Asset] does not satisfy the precondition [Must Be A Group Asset Type]",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "addItemsToGroups"
      ],
      "extensions": {
        "errorCode": "ResourcePreconditionViolation",
        "resourceSelectorType": "ID",
        "resourceSelector": "2266",
        "precondition": "MUST_BE_A_GROUP_ASSET_TYPE",
        "resourceType": "ASSET",
        "classification": "ValidationError"
      }
    }
  ],
  "data": {
    "addItemsToGroups": {
      "groupItems": []
    }
  }
}

Indicates that one of the values supplied for an object is not as expected (for example: empty or null datafieldId).

Extensions

UnexpectedError

{
  "errors": [
    {
      "message": "Cannot create asset with name [AudioAsset] in category with id [-1] using user [UnauthorizedUser].",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "createAudioAssets"
      ],
      "extensions": {
        "errorCode": "UnexpectedError",
        "classification": "ExecutionAborted"
      }
    }
  ],
  "data": {
    "createAudioAssets": {
      "assets": []
    }
  }
}

Indicates a failure to filter or retrieve the requested information.

Extensions

UnsupportedResource

{
  "errors": [
    {
      "message": "Unsupported resource with [Id: 123, Type: Category]",
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "path": [
        "???"
      ],
      "extensions": 
        "errorCode": "UnsupportedResource",
        "resourceSelectorType": "ID",
        "resourceSelector": "123",
        "resourceType": "CATEGORY",
        "classification": "DataFetchingException"
      }
    }
  ],
  "data": {
    "??": {
    }
  }
}

Indicates use of an object type (media type, asset type, etc.) that is currently unsupported.

Extensions

Legal Notice

Dalet Galaxy API documentation Revision: 1.0 Creation: 2020-06-04 This API document explains the use of the Dalet Galaxy GraphQL API to manipulate elements of a Dalet Galaxy site. (c) 2020, Dalet, all rights reserved

THIS API SPECIFICATION IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE API OR THE USE OR OTHER DEALINGS IN THE API.