Project API

A Project contains groups of scenes, as well as Asset Collections. It is primarily used for organization, and helps manage a full-scale animation production.

Project Creation

POST /v1/project

Create a new Project.

Request Headers:
 
Status Codes:

http

POST /v1/project HTTP/1.1
Host: localhost:5635
Content-Type: application/json

{
    "name": "Test",
    "description": "This is a test",
    "category": "test",
    "tags": ["testTag"],
    "sceneGroups": [
            {
                    "name": "testGroup",
                    "description": "This is a test group",
                    "category": "test",
                    "scenes": ["1234"]
            }
    ],
    "assetCollectionIds": ["4321"]
}

curl

curl -i -X POST http://localhost:5635/v1/project -H 'Content-Type: application/json' --data-raw '{"assetCollectionIds": ["4321"], "category": "test", "description": "This is a test", "name": "Test", "sceneGroups": [{"category": "test", "scenes": ["1234"], "name": "testGroup", "description": "This is a test group"}], "tags": ["testTag"]}'

wget

wget -S -O- http://localhost:5635/v1/project --header='Content-Type: application/json' --post-data='{"assetCollectionIds": ["4321"], "category": "test", "description": "This is a test", "name": "Test", "sceneGroups": [{"category": "test", "scenes": ["1234"], "name": "testGroup", "description": "This is a test group"}], "tags": ["testTag"]}'

httpie

echo '{
  "assetCollectionIds": [
    "4321"
  ],
  "category": "test",
  "description": "This is a test",
  "name": "Test",
  "sceneGroups": [
    {
      "category": "test",
      "description": "This is a test group",
      "name": "testGroup",
      "scenes": [
        "1234"
      ]
    }
  ],
  "tags": [
    "testTag"
  ]
}' | http POST http://localhost:5635/v1/project Content-Type:application/json

python-requests

requests.post('http://localhost:5635/v1/project', headers={'Content-Type': 'application/json'}, json={'assetCollectionIds': ['4321'], 'category': 'test', 'description': 'This is a test', 'name': 'Test', 'sceneGroups': [{'category': 'test', 'scenes': ['1234'], 'name': 'testGroup', 'description': 'This is a test group'}], 'tags': ['testTag']})

response

HTTP/1.1 200 OK
Location: http://localhost:5635/v1/project

{
    "id": "5be8eeb4f5eee94951e553a9",
    "name": "Test",
    "description": "This is a test",
    "category": "test",
    "tags": [
        "testTag"
    ],
    "sceneGroups": [
        {
            "name": "testGroup",
            "description": "This is a test group",
            "category": "test",
            "scenes": [
                "1234"
            ]
        }
    ],
    "assetCollectionIds": [
        "4321"
    ]
}

Project Retrieval

GET /v1/project/{key}

Get a project by ID.

Status Codes:

http

GET /v1/project/{key} HTTP/1.1
Host: localhost:5635

curl

curl -i 'http://localhost:5635/v1/project/{key}'

wget

wget -S -O- 'http://localhost:5635/v1/project/{key}'

httpie

http 'http://localhost:5635/v1/project/{key}'

python-requests

requests.get('http://localhost:5635/v1/project/{key}')

Project Update

POST /v1/project/{key}

Create a new Project.

Request Headers:
 
Status Codes:

http

POST /v1/project/{key} HTTP/1.1
Host: localhost:5635
Content-Type: application/json

{
    "name": "AnotherName",
    "description": "This is a second test",
    "category": "testing",
    "tags": [
        "testTag2"
    ],
    "sceneGroups": [
        {
            "name": "testGroup2",
            "description": "This is another test group",
            "category": "testing",
            "scenes": [
                "12345"
            ]
        }
    ],
    "assetCollectionIds": [
        "43212"
    ]
}

curl

curl -i -X POST 'http://localhost:5635/v1/project/{key}' -H 'Content-Type: application/json' --data-raw '{"assetCollectionIds": ["43212"], "category": "testing", "description": "This is a second test", "name": "AnotherName", "sceneGroups": [{"category": "testing", "scenes": ["12345"], "name": "testGroup2", "description": "This is another test group"}], "tags": ["testTag2"]}'

wget

wget -S -O- 'http://localhost:5635/v1/project/{key}' --header='Content-Type: application/json' --post-data='{"assetCollectionIds": ["43212"], "category": "testing", "description": "This is a second test", "name": "AnotherName", "sceneGroups": [{"category": "testing", "scenes": ["12345"], "name": "testGroup2", "description": "This is another test group"}], "tags": ["testTag2"]}'

httpie

echo '{
  "assetCollectionIds": [
    "43212"
  ],
  "category": "testing",
  "description": "This is a second test",
  "name": "AnotherName",
  "sceneGroups": [
    {
      "category": "testing",
      "description": "This is another test group",
      "name": "testGroup2",
      "scenes": [
        "12345"
      ]
    }
  ],
  "tags": [
    "testTag2"
  ]
}' | http POST 'http://localhost:5635/v1/project/{key}' Content-Type:application/json

python-requests

requests.post('http://localhost:5635/v1/project/{key}', headers={'Content-Type': 'application/json'}, json={'assetCollectionIds': ['43212'], 'category': 'testing', 'description': 'This is a second test', 'name': 'AnotherName', 'sceneGroups': [{'category': 'testing', 'scenes': ['12345'], 'name': 'testGroup2', 'description': 'This is another test group'}], 'tags': ['testTag2']})

response

HTTP/1.1 200 OK
Location: http://localhost:5635/v1/project

{
    "id": "5be8eeb4f5eee94951e553a9",
    "name": "Test",
    "description": "This is a test",
    "category": "test",
    "tags": [
        "testTag"
    ],
    "sceneGroups": [
        {
            "name": "testGroup",
            "description": "This is a test group",
            "category": "test",
            "scenes": [
                "1234"
            ]
        }
    ],
    "assetCollectionIds": [
        "4321"
    ]
}

Project Query

GET /v1/project

Query for projects by attribute.

Status Codes:

http

GET /v1/project?name=test&num_records=10&page=0 HTTP/1.1
Host: localhost:5635

curl

curl -i 'http://localhost:5635/v1/project?name=test&num_records=10&page=0'

wget

wget -S -O- 'http://localhost:5635/v1/project?name=test&num_records=10&page=0'

httpie

http 'http://localhost:5635/v1/project?name=test&num_records=10&page=0'

python-requests

requests.get('http://localhost:5635/v1/project?name=test&num_records=10&page=0')

response

HTTP/1.1 200 OK
Location: http://localhost:5635/v1/project?name=AnotherName&num_records=10&page=0

[
    {
        "id": "5be8eeb4f5eee94951e553a9",
        "name": "AnotherName",
        "description": "This is a second test",
        "category": "testing",
        "tags": [
            "testTag2"
        ],
        "sceneGroups": [
            {
                "name": "testGroup2",
                "description": "This is another test group",
                "category": "testing",
                "scenes": [
                    "12345"
                ]
            }
        ],
        "assetCollectionIds": [
            "43212"
        ]
    }
]

Project Delete

DELETE /v1/project/{key}

Delete a project by ID.

Status Codes:

http

DELETE /v1/project/{key} HTTP/1.1
Host: localhost:5635

curl

curl -i -X DELETE 'http://localhost:5635/v1/project/{key}'

wget

wget -S -O- --method=DELETE 'http://localhost:5635/v1/project/{key}'

httpie

http DELETE 'http://localhost:5635/v1/project/{key}'

python-requests

requests.delete('http://localhost:5635/v1/project/{key}')