Created
June 17, 2023 17:47
-
-
Save iksnae/aaa25f3386374533abecdab347c79dea to your computer and use it in GitHub Desktop.
screenplayer.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: 3.0.3 | |
info: | |
title: Screenplayer API | |
description: API for managing and interacting with screenplays and projects in the Screenplayer platform. | |
version: 1.0.0 | |
paths: | |
/api/projects: | |
post: | |
summary: Create a Project | |
description: Create a new project in the Screenplayer platform. | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ProjectInput' | |
responses: | |
'201': | |
description: Project created successfully. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Project' | |
get: | |
summary: List Projects | |
description: Retrieve a list of all projects in the Screenplayer platform. | |
responses: | |
'200': | |
description: List of projects. | |
content: | |
application/json: | |
schema: | |
type: array | |
items: | |
$ref: '#/components/schemas/Project' | |
/api/projects/{projectId}: | |
get: | |
summary: Get Project Details | |
description: Retrieve details of a specific project. | |
parameters: | |
- name: projectId | |
in: path | |
description: ID of the project to retrieve. | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: Project details. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Project' | |
put: | |
summary: Update Project | |
description: Update an existing project in the Screenplayer platform. | |
parameters: | |
- name: projectId | |
in: path | |
description: ID of the project to update. | |
required: true | |
schema: | |
type: string | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/ProjectInput' | |
responses: | |
'200': | |
description: Project updated successfully. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/Project' | |
delete: | |
summary: Delete Project | |
description: Delete a project from the Screenplayer platform. | |
parameters: | |
- name: projectId | |
in: path | |
description: ID of the project to delete. | |
required: true | |
schema: | |
type: string | |
responses: | |
'204': | |
description: Project deleted successfully. | |
/api/screenplays/upload: | |
post: | |
summary: Upload Screenplay | |
description: Upload a screenplay file to be processed and associated with a project. | |
requestBody: | |
required: true | |
content: | |
multipart/form-data: | |
schema: | |
type: object | |
properties: | |
screenplay: | |
type: string | |
format: binary | |
responses: | |
'200': | |
description: Screenplay uploaded successfully. | |
/api/screenplays/{screenplayId}: | |
get: | |
summary: Get Screenplay | |
description: Retrieve details of a specific screenplay. | |
parameters: | |
- name: screenplayId | |
in: path | |
description: ID of the screenplay to retrieve. | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: Screenplay details. | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/KhaosScreenplay' | |
/api/screenplays/{screenplayId}/generate: | |
post: | |
summary: Generate Watchable Content | |
description: Generate watchable content (video, audio, etc.) from a screenplay. | |
parameters: | |
- name: screenplayId | |
in: path | |
description: ID of the screenplay to generate content from. | |
required: true | |
schema: | |
type: string | |
responses: | |
'200': | |
description: Content generated successfully. | |
content: | |
application/json: | |
schema: | |
type: object | |
properties: | |
url: | |
type: string | |
metadata: | |
type: object | |
# Define additional metadata properties as needed | |
components: | |
schemas: | |
KhaosScene: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
name: | |
type: string | |
location: | |
$ref: '#/components/schemas/Location' | |
characters: | |
type: array | |
items: | |
$ref: '#/components/schemas/Character' | |
shots: | |
type: array | |
items: | |
$ref: '#/components/schemas/KhaosShot' | |
KhaosShot: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
name: | |
type: string | |
characters: | |
type: array | |
items: | |
$ref: '#/components/schemas/Character' | |
KhaosScreenplay: | |
type: object | |
properties: | |
title: | |
type: string | |
content: | |
# Define properties for the content of a parsed Fountain screenplay | |
type: object | |
scenes: | |
type: array | |
items: | |
$ref: '#/components/schemas/GeneratedScene' | |
characters: | |
type: array | |
items: | |
$ref: '#/components/schemas/Character' | |
locations: | |
type: array | |
items: | |
$ref: '#/components/schemas/Location' | |
tokens: | |
type: array | |
items: | |
$ref: '#/components/schemas/GeneratedScene.ScenedScreenplayToken' | |
GeneratedScene: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
t: | |
type: string | |
format: uuid | |
type: | |
type: string | |
sceneNumber: | |
type: string | |
location: | |
type: string | |
locationType: | |
type: string | |
timeOfDay: | |
type: string | |
actions: | |
type: array | |
items: | |
$ref: '#/components/schemas/SceneAction' | |
dialogues: | |
type: array | |
items: | |
$ref: '#/components/schemas/Dialogue' | |
SceneAction: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
t: | |
type: string | |
format: uuid | |
text: | |
type: string | |
Dialogue: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
t: | |
type: string | |
format: uuid | |
character: | |
type: string | |
lines: | |
type: array | |
items: | |
$ref: '#/components/schemas/DialogueLine' | |
parentheticals: | |
type: array | |
items: | |
$ref: '#/components/schemas/DialogueParenthetical' | |
DialogueLine: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
t: | |
type: string | |
format: uuid | |
text: | |
type: string | |
DialogueParenthetical: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
t: | |
type: string | |
format: uuid | |
text: | |
type: string | |
GeneratedScene.ScenedScreenplayToken: | |
type: object | |
properties: | |
id: | |
type: string | |
type: | |
type: string | |
text: | |
type: string | |
ScreenplayTokenType: | |
type: string | |
enum: | |
- scene | |
- scene_heading | |
- character | |
# Define other token types... | |
CharacterVoiceSynthResult: | |
type: object | |
properties: | |
audioUrl: | |
type: string | |
format: url | |
ParsedKhaosScreenplay: | |
type: object | |
# Define properties for the parsed Khaos screenplay | |
ParseFountainScreenplayResponse.Content: | |
type: object | |
# Define properties for the content of a parsed Fountain screenplay | |
ManagedKhaosProject: | |
type: object | |
# Define properties for a managed Khaos project | |
ProjectRetrievingError.NoProjectFound: | |
type: object | |
# Define properties or custom methods specific to this error | |
ProjectStoringError.FailedToUpdateProject: | |
type: object | |
# Define properties or custom methods specific to this error | |
ProjectInput: | |
type: object | |
properties: | |
title: | |
type: string | |
screenplayContent: | |
type: string | |
Project: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
title: | |
type: string | |
screenplays: | |
type: array | |
items: | |
type: string | |
format: uuid | |
Location: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
name: | |
type: string | |
Character: | |
type: object | |
properties: | |
id: | |
type: string | |
format: uuid | |
name: | |
type: string | |
FountainScreenplayElement: | |
oneOf: | |
- $ref: '#/components/schemas/FountainScreenplayElementAction' | |
- $ref: '#/components/schemas/FountainScreenplayElementDialogue' | |
- $ref: '#/components/schemas/FountainScreenplayElementDialogueBlock' | |
- $ref: '#/components/schemas/FountainScreenplayElementSection' | |
- $ref: '#/components/schemas/FountainScreenplayElementSlugline' | |
- $ref: '#/components/schemas/FountainScreenplayElementParenthetical' | |
- $ref: '#/components/schemas/FountainScreenplayElementCentered' | |
- $ref: '#/components/schemas/FountainScreenplayElementTransition' | |
- $ref: '#/components/schemas/FountainScreenplayElementDualDialogueBlock' | |
FountainScreenplayElementAction: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementDialogue: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementDialogueBlock: | |
type: object | |
properties: | |
type: | |
type: string | |
block: | |
$ref: '#/components/schemas/FountainDialogueBlock' | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementSection: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
metadata: | |
$ref: '#/components/schemas/FountainMetadata' | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementSlugline: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
metadata: | |
$ref: '#/components/schemas/FountainMetadata' | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementParenthetical: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementCentered: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementTransition: | |
type: object | |
properties: | |
type: | |
type: string | |
value: | |
type: string | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainScreenplayElementDualDialogueBlock: | |
type: object | |
properties: | |
type: | |
type: string | |
block: | |
$ref: '#/components/schemas/FountainDualDialogueBlock' | |
id: | |
type: string | |
icon: | |
type: string | |
color: | |
type: string | |
display: | |
type: string | |
FountainDialogueBlock: | |
type: object | |
properties: | |
children: | |
type: array | |
items: | |
$ref: '#/components/schemas/FountainScreenplayElement' | |
character: | |
type: string | |
FountainDualDialogueBlock: | |
type: object | |
properties: | |
children: | |
type: array | |
items: | |
$ref: '#/components/schemas/FountainScreenplayElement' | |
FountainMetadata: | |
type: object | |
properties: | |
depth: | |
type: integer |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment