UGC API Schema
Query
List of available queries in UGC API.
Field | Argument | Type | Description |
---|---|---|---|
client | Client! | Returns the current client details. | |
getFile | File! | Get file details with given file id. | |
fileId | ID! | Associated file id used to fetch the file details. | |
getJob | Job! | Get job details from given job id. | |
jobId | ID! | Associated job id used to fetch the job details. | |
getTake | Take! | Get a take with given id. | |
takeId | ID! | Associated take id used to fetch the take details. | |
getVolume | Volume! | Get a volume with the given id. | |
id | ID! | Associated volume id used to fetch the volume details. | |
listCameraSettings | CameraSettingsPage | Get a list of camera settings | |
listJobs | JobsPage | Get a list of jobs. | |
first | Int | First N jobs to fetch. | |
after | AWSJSON | Cursor to fetch jobs after. | |
sortDirection | SortDirection | Sort direction to sort the jobs (either ASC or DESC). Currently this only sorted by created datetime. | |
takeId | String | Filter jobs by take. | |
listTakes | TakesPage | Get a list of takes. | |
first | Int | First N takes to fetch. | |
after | AWSJSON | Cursor to fetch takes after. | |
sortDirection | SortDirection | Sort direction to sort the takes (either ASC or DESC). Currently this only sorted by created datetime. | |
listVolumes | VolumePage! | Get a list of volumes. | |
first | Int | First N jobs to fetch. | |
after | AWSJSON | Cursor to fetch jobs after. | |
sortDirection | SortDirection | Sort direction to sort the jobs (either ASC or DESC). Currently this only sorted by created datetime. |
Mutation
List of available mutations in UGC API.
Field | Argument | Type | Description |
---|---|---|---|
createFile | File! | Create a file with given type (extension) of the file. For example: to create an mp4 file in the system, use `createFile(type: 'mp4')` mutation. | |
type | String! | Type (extension) of the file to be created. | |
metadata | AWSJSON | Metadata to be associated with this file. This is optional. | |
name | String | Name of the file. This is optional. | |
createMultiCamJob | Job! | Initialize processing a job to generate animation from a take. | |
takeId | String! | Take id to be used. This is required to create a job. This is typically fetched from the output of `createMultiCamTake` mutation. | |
metadata | AWSJSON | Metadata to be associated with this job. This is optional. | |
name | String | Name of the job. This is optional. | |
numberOfActors | Int | Number of actors in the take | |
options | OptionsInput | Options for the job | |
outputs | [OutputType] | Outputs to be generated for the job. This is optional, by default all output types are generated. | |
createMultiCamTake | Take! | Create a take from an existing files for multiple cameras. | |
sources | [SourceInput!] | Source of a take, this must be a video file. | |
syncMethod | SyncMethodInput | Sync method for the take | |
metadata | AWSJSON | Metadata to be associated with this take. This is optional. | |
name | String | Name of the take. This is optional. | |
volumeId | String! | Volume id | |
createSingleCamJob | Job! | Initialize processing a job to generate animation from a take. | |
takeId | String! | Take id to be used. This is required to create a job. This is typically fetched from the output of `createSingleCamTake` mutation. | |
metadata | AWSJSON | Metadata to be associated with this job. This is optional. | |
name | String | Name of the job. This is optional. | |
options | OptionsInput | Options for the job. trackFingers and floorPlane are turned on by default for createSingleCamJob. | |
outputs | [OutputType] | Outputs to be generated for the job. This is optional, by default all output types are generated. | |
createSingleCamTake | Take! | Create take from a single camera. | |
sources | [SourceInput!] | Source of a take, this must be a video file. | |
metadata | AWSJSON | Metadata to be associated with this take. This is optional. | |
name | String | Name of the take. This is optional. | |
createVolumeWithHuman | HumanVolume! | Create a volume using a human. | |
sources | [SourceInput!] | Source of a take, this can be either a video file or move file. | |
syncMethod | SyncMethodInput | Sync method for the take | |
humanHeight | Float! | Human height in metres. | |
areaType | AreaType! | Area type. | |
metadata | AWSJSON | Metadata to be associated with this take. This is optional. | |
name | String | Name of the human volume. This is optional. | |
generateShareCode | ShareCode! | Generate a share code for a job output. This is typically used to share the output of a job with other users (example: fbx and mp4 output files). | |
fileId | String! | File id to be used. This is required to generate a share code. This is typically fetched from `Job.outputs.file.id`. | |
updateClient | Client! | Update client properties. | |
metadata | AWSJSON! | Metadata to be associated with this client. This is required. | |
updateFile | File! | Update a file. Currently, only updating metadata for a file is supported. | |
id | String! | Unique identifier for the file. This is required. | |
metadata | AWSJSON | Metadata to be associated with this file. This is optional. | |
name | String | Update name of the file. This is optional. | |
updateJob | Job! | Update a job. Currently, only updating metadata for a job is supported. | |
id | String! | Unique identifier for the job. This is required. | |
metadata | AWSJSON | Metadata to be associated with this job. This is optional. | |
name | String | Updated name of the job. This is optional. | |
updateTake | Take! | Update a take. Currently, only updating metadata for a take is supported. | |
id | String! | Unique identifier for the take. This is required. | |
metadata | AWSJSON | Metadata to be associated with this take. This is optional. | |
name | String | Updated name of the take. This is optional. | |
upsertWebhookEndpoint | WebhookEndpoint! | Perform an upsert operation on a webhook endpoint. | |
description | String | Description of the webhook endpoint. This is optional. | |
events | [String!] | Events to be subscribed to. This is required to perform an upsert operation. | |
metadata | AWSJSON | Metadata to be associated with this webhook endpoint. This is optional. | |
uid | String! | Unique identifier for the webhook endpoint. This is required to perform an upsert operation. | |
url | String! | URL of the webhook endpoint. This is required to perform an upsert operation. | |
secret | String | Secret to be used to sign the payload. This is optional. |
Objects
AdditionalFile
An additional file which may be attached to the take
Field | Argument | Type | Description |
---|---|---|---|
file | File! | Reference to the additional file object | |
format | String | Type of additional file | |
key | String | Type of additional file |
CameraSettings
The camera settings for the source
Field | Argument | Type | Description |
---|---|---|---|
lens | String! | The name of the lens that was used to create the capture inputs. |
CameraSettingsPage
CameraSettings model connection. This connection will return a page of camera settings.
Field | Argument | Type | Description |
---|---|---|---|
after | AWSJSON | Next page token | |
first | Int | Number of items on the single page | |
items | [CameraSettings] | List of items on the current page |
ClapWindow
The start and end time of the clap window that should be used for syncing sources. startTime should be before endTime
Field | Argument | Type | Description |
---|---|---|---|
endTime | Float! | The end time of the clap window that was used to sync the input sources. | |
startTime | Float! | The start time of the clap window that was used to sync the input sources. |
Client
Representation of a Client account.
Field | Argument | Type | Description |
---|---|---|---|
created | AWSDateTime! | Datetime at which the Client was created. | |
id | ID! | Unique identifier for this client. | |
metadata | AWSJSON | Metadata for the client to store any key value pairs - json validation done by AWS | |
name | String! | Name associated to this client. | |
portal | AWSURL | Portal url associated to this client. |
ClipWindow
The start and end time of the clip window that should be processed. startTime should be before endTime.
Field | Argument | Type | Description |
---|---|---|---|
endTime | Float! | The end time of the clip window to be processed. | |
startTime | Float! | The start time of the clip window to be processed. |
File
Represents a File in UGC API.
Field | Argument | Type | Description |
---|---|---|---|
client | Client | Associated client account which created this file. | |
created | AWSDateTime | Datetime at which the file was created. | |
id | ID! | Unique identifier for a File. | |
metadata | AWSJSON | Metadata for the client to store any key value pairs - json validation done by AWS | |
name | String | Name of the file.Returns null if no name present. | |
presignedUrl | AWSURL | Url to upload/download the file. When creating a file, this attribute will return a upload url. Otherwise, this attribute will represent a download url. | |
thumbnailUrl | AWSURL | The url of the thumbnail file. Returns null if no thumbnail present | |
type | String! | Type (extension) of a file. Example: mp4, mov, avi etc. |
HumanVolume
Represents volumes for a multicam take A volume that was created using a human.
Field | Argument | Type | Description |
---|---|---|---|
areaType | AreaType | Area type of the volume. | |
client | Client! | Reference to the client owner of the volume. | |
created | AWSDateTime! | Datetime at which the volume was created | |
humanHeight | Float | Height of the human present in the volume. | |
id | ID! | Unique id of a volume. This is the volume job id. | |
metadata | AWSJSON | Metadata for the client to store any key value pairs - json validation done by AWS. | |
name | String | Name of the human volume. Returns null if no name present. | |
sources | [Source!] | Input source files required for creating HumanVolume, sources from at least two cameras are required. | |
state | JobState | Current status of the volume processing. |
Job
Represents an animation job for a take
Field | Argument | Type | Description |
---|---|---|---|
client | Client! | Client owner of this job | |
created | AWSDateTime | Datetime at which the job was created | |
id | ID! | Unique identifier for the job | |
metadata | AWSJSON | Metadata json field where the client can store any key value pair | |
name | String | Name of the job.Returns null if no name present. | |
outputs | [AdditionalFile] | Outputs of this job | |
state | String | Current status of the job | |
take | Take | Reference to the original take |
JobsPage
Job model connection. This connection will return a page of jobs.
Field | Argument | Type | Description |
---|---|---|---|
after | AWSJSON | Next page token | |
first | Int | Number of items on the single page | |
items | [Job] | List of items on the current page |
ShareCode
Represents a ShareCode associated to a file in UGC API. This is usually generated for a job output.
Field | Argument | Type | Description |
---|---|---|---|
code | String! | Share code value. | |
created | AWSDateTime | Datetime at which the share code was created. | |
expires | AWSDateTime | The share code will expire at. | |
file | File | File associated to the share code. | |
url | AWSURL | Encoded url with code to download the file. |
Source
The source device, file and camera settings to use for a take.
Field | Argument | Type | Description |
---|---|---|---|
cameraSettings | CameraSettings | Settings for the camera that was used to capture this source. | |
clipWindow | ClipWindow | The clip window that should be processed. If not provided the entire source will be processed. | |
deviceLabel | String! | A user defined label for the device this source input was captured on. | |
file | File | Reference to the file object of this source. | |
format | SourceFormat | The file format of the source. |
SyncMethod
The type of sync method. If not provided it is assumed that all source inputs are fully synced.
Field | Argument | Type | Description |
---|---|---|---|
clapWindow | ClapWindow | The input sources were synced via a clap. | |
timecodeSync | TimeCodeSync | The input sources were synced via a timecode. |
Take
Representation of a take
Field | Argument | Type | Description |
---|---|---|---|
additionalFiles | [AdditionalFile] | Optional additional files for this take | |
client | Client! | Reference to the client owner of the take | |
created | AWSDateTime! | Datetime string at which the take was created | |
id | ID! | Unique id of a take | |
metadata | AWSJSON | Metadata for the client to store any key value pairs - json validation done by AWS | |
name | String | Name of the take. Returns null if no name present. | |
sources | [Source] | Sources associated with the take. | |
syncMethod | SyncMethod | The sync method for the input sources on this take. If not provided it is assumed that all source inputs are fully synced. | |
takeType | TakeType | Type of the take (this can be either a multiple or singlecam take). | |
videoFile | File | Reference to the video file included with this take | |
volume | Volume | Volume associated with a multicam take. |
TakesPage
Take model connection. This connection will return a page of takes.
Field | Argument | Type | Description |
---|---|---|---|
after | AWSJSON | Next token (if any) | |
first | Int | Number of elements in a single page | |
items | [Take] | List of takes in this page |
TimeCodeSync
Are the source files synced via a timecode
Field | Argument | Type | Description |
---|---|---|---|
useTimecode | Boolean! | The source inputs are timecode synced. |
VolumePage
Volume model connection. This connection will return a page of volumes.
Field | Argument | Type | Description |
---|---|---|---|
after | AWSJSON | Next page token | |
first | Int | Number of items on the single page | |
items | [Volume] | List of items on the current page |
WebhookEndpoint
Webhook endpoint represents a URL which will be called when an event occurs.
Field | Argument | Type | Description |
---|---|---|---|
client | Client! | Associated client account which created this webhook endpoint. | |
description | String | Description of the webhook endpoint. This is optional. | |
events | [String!] | Events to be subscribed to. This is required to perform an upsert operation. | |
metadata | AWSJSON | Metadata to be associated with this webhook endpoint. This is optional. | |
secret | String | Secret to be used to sign the payload. This is optional. | |
uid | String! | Unique identifier for the webhook endpoint. This is required to perform an upsert operation. | |
url | String! | URL of the webhook endpoint. This is required to perform an upsert operation. |
Inputs
CameraSettingsInput
The camera settings for the source input.
Field | Type | Description | |
---|---|---|---|
lens | String! | The name of the lens that was used to create the capture inputs. |
ClapWindowInput
The start and end time of the clap window that should be used for syncing sources. startTime should be before endTime
Field | Type | Description | |
---|---|---|---|
endTime | Float! | The end time of the clap window that was used to sync the input sources. | |
startTime | Float! | The start time of the clap window that was used to sync the input sources. |
ClipWindowInput
The start and end time of the clip window that should be processed. startTime should be before endTime.
Field | Type | Description | |
---|---|---|---|
endTime | Float! | The end time of the clip window to be processed. | |
startTime | Float! | The start time of the clip window to be processed. |
OptionsInput
Options input for a multicam run
Field | Type | Description | |
---|---|---|---|
floorPlane | Boolean | Floor Plane | |
trackBall | Boolean | Track Ball | |
trackFingers | Boolean | Track Fingers | |
trackJerseyNumbers | Boolean | Track Jersey Numbers |
SourceInput
The source device, file and camera settings to use for a take.
Field | Type | Description | |
---|---|---|---|
cameraSettings | CameraSettingsInput | Settings for the camera that was used to capture this source. | |
clipWindow | ClipWindowInput | The clip window that should be processed. If not provided the entire source will be processed. | |
deviceLabel | String! | A user defined label for the device this source input was captured on. | |
fileId | String! | Reference to the file object of this source. | |
format | SourceFormat! | The file format of the source. |
SyncMethodInput
The type of sync method. If not provided it is assumed that all source inputs are fully synced.
Field | Type | Description | |
---|---|---|---|
clapWindow | ClapWindowInput | The input sources were synced via a clap. | |
timecodeSync | TimeCodeSyncInput | The input sources were synced via a timecode. |
TimeCodeSyncInput
Are the source files synced via a timecode
Field | Type | Description | |
---|---|---|---|
useTimecode | Boolean! | The source inputs are timecode synced. |
Enums
AreaType
The area type of the capture
Value | Description |
---|---|
LARGE | The area size was above 20 square metres. |
NORMAL | The area size was below 20 square metres. |
JobState
The status of the job.
Value | Description |
---|---|
FAILED | The job has failed. |
FINISHED | The job is finished. |
NOT_STARTED | The job has not been started yet. |
RUNNING | The job is currently running. |
OutputType
Represents all allowed output types for both createSingleCamJob and createMultiCamJob mutations.
Value | Description |
---|---|
ALL_BVH | ZIP file containing bvh files, one per actor. |
ALL_C3D | ZIP file containing c3d files, one per actor. |
ALL_FBX | ZIP file containing fbx files, one per actor. |
ALL_GLB | ZIP file containing glb files, one per actor. |
ALL_USDC | ZIP file containing usdc files, one per actor. |
ALL_USDZ | ZIP file containing usdz files, one per actor. |
MAIN_BLEND | Blend file containing the data for all actors that were tracked. |
MAIN_FBX | FBX file containing the data for all actors that were tracked. |
MAIN_GLB | GLB file containing the data for all actors that were tracked. |
MAIN_USDC | USDC file containing the data for all actors that were tracked. |
MAIN_USDZ | USDZ file containing the data for all actors that were tracked. |
MOTION_DATA | ZIP file containing JSON files, one per actor. |
RENDER_OVERLAY_VIDEO | Video render file that shows a preview of the mocap data with the input video overlayed (mp4). This is only used for single camera captures. |
RENDER_VIDEO | Video render file that shows a preview of the mocap data (mp4). |
SortDirection
Sort direction enum.
Value | Description |
---|---|
ASC | Ascending order. |
DESC | Descending order. |
SourceFormat
The format of the source.
Value | Description |
---|---|
AVI | A source input with a .avi extension. |
MOV | A source input with a .mov extension. |
MOVE | A source input with a .move extension. |
MP4 | A source input with a .mp4 extension. |
TakeType
The type of take (this can be either a single take or a multicam take).
Value | Description |
---|---|
MULTI_CAM | A take that is captured with multiple cameras. |
SINGLE_CAM | A take that is captured with a single camera. |
Scalars
AWSDateTime
The AWSDateTime scalar type represents a valid extended ISO 8601 DateTime string. In other words, this scalar type accepts datetime strings of the form YYYY-MM-DDThh:mm:ss.sssZ. The field after the seconds field is a nanoseconds field. It can accept between 1 and 9 digits. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The time zone offset is compulsory for this scalar. The time zone offset must either be Z (representing the UTC time zone) or be in the format ±hh:mm:ss. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard.
AWSJSON
The AWSJSON scalar type represents a JSON string that complies with RFC 8259.
Maps like {\"upvotes\": 10}, lists like [1,2,3], and scalar values like \"AWSJSON example string\", 1, and true are accepted as valid JSON. They will automatically be parsed and loaded in the resolver mapping templates as Maps, Lists, or Scalar values rather than as the literal input strings. Invalid JSON strings like {a: 1}, {'a': 1} and Unquoted string will throw GraphQL validation errors.
AWSURL
The AWSURL scalar type represents a valid URL string. The URL may use any scheme and may also be a local URL (Ex: http://localhost/). URLs without schemes are considered invalid. URLs which contain double slashes are also considered invalid.
Boolean
The Boolean
scalar type represents true
or false
.
Float
The Float
scalar type represents signed double-precision fractional values as specified by IEEE 754.
ID
The ID
scalar type represents a unique identifier, often used to refetch an object or as 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.
Int
The Int
scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
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.
Interfaces
ClientOwner
Implement this interface if your schema has a client owner
Field | Argument | Type | Description |
---|---|---|---|
client | Client | Reference to the associated Client owner. |
Identifier
Implement this interface to add an identifier to your schema
Field | Argument | Type | Description |
---|---|---|---|
id | ID | Unique identifier. |
InternalFileSchema
Implement this interface to add internal file service structure to your schema
Field | Argument | Type | Description |
---|---|---|---|
presignedUrl | AWSURL | Url to upload/download the file. When creating a file, this attribute will return a upload url. Otherwise, this attribute will represent a download url. | |
type | String | Type (extension) of a file. Example: mp4, mov, avi etc. |
Page
Implement this interface for your schema page
Field | Argument | Type | Description |
---|---|---|---|
after | AWSJSON | Next token for the items to be fetched in the remaining pages. | |
first | Int | Items to fetch in a single page. Defaults to 50. |
Timestamped
Implement this interface to make your schema timestampable
Field | Argument | Type | Description |
---|---|---|---|
created | AWSDateTime | The child type should define this attribute. |
Unions
Volume
A volume used in a multicam take will be one of these types.
Type | Description |
---|---|
HumanVolume | Represents volumes for a multicam take A volume that was created using a human. |