Content Delivery Management API
Overview
Cloud Content Delivery (CCD) is a managed cloud service that hosts and delivers content to your applications users worldwide without having to reinstall a new version of the application.
The service is fully integrated into the Unity development platform, saving you months of building and maintaining your own similar service.
CCD is most valuable for content-rich, live games or applications that require content updates on a regular basis. It is intended to be used by developers at build time for managing content.
Environments
Environments can be created in the Unity Developer Dashboard. A project can exist in several different environments with completely different data sets. Org and User routes are not impacted by environments, but any project or bucket level route is. To find a list of environments for your project and their corresponding IDs visit the Dashboard. If you signed up for UGS Beta, click on Projects. Find your Project and then click on Environments under Project Settings. When environments were introduced all existing data was put into the 'production' environment. If you did not sign up, you can see the environment Id in the LiveOps page. In the Cloud Content Delivery section, click on buckets and you will see the Environment ID in the GUIDS tabs. If you make an API call without an environment ID or environment name you will get data from that default - 'production' - environment.
Routes in the management API take an environment ID. Routes in the client API take an environment name which is then resolved by the API to the proper ID.
All of the old routes without an environment specified have been marked deprecated. They still work and will continue to be supported. We just wanted to make it clear in the documentation which routes you should use going forward.
Authentication
d6d2c026bac44b1ea7ac0332694a830eAuthorization Basic OmQ2ZDJjMDI2YmFjNDRiMWVhN2FjMDMzMjY5NGE4MzBlThe Content Delivery Management API is deprecating API Key Authentication and now recommends using Service Account Authentication instead.
To create a new service account please follow the instructions available in the Create a service account section of the Service Account Authentication documentation.
Under Organization roles, you must assign the Cloud Content Delivery API Public Editor role to your service account to grant read and write access to public endpoints of CCD Management API.
To use service account please follow the instructions available in the Authenticate an API using service account credentials section of the Service Account Authentication documentation.
As mentioned in the documentation linked above, for CCD Management API endpoints use as the URL host + base path.
https://services.api.unity.com/ccd/management/v1/Workflow for Uploading Content to a Bucket
If a user wants to upload content to a Bucket, they need to first create a new Entry for that bucket
and using that Bucket ID and Entry ID they can upload the content(file).
If a user wants to upload new content for an existing file path, they first update the Entry for the file then upload the content.
We recommend using the Entry parameter signed_url set to "true" when creating or updating an Entry to get back a signed URL that can be use to upload the content directly to the cloud storage.
The signed URL will be returned in the response Entry parameter signed_url. The content can then be uploaded using a request like this:
curl -i -X PUT -H \'Content-Type: CONTENT_TYPE_HERE\' --upload-file \'FOLDER/PATH/TO/YOUR/FILE/samplefile.txt\' \'SIGNED_URL_HERE\'
Note that signed URLs are valid for 5 mins and cannot be used for chunked or resumable uploads.
Permissions
A Permission is set on a bucket and is composed of a role and an action that can be allowed or denied.
Some actions require permissions to be performed. The available roles are 'user' for the management API and 'client' for the client API.
The current actions possible are 'write' and 'list-releases'. For example, 'list-releases' is currently denied by default in the client API.
To enable the list releases endpoints for the client API, a permission must be added with the role 'client', the action 'list-releases' and the permission 'allow'.
Generate difference between releases
When you create a release, CCD automatically generates a difference between the new release and the previous one. However, if you want to get the diff between two versions with a jump (for example, /?fromreleasenum=0&toreleasenum=4), and it was never previously generated, then you must calculate the diff asynchronously.
Note: The difference releases entries route returns an empty set if the difference was not generated first.
First, generate the diff using the following route:
/diff/releases/?fromreleasenum=0&toreleasenum=4
It returns a response with a flag, for example:
{
"unchanged": 0,
"add": 0,
"update": 0,
"delete": 0,
"loading": true
}
The loading flag is true if the task is not yet completed. To learn the status of the task, poll the releases' routes until the flag is false, as in the following example:
{
"unchanged": 1,
"add": 1,
"update": 2,
"delete": 0,
"loading": false
}
You could now see the entries listed using the following route:
{bucket_id}/diff/releases/entries/?fromreleasenum=0&toreleasenum=4
Useful links & Information
- For more information on CCD, visit Unity CCD Documentation.
- The Content Delivery can also be managed using the CLI. For more information, visit Unity CCD command-line interface.
- Unity Cloud Build contains an integration with CCD. For more information, visit Unity Cloud Build documentation.
Download OpenAPI specification:
Gets organization details.
Update tos accepted on a organization
Updates the bucket details by ID.
Code samples for "Update tos accepted on a organization":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "tos_version": 1}' \ "https://services.api.unity.com/ccd/management/v1/organizations/{orgid}"
Response example
{ "id": "an-organization", "name": "An Organization", "orgid": "12345678", "tos_accepted": true}
Gets organization Usage Details.
Code samples for "Gets organization Usage Details.":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/organizations/{orgid}/usage"
Response example
{ "id": "an-organization", "start_time": "2024-01-01T00:00:00Z", "usage": [ { "projectguid": "string", "quantity": 50.45434434 } ]}
Get buckets for project
Gets all buckets for a project.
Code samples for "Get buckets for project":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets"
Response example
[ { "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000" }]
Create bucket
Code samples for "Create bucket":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "description": "Something that describes this bucket", "name": "android_staging", "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Get a bucket
Code samples for "Get a bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Update a bucket
Updates the bucket details by ID.
Code samples for "Update a bucket":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "description": "Something that describes this bucket", "name": "android_staging"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Delete a bucket
Removes a bucket by ID. All files that are no longer referred to by another bucket in a project are removed.
Code samples for "Delete a bucket":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
List bucket access tokens
List bucket access tokens.
Code samples for "List bucket access tokens":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/accesstokens"
Response example
[ { "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string" }]
Create bucket access token
Create a bucket access token. By default, bucket access tokens grant access to all content in the bucket including all releases. To restrict access to a single release, specify a 'releaseid' in the post body.
Code samples for "Create bucket access token":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "description": "Shared with internal devs", "releaseid": "123e4567-e89b-12d3-a456-426655440000"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/accesstokens"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
get bucket access token
Code samples for "get bucket access token":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
Update bucket access token info
Update bucket access token info.
Code samples for "Update bucket access token info":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "description": "Shared with internal devs"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
Delete a bucket access token
Code samples for "Delete a bucket access token":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get badges
Code samples for "Get badges":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/badges"
Response example
[ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 }]
Assign a badge
Code samples for "Assign a badge":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 2}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/badges"
Response example
{ "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0}
Get badge
Code samples for "Get badge":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/badges/{badgename}"
Response example
{ "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0}
Delete a badge
Code samples for "Delete a badge":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/badges/{badgename}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Batch delete entries
Removes up to 200 entries from a given bucket. When DELETE is called on an entry we just mark it as deleted but all previous versions of the file still exist. No file content is removed.
Code samples for "Batch delete entries":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '[ { "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/batch/delete/entries"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Batch Create or Update Entries
Creates or update up to 200 entries in a given bucket via Signed URLs; Will update the entry if the path already exists. Content Hash and Content Size are not mandatory.
Code samples for "Batch Create or Update Entries":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '[ { "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "path": "ios/character1.bundle" }]' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/batch/entries"
Response example
[ { "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z" }]
Get counts of changes between releases
Gets the change count between two releases.
Code samples for "Get counts of changes between releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/diff/releases"
Response example
{ "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5}
Get changed entries between releases
Gets the list of changed entries between two releases.
Code samples for "Get changed entries between releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/diff/releases/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get counts of changes since last release
Gets change count since the last release.
Code samples for "Get counts of changes since last release":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/diff/unreleased"
Response example
{ "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5}
Get changed entries since last releases
Gets changed entries since the last release.
Code samples for "Get changed entries since last releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/diff/unreleased/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get entries for bucket
Gets all entries for a given bucket. Entries can be searched/queried by path or label. For example, to search by path you can do "/buckets/{bucketid}/entries/?path=asset.bundle" To search by label you can do "/buckets/{bucketid}/entries/?label=android" To search by path and label both you can do "/buckets/{bucketid}/entries/?path=asset.bundle&label=android". In this case the entries will need to match both filters.
Code samples for "Get entries for bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries"
Response example
[ { "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z" }]
Create entry
Creates a new entry for a given bucket. Content Hash and Content Size are not mandatory when using Signed URLs.
Code samples for "Create entry":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "path": "ios/character1.bundle", "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get entry
Code samples for "Get entry":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Update entry
Updates a single entry for a given bucket.
Code samples for "Update entry":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Delete entry
Removes a single entry for a given bucket. When DELETE is called on an entry we just mark it as deleted but all previous versions of the file still exist. No file content is removed.
Code samples for "Delete entry":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get content by entryid
Create content upload for TUS
Simply returns the content upload URL in the Location header for TUS (a resumable file upload implementation). This endpoint is not required for most file uploads.
Code samples for "Create content upload for TUS":
Request example
curl -X POST \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Upload content for entry
Uploads or resumes uploading content for an entry. There are two content-types supported for uploading content for an entry. One is "multipart/form-data" which is not available through the Internal API and the other is "application/offset+octet-stream" which uses the tus protocol. Please refer to https://tus.io/ for more details. Note that the Internal API also has a 100mb limitation. This API is now deprecated. We recommend using signed URLs as it uploads directly to the cloud storage and has no size limitations. Signed URLs are returned by the create and/or update entry endpoints by using the entry parameter signed_url set to "true".
Code samples for "Upload content for entry":
Request example
curl -X PATCH \ -H "Content-Type: application/offset+octet-stream" \ -d '{"file":"string"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get content status by entryid
Code samples for "Get content status by entryid":
Request example
curl -X HEAD \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get entry versions
Gets all versions of an entry.
Code samples for "Get entry versions":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/versions"
Response example
[ { "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get entry version
Code samples for "Get entry version":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/versions/{versionid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get content for version of entry
Get content status for version of entry
Gets the status of uploaded content for a specific version of an entry.
Code samples for "Get content status for version of entry":
Request example
curl -X HEAD \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entries/{entryid}/versions/{versionid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get entry by path
Code samples for "Get entry by path":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Create or update entry by path
Creates a new entry for a given bucket; can update the entry if the path already exists. Content Hash and Content Size are not mandatory when using Signed URLs.
Code samples for "Create or update entry by path":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Update entry by path
Update the entry by path
Code samples for "Update entry by path":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get permissions for bucket
Create a permission
Create a permission for a bucket.
Code samples for "Create a permission":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "action": "write", "permission": "allow", "role": "user"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/permissions"
Response example
{ "action": "write", "permission": "allow", "resource": "bucket/0000-0000-0000-0000", "role": "user"}
Update a permission
Update a permission for a bucket.
Code samples for "Update a permission":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "action": "write", "permission": "allow", "role": "user"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/permissions"
Response example
{ "action": "write", "permission": "allow", "resource": "bucket/0000-0000-0000-0000", "role": "user"}
delete a permission
delete a permission for a bucket.
Code samples for "delete a permission":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/permissions"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get promotions for a bucket
Get promotions for a bucket
Code samples for "Get promotions for a bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/promote"
Response example
[ { "error": "string", "from_bucket_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_bucket_name": "string", "from_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_environment_name": "string", "from_release_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "from_release_number": 0, "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "promotion_status": "Complete", "to_bucket_id": "d950657d-2b23-4907-9206-ead33ac17d7a", "to_bucket_name": "string", "to_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "to_environment_name": "string", "to_release_id": "609a57dd-b223-4507-9206-ca36ead03c6d" }]
Promote release between buckets
Promotes a release from one bucket to another.
Code samples for "Promote release between buckets":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "from_release": "b9a0657d-b223-4507-9206-ead33ac06c6d", "notes": "string", "to_bucket": "b9a0657d-b223-4507-9206-ead33ac06c6d", "to_environment": "b9a0657d-b223-4507-9206-ead33ac06c6d"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/promote"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get information about the promotion job
Get information about the promotion job started from a bucket
Code samples for "Get information about the promotion job":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/promote/{promotionid}"
Response example
{ "error": "string", "from_bucket_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_bucket_name": "string", "from_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_environment_name": "string", "from_release_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "from_release_number": 0, "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "promotion_status": "Complete", "to_bucket_id": "d950657d-2b23-4907-9206-ead33ac17d7a", "to_bucket_name": "string", "to_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "to_environment_name": "string", "to_release_id": "609a57dd-b223-4507-9206-ca36ead03c6d"}
Promote release asynchronously between buckets
Promotes a release asynchronously from one bucket to another.
Code samples for "Promote release asynchronously between buckets":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "from_release": "b9a0657d-b223-4507-9206-ead33ac06c6d", "notes": "string", "to_bucket": "b9a0657d-b223-4507-9206-ead33ac06c6d", "to_environment": "b9a0657d-b223-4507-9206-ead33ac06c6d"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/promoteasync"
Response example
{ "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d"}
Get release by badge
Code samples for "Get release by badge":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/release_by_badge/{badgename}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get badged release entries
Gets all entries for a badged release.
Code samples for "Get badged release entries":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/release_by_badge/{badgename}/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get releases for bucket
Gets all releases for a given bucket.
Code samples for "Get releases for bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases"
Response example
[ { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }]
Create release
Creates a new release for a given bucket. If you don't specify the snapshot or entries fields all entries currently in the bucket will be added to the release. Otherwise you can use the snapshot field to create a release with all entries prior to a given date, or the entries field to provide a list of entryids and versionids to add.
Code samples for "Create release":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "entries": [ { "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" } ], "metadata": {}, "notes": "string", "snapshot": "2017-07-21T17:32:28Z"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get release
Code samples for "Get release":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases/{releaseid}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Update release
Code samples for "Update release":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "notes": "string"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases/{releaseid}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get release entries
Gets all entries for a single release.
Code samples for "Get release entries":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases/{releaseid}/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get detail error information
Get the given number of latest errors in a release with their status code, timestamp and URL in a csv format
Code samples for "Get detail error information":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/buckets/{bucketid}/releases/{releaseid}/stats/details/errors"
Response example
"Response_Status_Code,Submit_Time,URL\n404,2021-07-27 04:29:59.830 UTC,https://example.com/api/v1/endpoint\n403,2021-07-26 02:13:59.830 UTC,https://example.com/api/v1/endpoint"
Get environments for project
Gets all environments for a project.
Code samples for "Get environments for project":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments"
Response example
[ { "id": "11111111-1111-1111-1111-111111111111", "is_default": true, "name": "An Environment", "project_id": "22222222-2222-2222-2222-222222222222" }]
Gets environment details.
Code samples for "Gets environment details.":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}"
Response example
{ "id": "11111111-1111-1111-1111-111111111111", "is_default": true, "name": "An Environment", "project_id": "22222222-2222-2222-2222-222222222222"}
Get buckets for project
Gets all buckets for a project.
Code samples for "Get buckets for project":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets"
Response example
[ { "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000" }]
Create bucket
Code samples for "Create bucket":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "description": "Something that describes this bucket", "name": "android_staging", "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Get a bucket
Code samples for "Get a bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Update a bucket
Updates the bucket details by ID.
Code samples for "Update a bucket":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "description": "Something that describes this bucket", "name": "android_staging"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}"
Response example
{ "attributes": { "promote_only": true }, "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "created": "2024-01-01T00:00:00Z", "description": "Something that describes this bucket", "environment_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "environment_name": "test_environment", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "last_release": { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }, "name": "android_staging", "permissions": { "bucket_promote": false, "bucket_read": true, "bucket_release": false, "bucket_write": false }, "private": true, "projectguid": "123e4567-e89b-12d3-a456-426655440000"}
Delete a bucket
Removes a bucket by ID. All files that are no longer referred to by another bucket in a project are removed.
Code samples for "Delete a bucket":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
List bucket access tokens
List bucket access tokens.
Code samples for "List bucket access tokens":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/accesstokens"
Response example
[ { "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string" }]
Create bucket access token
Create a bucket access token. By default, bucket access tokens grant access to all content in the bucket including all releases. To restrict access to a single release, specify a 'releaseid' in the post body.
Code samples for "Create bucket access token":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "description": "Shared with internal devs", "releaseid": "123e4567-e89b-12d3-a456-426655440000"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/accesstokens"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
get bucket access token
Code samples for "get bucket access token":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
Update bucket access token info
Update bucket access token info.
Code samples for "Update bucket access token info":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "description": "Shared with internal devs"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "created": "2024-01-01T00:00:00Z", "description": "string", "id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "token": "string"}
Delete a bucket access token
Code samples for "Delete a bucket access token":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/accesstokens/{tokenid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get badges
Code samples for "Get badges":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/badges"
Response example
[ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 }]
Assign a badge
Code samples for "Assign a badge":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 2}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/badges"
Response example
{ "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0}
Get badge
Code samples for "Get badge":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/badges/{badgename}"
Response example
{ "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0}
Delete a badge
Code samples for "Delete a badge":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/badges/{badgename}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Batch delete entries
Removes up to 200 entries from a given bucket. When DELETE is called on an entry we just mark it as deleted but all previous versions of the file still exist. No file content is removed.
Code samples for "Batch delete entries":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '[ { "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/batch/delete/entries"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Batch Create or Update Entries
Creates or update up to 200 entries in a given bucket via Signed URLs; Will update the entry if the path already exists. Content Hash and Content Size are not mandatory.
Code samples for "Batch Create or Update Entries":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '[ { "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "path": "ios/character1.bundle" }]' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/batch/entries"
Response example
[ { "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z" }]
Get counts of changes between releases
Gets the change count between two releases.
Code samples for "Get counts of changes between releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/diff/releases"
Response example
{ "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5}
Get changed entries between releases
Gets the list of changed entries between two releases.
Code samples for "Get changed entries between releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/diff/releases/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get counts of changes since last release
Gets change count since the last release.
Code samples for "Get counts of changes since last release":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/diff/unreleased"
Response example
{ "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5}
Get changed entries since last releases
Gets changed entries since the last release.
Code samples for "Get changed entries since last releases":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/diff/unreleased/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get entries for bucket
Gets all entries for a given bucket. Entries can be searched/queried by path or label. For example, to search by path you can do "/buckets/{bucketid}/entries/?path=asset.bundle" To search by label you can do "/buckets/{bucketid}/entries/?label=android" To search by path and label both you can do "/buckets/{bucketid}/entries/?path=asset.bundle&label=android". In this case the entries will need to match both filters.
Code samples for "Get entries for bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries"
Response example
[ { "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z" }]
Create entry
Creates a new entry for a given bucket. Content Hash and Content Size are not mandatory when using Signed URLs.
Code samples for "Create entry":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "path": "ios/character1.bundle", "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get entry
Code samples for "Get entry":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Update entry
Updates a single entry for a given bucket.
Code samples for "Update entry":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Delete entry
Removes a single entry for a given bucket. When DELETE is called on an entry we just mark it as deleted but all previous versions of the file still exist. No file content is removed.
Code samples for "Delete entry":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get content by entryid
Create content upload for TUS
Simply returns the content upload URL in the Location header for TUS implementation. This endpoint is not required for most file uploads.
Code samples for "Create content upload for TUS":
Request example
curl -X POST \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Upload content for entry
Uploads or resumes uploading content for an entry. There are two content-types supported for uploading content for an entry. One is "multipart/form-data" which is not available through the Internal API and the other is "application/offset+octet-stream" which uses the tus protocol. Please refer to https://tus.io/ for more details. Note that the Internal API also has a 100mb limitation. This API is now deprecated. We recommend using signed URLs as it uploads directly to the cloud storage and has no size limitations. Signed URLs are returned by the create and/or update entry endpoints by using the entry parameter signed_url set to "true".
Code samples for "Upload content for entry":
Request example
curl -X PATCH \ -H "Content-Type: application/offset+octet-stream" \ -d '{"file":"string"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get content status by entryid
Code samples for "Get content status by entryid":
Request example
curl -X HEAD \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get entry versions
Gets all versions of an entry.
Code samples for "Get entry versions":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/versions"
Response example
[ { "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get entry version
Code samples for "Get entry version":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/versions/{versionid}"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get content for version of entry
Get content status for version of entry
Gets the status of uploaded content for a specific version of an entry.
Code samples for "Get content status for version of entry":
Request example
curl -X HEAD \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entries/{entryid}/versions/{versionid}/content"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get entry by path
Code samples for "Get entry by path":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Create or update entry by path
Creates a new entry for a given bucket; can update the entry if the path already exists. Content Hash and Content Size are not mandatory when using Signed URLs.
Code samples for "Create or update entry by path":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Update entry by path
Update the entry by path
Code samples for "Update entry by path":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "content_type": "image/jpeg", "labels": [ "string" ], "metadata": {}, "signed_url": true}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/entry_by_path"
Response example
{ "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 1234567, "content_type": "image/jpeg", "current_versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "signed_url": "string", "updated_at": "2024-01-01T00:00:00Z"}
Get permissions for bucket
Code samples for "Get permissions for bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/permissions"
Response example
[ { "action": "write", "permission": "allow", "resource": "bucket/0000-0000-0000-0000", "role": "user" }]
Create a permission
Create a permission for a bucket.
Code samples for "Create a permission":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "action": "write", "permission": "allow", "role": "user"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/permissions"
Response example
{ "action": "write", "permission": "allow", "resource": "bucket/0000-0000-0000-0000", "role": "user"}
Update a permission
Update a permission for a bucket.
Code samples for "Update a permission":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "action": "write", "permission": "allow", "role": "user"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/permissions"
Response example
{ "action": "write", "permission": "allow", "resource": "bucket/0000-0000-0000-0000", "role": "user"}
delete a permission
delete a permission for a bucket.
Code samples for "delete a permission":
Request example
curl -X DELETE \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/permissions"
Response example
{ "detail": "Something is wrong", "details": [ { "code": "ERROR_CODE_123", "message": "Invalid value", "path": "nested.value" } ], "requestId": "aad109f8-033f-4a24-8b77-5032eb3a6158", "status": 400, "title": "Bad Request"}
Get promotions for a bucket
Get promotions for a bucket
Code samples for "Get promotions for a bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/promote"
Response example
[ { "error": "string", "from_bucket_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_bucket_name": "string", "from_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_environment_name": "string", "from_release_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "from_release_number": 0, "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "promotion_status": "Complete", "to_bucket_id": "d950657d-2b23-4907-9206-ead33ac17d7a", "to_bucket_name": "string", "to_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "to_environment_name": "string", "to_release_id": "609a57dd-b223-4507-9206-ca36ead03c6d" }]
Promote release between buckets
Promotes a release from one bucket to another.
Code samples for "Promote release between buckets":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "from_release": "b9a0657d-b223-4507-9206-ead33ac06c6d", "notes": "string", "to_bucket": "b9a0657d-b223-4507-9206-ead33ac06c6d", "to_environment": "b9a0657d-b223-4507-9206-ead33ac06c6d"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/promote"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get information about the promotion job
Get information about the promotion job started from a bucket
Code samples for "Get information about the promotion job":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/promote/{promotionid}"
Response example
{ "error": "string", "from_bucket_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_bucket_name": "string", "from_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "from_environment_name": "string", "from_release_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "from_release_number": 0, "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d", "promotion_status": "Complete", "to_bucket_id": "d950657d-2b23-4907-9206-ead33ac17d7a", "to_bucket_name": "string", "to_environment_id": "a9b0657d-b223-4075-9206-ead33ac06d6c", "to_environment_name": "string", "to_release_id": "609a57dd-b223-4507-9206-ca36ead03c6d"}
Promote release asynchronously between buckets
Promotes a release asynchronously from one bucket to another.
Code samples for "Promote release asynchronously between buckets":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "from_release": "b9a0657d-b223-4507-9206-ead33ac06c6d", "notes": "string", "to_bucket": "b9a0657d-b223-4507-9206-ead33ac06c6d", "to_environment": "b9a0657d-b223-4507-9206-ead33ac06c6d"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/promoteasync"
Response example
{ "promotion_id": "b9a0657d-b223-4507-9206-ead33ac06c6d"}
Get release by badge
Code samples for "Get release by badge":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/release_by_badge/{badgename}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get badged release entries
Gets all entries for a badged release.
Code samples for "Get badged release entries":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/release_by_badge/{badgename}/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get releases for bucket
Gets all releases for a given bucket.
Code samples for "Get releases for bucket":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases"
Response example
[ { "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0 }]
Create release
Creates a new release for a given bucket. If you don't specify the snapshot or entries fields all entries currently in the bucket will be added to the release. Otherwise you can use the snapshot field to create a release with all entries prior to a given date, or the entries field to provide a list of entryids and versionids to add.
Code samples for "Create release":
Request example
curl -X POST \ -H "Content-Type: application/json" \ -d '{ "entries": [ { "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" } ], "metadata": {}, "notes": "string", "snapshot": "2017-07-21T17:32:28Z"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get release
Code samples for "Get release":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases/{releaseid}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Update release
Code samples for "Update release":
Request example
curl -X PUT \ -H "Content-Type: application/json" \ -d '{ "notes": "string"}' \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases/{releaseid}"
Response example
{ "badges": [ { "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "name": "QATesting", "releaseid": "123e4567-e89b-12d3-a456-426655440000", "releasenum": 0 } ], "changes": { "add": 3, "delete": 1, "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "loading": true, "unchanged": 3, "update": 5 }, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_size": 1234567, "created": "2024-01-01T00:00:00Z", "created_by": "string", "created_by_name": "string", "entries_link": "string", "metadata": {}, "notes": "string", "promoted_from_bucket": "string", "promoted_from_release": "string", "releaseid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "releasenum": 0}
Get release entries
Gets all entries for a single release.
Code samples for "Get release entries":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases/{releaseid}/entries"
Response example
[ { "change_state": "Unchanged", "complete": true, "content_hash": "c76580fa26181bfa8d8952826bd334d5", "content_link": "string", "content_size": 0, "content_type": "image/jpeg", "entryid": "b9a0657d-b223-4507-9206-ead33ac06c6d", "labels": [ "string" ], "last_modified": "2024-01-01T00:00:00Z", "last_modified_by": "string", "last_modified_by_name": "string", "link": "string", "metadata": {}, "path": "ios/character1.bundle", "updated_at": "2024-01-01T00:00:00Z", "versionid": "b9a0657d-b223-4507-9206-ead33ac06c6d" }]
Get detail error information
Get the given number of latest errors in a release with their status code, timestamp and URL in a csv format
Code samples for "Get detail error information":
Request example
curl -X GET \ "https://services.api.unity.com/ccd/management/v1/projects/{projectid}/environments/{environmentid}/buckets/{bucketid}/releases/{releaseid}/stats/details/errors"
Response example
"Response_Status_Code,Submit_Time,URL\n404,2021-07-27 04:29:59.830 UTC,https://example.com/api/v1/endpoint\n403,2021-07-26 02:13:59.830 UTC,https://example.com/api/v1/endpoint"