# Dalim ES FUSiON API — Active Endpoint Reference Detailed documentation for the endpoints actively used in this project. For a full list of all 466 available operations, see `dalim-api-index.md`. --- ## Authentication The API uses OAuth2 with HMAC SHA256 signing. **Token endpoint:** `https://{HOST}/ES/api/oauth/token` **GraphQL endpoint:** `https://{HOST}/ES/api/graphql` **Get a token:** ```python token_data = { "grant_type": "password", "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "username": USERNAME, "password": PASSWORD } response = requests.post(TOKEN_URL, data=token_data) access_token = response.json()["access_token"] headers = {"Authorization": f"Bearer {access_token}", "Content-Type": "application/json"} ``` **Dependency chain** (must create in this order): Security Profiles → Users → Projects → Assets --- ## System & Auth ### connectAs **Type:** Mutation **Returns:** `a JSON!` Enable an Admin to connect to ES as another User. The response is identical to a standard login, a new AccessToken is received. **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `login` | `String!` | Yes | login of the user | | `withSecurityProfile` | `String` | No | name of a securityProfile | | `createIfNotExists` | `Boolean` | No | Auto-created user if not exists | **Example Query:** ```graphql mutation connectAs( $login: String!, $withSecurityProfile: String, $createIfNotExists: Boolean ) { connectAs( login: $login, withSecurityProfile: $withSecurityProfile, createIfNotExists: $createIfNotExists ) } ``` **Example Variables:** ```json { "login": "abc123", "withSecurityProfile": "abc123", "createIfNotExists": true } ``` **Example Response:** ```json {"data": {"connectAs": {}}} ``` --- ### disconnectAs **Type:** Mutation **Returns:** `a JSON!` When connected as another user, returns to the original login, the current token is revoked. The response is identical to a standard login, a new AccessToken is received. If the AccessToken does not correspond to a user connected as, then nothing append, the current token is still valid. **Example Query:** ```graphql mutation disconnectAs { disconnectAs } ``` **Example Response:** ```json {"data": {"disconnectAs": {}}} ``` --- ### whoami **Type:** Query **Returns:** `a Whoami!` **Example Query:** ```graphql query whoami { whoami { id user { ...UserFragment } securityProfile { ...UserSecurityProfileFragment } } } ``` **Example Response:** ```json { "data": { "whoami": { "id": "4", "user": User, "securityProfile": UserSecurityProfile } } } ``` --- ### serverInformation **Type:** Query **Returns:** `a ServerInformation!` **Example Query:** ```graphql query serverInformation { serverInformation { guiClientId authorizationURL accessTokenURL authenticationKeys } } ``` **Example Response:** ```json { "data": { "serverInformation": { "guiClientId": "abc123", "authorizationURL": "http://www.test.com/", "accessTokenURL": "http://www.test.com/", "authenticationKeys": ["4"] } } } ``` --- ## Users ### users **Type:** Query **Returns:** `a UserPagingResponse!` Retrieve visible users by the current logged user **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query users( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { users( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...UserFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "users": { "lowerCursor": "4", "upperCursor": "4", "hasMoreItems": true, "objectList": [User] } } } ``` --- ### userById **Type:** Query **Returns:** `[User!]` Retrieve user by id **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | **Example Query:** ```graphql query userById($id: [ID!]!) { userById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } } ``` **Example Variables:** ```json {"id": ["4"]} ``` **Example Response:** ```json { "data": { "userById": [ { "id": "4", "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "abc123", "userCanLog": true, "lang": "ar", "dateFormat": "abc123", "unitResolution": "xyz789", "unitLength": "xyz789", "color": "xyz789", "image": "xyz789", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "abc123", "workCapacityUnit": "xyz789", "firstName": "xyz789", "lastName": "abc123", "email": "abc123", "title": "abc123", "company": "xyz789", "phone": "abc123", "phone2": "xyz789", "homePhone": "xyz789", "fax": "abc123", "mobilePhone": "xyz789", "departm ... (truncated) ``` --- ### createUser **Type:** Mutation **Returns:** `a User!` Create an User in the specified Organization **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `name` | `String!` | Yes | — | | `in` | `ID!` | Yes | — | | `setup` | `iCreateUserSetup` | No | — | **Example Query:** ```graphql mutation createUser( $name: String!, $in: ID!, $setup: iCreateUserSetup ) { createUser( name: $name, in: $in, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } } ``` **Example Variables:** ```json { "name": "abc123", "in": 4, "setup": iCreateUserSetup } ``` **Example Response:** ```json { "data": { "createUser": { "id": 4, "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "xyz789", "userCanLog": false, "lang": "ar", "dateFormat": "abc123", "unitResolution": "xyz789", "unitLength": "xyz789", "color": "xyz789", "image": "abc123", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "xyz789", "workCapacityUnit": "xyz789", "firstName": "xyz789", "lastName": "xyz789", "email": "abc123", "title": "xyz789", "company": "xyz789", "phone": "xyz789", "phone2": "xyz789", "homePhone": "abc123", "fax": "xyz789", "mobilePhone": "abc123", "departme ... (truncated) ``` --- ### changeUser **Type:** Mutation **Returns:** `a User!` **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `name` | `String!` | Yes | — | **Example Query:** ```graphql mutation changeUser($name: String!) { changeUser(name: $name) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } login userCanLog lang dateFormat unitResolution unitLength color image use2FA channel2FA sessionTimeout workCapacity workCapacityUnit firstName lastName email title company phone phone2 homePhone fax mobilePhone department address { ...AddressFragment } organization { ...OrganizationFragment } groups { ...GroupFragment } roles { ...RoleFragment } defaultProfile { ...UserSecurityProfileFragment } availableProfiles { ...UserSecurityProfileFragment } notifications { ...NotificationFragment } } } ``` **Example Variables:** ```json {"name": "abc123"} ``` **Example Response:** ```json { "data": { "changeUser": { "id": "4", "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "login": "xyz789", "userCanLog": true, "lang": "ar", "dateFormat": "xyz789", "unitResolution": "abc123", "unitLength": "abc123", "color": "xyz789", "image": "abc123", "use2FA": true, "channel2FA": "AUTHENTICATOR", "sessionTimeout": 123, "workCapacity": "xyz789", "workCapacityUnit": "xyz789", "firstName": "abc123", "lastName": "xyz789", "email": "xyz789", "title": "abc123", "company": "abc123", "phone": "xyz789", "phone2": "abc123", "homePhone": "abc123", "fax": "abc123", "mobilePhone": "abc123", "departm ... (truncated) ``` --- ## Security Profiles ### securityProfiles **Type:** Query **Returns:** `a SecurityProfilePagingResponse!` Retrieve SecurityProfile by filter **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query securityProfiles( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { securityProfiles( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...SecurityProfileFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": "4", "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "securityProfiles": { "lowerCursor": 4, "upperCursor": "4", "hasMoreItems": true, "objectList": [SecurityProfile] } } } ``` --- ### createUserSecurityProfile **Type:** Mutation **Returns:** `a UserSecurityProfile` **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `name` | `String!` | Yes | — | | `setup` | `iUserSecurityProfile` | No | — | **Example Query:** ```graphql mutation createUserSecurityProfile( $name: String!, $setup: iUserSecurityProfile ) { createUserSecurityProfile( name: $name, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } properties { ...SecurityPropertyFragment } securityRoles } } ``` **Example Variables:** ```json { "name": "abc123", "setup": iUserSecurityProfile } ``` **Example Response:** ```json { "data": { "createUserSecurityProfile": { "id": "4", "name": "xyz789", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "properties": [SecurityProperty], "securityRoles": ["ADMIN"] } } } ``` --- ### addProfileToUser **Type:** Mutation **Returns:** `a Boolean!` Add one or many SecurityProfiles to one or many Users **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | | `to` | `[ID!]!` | Yes | — | **Example Query:** ```graphql mutation addProfileToUser( $id: [ID!]!, $to: [ID!]! ) { addProfileToUser( id: $id, to: $to ) } ``` **Example Variables:** ```json {"id": ["4"], "to": [4]} ``` **Example Response:** ```json {"data": {"addProfileToUser": true}} ``` --- ### addRoleToUser **Type:** Mutation **Returns:** `a Boolean!` Add one or many Role(s) to one or many User(s) **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | | `to` | `[ID!]!` | Yes | — | **Example Query:** ```graphql mutation addRoleToUser( $id: [ID!]!, $to: [ID!]! ) { addRoleToUser( id: $id, to: $to ) } ``` **Example Variables:** ```json {"id": ["4"], "to": [4]} ``` **Example Response:** ```json {"data": {"addRoleToUser": true}} ``` --- ## Projects ### projects **Type:** Query **Returns:** `a ProjectPagingResponse!` Retrieve Projects by filter **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query projects( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { projects( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...ProjectFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": "4", "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "projects": { "lowerCursor": 4, "upperCursor": 4, "hasMoreItems": true, "objectList": [Project] } } } ``` --- ### projectById **Type:** Query **Returns:** `[Project!]` Retrieve Projects by ID or [ID] **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | **Example Query:** ```graphql query projectById($id: [ID!]!) { projectById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } endDate metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status workflowName approvalStatus { ...ApprovalActivityStatusFragment } approvalSummary approvals { ...ApprovalCycleFragment } assetApprovals { ...ApprovalCycleFragment } children { ...PagingResponseFragment } assetWorkflow { ...WorkflowFragment } processes { ...ProcessFragment } projectTemplate { ...ProjectTemplateFragment } priority colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } reversedView customer { ...CustomerFragment } parents { ...ContainerFragment } mainAsset { ...AssetFragment } siteId productionParticipants { ...ProductionParticipantFragment } notes { ...NoteFragment } trimmedHeight trimmedWidth nbPages accessControls deadlines { ...ProjectDeadlineFragment } } } ``` **Example Variables:** ```json {"id": [4]} ``` **Example Response:** ```json { "data": { "projectById": [ { "id": 4, "name": "abc123", "description": "xyz789", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "endDate": "2007-12-03T10:15:30Z", "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "workflowName": "abc123", "approvalStatus": [ApprovalActivityStatus], "approvalSummary": "NONE", "approvals": [ApprovalCycle], "assetApprovals": [ApprovalCycle], "children": PagingResponse, "assetWorkflow": Workflow, "processes": [Process], "projectTemplate": ProjectTemplate, "priority": 123, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "reversedView": true, "customer": Cus ... (truncated) ``` --- ### projectTemplates **Type:** Query **Returns:** `a ProjectTemplateResponse!` Retrieve Project Templates **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query projectTemplates( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { projectTemplates( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...ProjectTemplateFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "projectTemplates": { "lowerCursor": 4, "upperCursor": 4, "hasMoreItems": true, "objectList": [ProjectTemplate] } } } ``` --- ### createProject **Type:** Mutation **Returns:** `a Project!` security role handle by the mutationFetcher itself To create a Project for a Customer with a name **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `customerId` | `ID!` | Yes | — | | `name` | `String!` | Yes | — | | `setup` | `iProjectSetup` | No | — | | `inputs` | `[iInputFile!]` | Yes | — | **Example Query:** ```graphql mutation createProject( $customerId: ID!, $name: String!, $setup: iProjectSetup, $inputs: [iInputFile!] ) { createProject( customerId: $customerId, name: $name, setup: $setup, inputs: $inputs ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } endDate metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status workflowName approvalStatus { ...ApprovalActivityStatusFragment } approvalSummary approvals { ...ApprovalCycleFragment } assetApprovals { ...ApprovalCycleFragment } children { ...PagingResponseFragment } assetWorkflow { ...WorkflowFragment } processes { ...ProcessFragment } projectTemplate { ...ProjectTemplateFragment } priority colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } reversedView customer { ...CustomerFragment } parents { ...ContainerFragment } mainAsset { ...AssetFragment } siteId productionParticipants { ...ProductionParticipantFragment } notes { ...NoteFragment } trimmedHeight trimmedWidth nbPages accessControls deadlines { ...ProjectDeadlineFragment } } } ``` **Example Variables:** ```json { "customerId": "4", "name": "xyz789", "setup": iProjectSetup, "inputs": [iInputFile] } ``` **Example Response:** ```json { "data": { "createProject": { "id": "4", "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "endDate": "2007-12-03T10:15:30Z", "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "workflowName": "xyz789", "approvalStatus": [ApprovalActivityStatus], "approvalSummary": "NONE", "approvals": [ApprovalCycle], "assetApprovals": [ApprovalCycle], "children": PagingResponse, "assetWorkflow": Workflow, "processes": [Process], "projectTemplate": ProjectTemplate, "priority": 987, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "reversedView": true, "customer": C ... (truncated) ``` --- ### deleteProject **Type:** Mutation **Returns:** `a Boolean!` To delete a Project. By default the project is moved to the trash **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | id of the Project | | `now` | `Boolean` | No | flag to be able to immediately delete the Project otherwise it is moved to the trash. Default = false | **Example Query:** ```graphql mutation deleteProject( $id: [ID!]!, $now: Boolean ) { deleteProject( id: $id, now: $now ) } ``` **Example Variables:** ```json {"id": [4], "now": false} ``` **Example Response:** ```json {"data": {"deleteProject": false}} ``` --- ### createFolder **Type:** Mutation **Returns:** `a Folder!` To create a Folder **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `name` | `String!` | Yes | — | | `in` | `ID!` | Yes | — | | `setup` | `iFolderSetup` | No | — | **Example Query:** ```graphql mutation createFolder( $name: String!, $in: ID!, $setup: iFolderSetup ) { createFolder( name: $name, in: $in, setup: $setup ) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } readOnly productionSettings { ...ProductionSettingsFragment } processes { ...ProcessFragment } accessControlList { ...AccessControlListFragment } children { ...PagingResponseFragment } project { ...ProjectFragment } parents { ...ContainerFragment } path { ...FolderFragment } color icon } } ``` **Example Variables:** ```json { "name": "xyz789", "in": 4, "setup": iFolderSetup } ``` **Example Response:** ```json { "data": { "createFolder": { "id": 4, "name": "xyz789", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "readOnly": true, "productionSettings": ProductionSettings, "processes": [Process], "accessControlList": AccessControlList, "children": PagingResponse, "project": Project, "parents": [Container], "path": [Folder], "color": "xyz789", "icon": 4 } } } ``` --- ## Assets ### assets **Type:** Query **Returns:** `an AssetPagingResponse!` Retrieve Assets by filter **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query assets( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { assets( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...AssetFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 987, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "assets": { "lowerCursor": "4", "upperCursor": "4", "hasMoreItems": false, "objectList": [Asset] } } } ``` --- ### assetById **Type:** Query **Returns:** `[Asset!]` Retrieve Assets by ID or [ID] **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | **Example Query:** ```graphql query assetById($id: [ID!]!) { assetById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } trashDate trashUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } status approvalSummary approvalStatus { ...ApprovalActivityStatusFragment } approvals { ...ApprovalCycleFragment } workflowName isAlias processes { ...ProcessFragment } uuid priority isCheckedOut checkedOutBy { ...UserFragment } privateWorkingRevision isArchived archiveId colorSpace { ...ColorSpaceFragment } viewingCondition { ...ViewingConditionFragment } project { ...ProjectFragment } parents { ...ContainerFragment } numberOfRevisions expirationDate medias { ...MediaFragment } notes { ...NoteFragment } relationFrom { ...RelationFragment } relationTo { ...RelationFragment } accessControls } } ``` **Example Variables:** ```json {"id": [4]} ``` **Example Response:** ```json { "data": { "assetById": [ { "id": 4, "name": "xyz789", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "trashDate": "2007-12-03T10:15:30Z", "trashUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "status": ["ACTIVE"], "approvalSummary": "NONE", "approvalStatus": [ApprovalActivityStatus], "approvals": [ApprovalCycle], "workflowName": "abc123", "isAlias": false, "processes": [Process], "uuid": "abc123", "priority": 987, "isCheckedOut": false, "checkedOutBy": User, "privateWorkingRevision": 987, "isArchived": true, "archiveId": 4, "colorSpace": ColorSpace, "viewingCondition": ViewingCondition, "project": Project, "parents": [Container], "numberO ... (truncated) ``` --- ### createAsset **Type:** Mutation **Returns:** `an AssetCreationStatus!` To create an Asset. **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `in` | `[ID!]!` | Yes | — | | `name` | `String` | No | — | | `checkedOut` | `Boolean` | No | Default = false | | `setup` | `iAssetSetup` | No | — | | `input` | `iInputFile` | No | — | **Example Query:** ```graphql mutation createAsset( $in: [ID!]!, $name: String, $checkedOut: Boolean, $setup: iAssetSetup, $input: iInputFile ) { createAsset( in: $in, name: $name, checkedOut: $checkedOut, setup: $setup, input: $input ) { created asset { ...AssetFragment } } } ``` **Example Variables:** ```json { "in": ["4"], "name": "xyz789", "checkedOut": false, "setup": iAssetSetup, "input": iInputFile } ``` **Example Response:** ```json { "data": { "createAsset": {"created": false, "asset": Asset} } } ``` --- ### deleteAsset **Type:** Mutation **Returns:** `a Boolean!` To delete an Asset. By default the Asset is moved to the trash **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | id of the Asset | | `now` | `Boolean` | No | flag to be able to immediately delete the Asset otherwise it is moved to the trash. Default = false | **Example Query:** ```graphql mutation deleteAsset( $id: [ID!]!, $now: Boolean ) { deleteAsset( id: $id, now: $now ) } ``` **Example Variables:** ```json {"id": [4], "now": false} ``` **Example Response:** ```json {"data": {"deleteAsset": false}} ``` --- ### downloadAsset **Type:** Query **Returns:** `a Stream` Stream an Asset **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `ID!` | Yes | — | | `revision` | `Int` | No | Default = 0 | **Example Query:** ```graphql query downloadAsset( $id: ID!, $revision: Int ) { downloadAsset( id: $id, revision: $revision ) } ``` **Example Variables:** ```json {"id": "4", "revision": 0} ``` **Example Response:** ```json {"data": {"downloadAsset": Stream}} ``` --- ## Organizations & Customers ### customers **Type:** Query **Returns:** `a CustomerPagingResponse!` Retrieve Customers by filter **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query customers( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { customers( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...CustomerFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "customers": { "lowerCursor": "4", "upperCursor": 4, "hasMoreItems": false, "objectList": [Customer] } } } ``` --- ### customerById **Type:** Query **Returns:** `[Customer!]` Retrieve Customers by ID or [ID] **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | **Example Query:** ```graphql query customerById($id: [ID!]!) { customerById(id: $id) { id name description lastModificationDate lastModificationUser { ...UserFragment } creationDate creationUser { ...UserFragment } metadatas { ...MetadataValueFragment } metadataProperties { ...MetadataValueFragment } sites defaultSite defaultProjectTemplate { ...ProjectTemplateFragment } projectTemplates { ...ProjectTemplateFragment } code phone phone2 www fax shippingAddress { ...AddressFragment } billingAddress { ...AddressFragment } organization { ...OrganizationFragment } children { ...PagingResponseFragment } emailTemplates { ...EmailTemplateFragment } notificationTemplates { ...NotificationTemplateFragment } securityConfiguration { ...SecurityConfigurationFragment } notifications { ...NotificationFragment } } } ``` **Example Variables:** ```json {"id": [4]} ``` **Example Response:** ```json { "data": { "customerById": [ { "id": 4, "name": "abc123", "description": "abc123", "lastModificationDate": "2007-12-03T10:15:30Z", "lastModificationUser": User, "creationDate": "2007-12-03T10:15:30Z", "creationUser": User, "metadatas": [MetadataValue], "metadataProperties": [MetadataValue], "sites": ["abc123"], "defaultSite": "xyz789", "defaultProjectTemplate": ProjectTemplate, "projectTemplates": [ProjectTemplate], "code": "xyz789", "phone": "abc123", "phone2": "abc123", "www": "xyz789", "fax": "abc123", "shippingAddress": Address, "billingAddress": Address, "organization": Organization, "children": PagingResponse, "emailTemplates": [EmailTemplate], "notificationTemplates": [NotificationTemplate], "securityConfiguration": SecurityConfiguration, "notifications": [Notification] } ] } } ``` --- ### groups **Type:** Query **Returns:** `a GroupPagingResponse!` Retrieve visible groups by the current logged user **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iFilter` | No | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | | `orderBy` | `iOrderBy` | No | Default = {property : "id", direction : ASC} | **Example Query:** ```graphql query groups( $filter: iFilter, $limit: Int, $cursor: ID, $orderBy: iOrderBy ) { groups( filter: $filter, limit: $limit, cursor: $cursor, orderBy: $orderBy ) { lowerCursor upperCursor hasMoreItems objectList { ...GroupFragment } } } ``` **Example Variables:** ```json { "filter": iFilter, "limit": 123, "cursor": 4, "orderBy": {"property": "id", "direction": "ASC"} } ``` **Example Response:** ```json { "data": { "groups": { "lowerCursor": "4", "upperCursor": 4, "hasMoreItems": false, "objectList": [Group] } } } ``` --- ### addUserToGroup **Type:** Mutation **Returns:** `a Boolean!` Add one or many Users to one or many Groups that are not System Groups. All the Users provided will be added to each Groups provided **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | — | | `to` | `[ID!]!` | Yes | — | **Example Query:** ```graphql mutation addUserToGroup( $id: [ID!]!, $to: [ID!]! ) { addUserToGroup( id: $id, to: $to ) } ``` **Example Variables:** ```json {"id": ["4"], "to": [4]} ``` **Example Response:** ```json {"data": {"addUserToGroup": false}} ``` --- ## Search ### search **Type:** Query **Returns:** `a SearchResponse` **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `filter` | `iSearchFilter!` | Yes | — | | `facets` | `[String!]` | Yes | — | | `limit` | `Int` | No | — | | `cursor` | `ID` | No | — | **Example Query:** ```graphql query search( $filter: iSearchFilter!, $facets: [String!], $limit: Int, $cursor: ID ) { search( filter: $filter, facets: $facets, limit: $limit, cursor: $cursor ) { upperCursor hasMoreItems objectList { ...EntityFragment } scores facets { ...FacetFragment } } } ``` **Example Variables:** ```json { "filter": iSearchFilter, "facets": ["abc123"], "limit": 987, "cursor": 4 } ``` **Example Response:** ```json { "data": { "search": { "upperCursor": "4", "hasMoreItems": false, "objectList": [Entity], "scores": [987.65], "facets": [Facet] } } } ``` --- ## Approvals ### approve **Type:** Mutation **Returns:** `a Boolean!` **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | The id(s) of the request approval(s) to approve | | `comment` | `String` | No | The comment associated to the approve action | | `checkViewingCondition` | `Boolean` | No | Specify if the viewing condition should be checked or not. Default = true | **Example Query:** ```graphql mutation approve( $id: [ID!]!, $comment: String, $checkViewingCondition: Boolean ) { approve( id: $id, comment: $comment, checkViewingCondition: $checkViewingCondition ) } ``` **Example Variables:** ```json { "id": [4], "comment": "xyz789", "checkViewingCondition": true } ``` **Example Response:** ```json {"data": {"approve": true}} ``` --- ### approveObject **Type:** Mutation **Returns:** `a Boolean!` **Arguments:** | Name | Type | Required | Description | |------|------|----------|-------------| | `id` | `[ID!]!` | Yes | The id(s) of the object(s) to approve | | `comment` | `String` | No | The comment associated to the approve action | | `checkViewingCondition` | `Boolean` | No | Specify if the viewing condition should be checked or not. Default = true | **Example Query:** ```graphql mutation approveObject( $id: [ID!]!, $comment: String, $checkViewingCondition: Boolean ) { approveObject( id: $id, comment: $comment, checkViewingCondition: $checkViewingCondition ) } ``` **Example Variables:** ```json { "id": [4], "comment": "xyz789", "checkViewingCondition": true } ``` **Example Response:** ```json {"data": {"approveObject": false}} ``` ---