{
  "openapi": "3.0.0",
  "info": {
    "version": "V3",
    "title": "Optimizely CMP Open API Documentation"
  },
  "servers": [
    {
      "url": "https://api.cmp.optimizely.com/v3",
      "description": "v3 version of Optimizely CMP Open API"
    }
  ],
  "security": [
    {
      "OAuth2": [
        "openid",
        "profile",
        "offline_access"
      ]
    }
  ],
  "tags": [
    {
      "name": "Uploader"
    },
    {
      "name": "Library"
    },
    {
      "name": "Labels"
    },
    {
      "name": "Brand Compliance"
    },
    {
      "name": "Tasks",
      "description": "Facilitates the integration of external systems with Optimizely CMP through the following use cases:\n1. **External Work Management** – Use the endpoints to link Optimizely CMP with an external system (such as Jira or Aha). The external system can send status updates back to Optimizely CMP so that the Optimizely CMP user receives in-app updates for the status of the 'ticket' in the external system.\n2. **External Document Approval** – (a.k.a. Marketing Legal Review) Use the endpoints to link Optimizely CMP with an external system (such as Veeva PromoMats) to review, annotate, update, and approve marketing assets through the external system. The approval status can be sent back to Optimizely CMP so that the Optimizely CMP user receives in-app updates for the final approval status of the documents from the external system.\nFor information on these use cases, contact Optimizely CMP Support.\n"
    },
    {
      "name": "Campaigns"
    },
    {
      "name": "Publishing"
    },
    {
      "name": "Templates"
    },
    {
      "name": "Users"
    },
    {
      "name": "Work Requests"
    },
    {
      "name": "Structured Contents"
    },
    {
      "name": "Compose"
    },
    {
      "name": "Assets"
    },
    {
      "name": "Content Graph",
      "description": "Optimizely Graph indexes an organization's library assets and structured contents, and exposes them over GraphQL. Use these endpoints to discover the content graph instances provisioned for an organization and to run GraphQL queries against a chosen instance.\n"
    },
    {
      "name": "Events"
    },
    {
      "name": "Fields"
    },
    {
      "name": "Milestones"
    },
    {
      "name": "Teams"
    },
    {
      "name": "Settings"
    },
    {
      "name": "Workflows"
    },
    {
      "name": "Task Step"
    }
  ],
  "paths": {
    "/upload-url": {
      "get": {
        "operationId": "getUploadUrl",
        "tags": [
          "Uploader"
        ],
        "summary": "GET /upload-url",
        "description": "Get a presigned URL and related meta fields to upload a file. **The validity time for this URL is 60 minutes**.",
        "responses": {
          "200": {
            "description": "Fetched presigned upload URL and related meta fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "url": {
                      "description": "Presigned URL to use for uploading a file with an **HTTP POST** request as `multipart/form-data`",
                      "type": "string",
                      "example": "https://cmp-files.s3-accelerate.amazonaws.com/"
                    },
                    "upload_meta_fields": {
                      "description": "Related meta fields to upload a file. **Items within this field must be sent along as paylod of the POST request, along with the file, to the presigned upload URL**",
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "key": {
                          "description": "Unique identifier of the file. **This key will be needed for various file / attachment addition to different CMP resources using endpoints e.g. `POST /v3/assets`, `POST /v3/campaigns/{id}/attachments` etc.**",
                          "type": "string",
                          "example": "ce8995aea58b11ea8cd90242ac120005"
                        },
                        "policy": {
                          "type": "string",
                          "example": "eyJleHBpcmF0aW9uIjogIjIwMjAtMDYtMDNUMTY6MTc6NTbbbbbbImNvbmRpdGlvbnMiOiBbeyJidWNrZXQiOiAibmV3c2NyZWQtY21wLWZpbGVzIn0sIHsia2V5IjogIjY3Y2NhMzcxYTVhZDExZWFiNDNhMGExMjlmMDhlZWQ5In0sIHsieC1hbXotYWxnb3JpdGhtIjogIkFXUzQtSE1BQy1TSEEyNTYifSwgeyJ4LWFtei1jcmVkZW50aWFsIjogIkFTSUFVTlVMQkwzV082RDdSWkZILzIwMjAwNjAzL3VzLWVhc3QtMS9zMy9hd3M0X3JlcXVlc3QifSwgeyJ4LWFtei1kYXRlIjogIjIwMjAwNjAzVDE1MTc1N1oifSwgeyJ4LWFtei1zZWN1cml0eS10b2tlbiI6ICJJUW9KYjNKcFoybHVYMlZqRUE4YUNYVnpMV1ZoYzNRdE1TSkhNRVVDSUQrc2FrelZIK05zN0Z4UmtsaW9CZFdldjdZRXlIcHBoVjEyNnRsL0ZadjNBaUVBODFOV1l5TUt1L0UvZ1FyaUlhaVhMaXpxSFFuNnlxTWlWSzQzeU9xYTUaaaaaaU1JZHhBQUdnd3pNRFF4TmpBMU16QXhOVFlpRERxMlN3dVJTR2ZGL2hGRXpDcVJBMlo4NmpkRzNQczMzY3c5bFpFeVBpbmdWSnV0WUQ0RXZuU291NFR1NG9WaGhEZUwyS0QxdFREZmMrNHJmVWRMQ2Y1SWpzb3VRYldMekIzczRXZ2xMQUJFOFJ0VUM5K0o1bVpJUTlYNzJVa0xOUjA0UURpVlliSjdxNS95S25VNUFSZWUzQXdqVHp3UWZPS3dsTnRFODYyVWo4MXlWbDhMdS81d3kwaU5hZFpvbkZPcVBONldJWURpdi9MVzlLKzhWNjRNS2E5bDhtcG1kVll3RWJ2dTRiMENJVFIxQ0tjUHlzVkFNODBKdnZ0aklvQTZXc3RDcWxiM0ZHZEFGVmlnaDdId3JKL3greFNZVU5YVzFvaFNlUExDNXFPSCtoZ2ZqRFVOSDMvbXhEV2V4dWhQbDFGSjF6VlpZQzBMY2U0Y1F6dEtPbTgzZFBqcWI4a09pQVBUWVB3MGFmYnl0QUQyVE8vTmhZdHlvU1BzL0xWS1FYWXhyYk5MZ3N6azRMUjdLeUEydlA5NkJRMll6aVhnWDhTTm13bklDcWRiY2dzZitvNnBWOXRlTlJIczdIS3N2Qm9HYVFESTVhUDQrcmQ1K0h0aWM3RUZqSDlDUkk1bnBpL3cvTVlodkc0dXljWDR4cEJSeE5iSURWbFpuYTBEaUkvVkxmV3JjOWtkUFBhdm10QVhtVHR1U2c4aFFVMnNzMSt0dEJqaE1NRGkzdllGT3VzQnJEMDMyc1BlMWx0QUNRSzlVQUxEUmFYT2VIWjNXbThTVjZlMTErWVhnd3JKZkloQlp2a053OGxHdkRuN2FSK2hXUkpPazljY3pHOC9DTzRqZk8xVlpkZ3N2YU5PaEhpc01sQXVOMVJXallXUGJWRkRoajV3ekZ0OTQrcmJwdFd3dk9vamtXVElUM0o5SWtSNTF6SWJhc1VqTW4rOHRiSjFJbHJnWVFOaDVaaUVPTGZ1bFVHZWl1L2xXdERFbFhKUy9sS0pUTnV1YU1DRnU0NnBocTlvVE9EMWtmSVYrUEFxZEZYV2xQbVZKK3lXeGRLellSV1creDdERjJ6dnZmZm1nc0JBWU01eDh6aEJ3YWIrSXkvTGR6eWdQVUFnaTFTUE9oSktFRjNBejU4aVArdGFDbUxhdmo5cGFRPT0ifV19"
                        },
                        "x-amz-algorithm": {
                          "type": "string",
                          "example": "AWS4-HMAC-SHA256"
                        },
                        "x-amz-credential": {
                          "type": "string",
                          "example": "ASIAAAAAAA3WO6D7RZFH/20343603/us-east-1/s3/aws4_request"
                        },
                        "x-amz-date": {
                          "type": "string",
                          "example": "20200603T151757Z"
                        },
                        "x-amz-security-token": {
                          "type": "string",
                          "example": "IQoJb3JpZ2luX2VjEA8ccccccWVhc3QtMSJHMEUCID+sakzVH+Ns7FxRklioBdWev7YEyHpphV126tl/FZv3AiEA81NWYyMKu/E/gQriIaiXLizqHQn6yqMiVK43yOqa52AqtAMIdxAAGgwzMDQxNjA1MzAxNTYiDDq2SwuRSGfFddddddqRA2Z86jdG3Ps33cw9lZEyPingVJutYD4EvnSou4Tu4oVhhDeL2KD1tTDfc+4rfUdLCf5IjsouQbWLzB3s4WglLABE8RtUC9+J5mZIQ9X72UkLNR04QDiVYbJ7q5/yKnU5ARee3AwjTzwQfOKwlNtE862Uj81yVl8Lu/5wy0iNadZonFOqPN6WIYDiv/LW9K+8V64MKa9l8mpmdVYwEbvu4b0CITR1CKcPysVAM80JvvtjIoA6WstCqlb3FGdAFVigh7HwrJ/x+xSYUNXW1ohSePLC5qOH+hgfjDUNH3/mxDWexuhPl1FJ1zVZYC0Lce4cQztKOm83dPjqb8kOiAPTYPw0afbytAD2TO/NhYtyoSPs/LVKQXYxrbNLgszk4LR7KyA2vP96BQ2YziXgX8SNmwnICqdbcgsf+o6pV9teNRHs7HKsvBoGaQDI5aP4+rd5+Htic7EFjH9CRI5npi/w/MYhvG4uycX4xpBRxNbIDVlZna0DiI/VLfWrc9kdPPavmtAXmTtuSg8hQU2ss1+ttBjhMMDi3vYFOusBrD032sPe1ltACQK9UALDRaXOeHZ3Wm8SV6e11+YXgwrJfIhBZvkNw8lGvDn7aR+hWRJOk9cczG8/CO4jfO1VZdgsvaNOhHisMlAuN1RWjYWPbVFDhj5wzFt94+rbptWwvOojkWTIT3J9IkR51zIbasUjMn+8tbJ1IlrgYQNh5ZiEOLfulUGeiu/lWtDElXJS/lKJTNuuaMCFu46phq9oTOD1kfIV+PAqdFXWlPmVJ+yWxdKzYRWW+x7DF2zvvffmgsBAYM5x8zhBwab+Iy/LdzygPUAgi1SPOhJKEF3Az58iP+taCmLavj9paQ=="
                        },
                        "x-amz-signature": {
                          "type": "string",
                          "example": "0e67ede744d4aed62aaaaaa8e87648b3e98a3e611ccccccc89963bcf70bd02f9"
                        }
                      },
                      "required": [
                        "key",
                        "policy",
                        "x-amz-algorithm",
                        "x-amz-credential",
                        "x-amz-date",
                        "x-amz-signature"
                      ]
                    }
                  },
                  "required": [
                    "url",
                    "upload_meta_fields"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/multipart-uploads": {
      "post": {
        "operationId": "createMultipartUpload",
        "x-experimental": true,
        "tags": [
          "Uploader"
        ],
        "summary": "POST /v3/multipart-uploads",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create pre-signed URLs for multipart upload of large files",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_size": {
                    "type": "integer",
                    "description": "Size of the file in bytes",
                    "minimum": 1,
                    "maximum": 5497558138880,
                    "example": 104857600
                  },
                  "part_size": {
                    "type": "integer",
                    "description": "The size of each part of the file to be uploaded. The size of the last part can be smaller and hence can be ignored. `upload_part_count` is calculated based on `file_size` and `part_size`. **The maximum allowed `upload_part_count` is 10000.** So use larger `part_size` for larger files to keep `upload_part_count` under 10000.",
                    "default": 5242880,
                    "minimum": 5242880,
                    "maximum": 5368709120,
                    "example": 6000000
                  }
                },
                "required": [
                  "file_size"
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful operation",
            "headers": {
              "Content-Encoding": {
                "schema": {
                  "type": "string",
                  "enum": [
                    "gzip"
                  ],
                  "description": "Response is always gzip compressed"
                },
                "example": "gzip"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "ID of the multipart upload",
                      "example": "abcdef1234567890"
                    },
                    "expires_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Expiration time of the upload URLs",
                      "example": "2025-03-03T12:00:00Z"
                    },
                    "upload_part_count": {
                      "type": "integer",
                      "description": "Number of parts for the upload",
                      "example": 10
                    },
                    "upload_part_urls": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uri"
                      },
                      "description": "Array of pre-signed URLs for each part. **Each file part must be uploaded to the URL using PUT requests following the order of the URLs**",
                      "example": [
                        "https://s3.amazonaws.com/xyz/abcdef1234567890/0",
                        "https://s3.amazonaws.com/xyz/abcdef1234567890/1"
                      ]
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "complete": {
                          "type": "string",
                          "format": "uri",
                          "description": "URL to complete the upload",
                          "example": "https://api.cmp.optimizely.com/v3/multipart-uploads/abcdef1234567890/complete"
                        },
                        "status": {
                          "type": "string",
                          "format": "uri",
                          "description": "URL to check the upload status",
                          "example": "https://api.cmp.optimizely.com/v3/multipart-uploads/abcdef1234567890/status"
                        }
                      },
                      "required": [
                        "complete",
                        "status"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "expires_at",
                    "upload_part_count",
                    "upload_part_urls",
                    "links"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/multipart-uploads/{id}/status": {
      "get": {
        "operationId": "getMultipartUploadStatus",
        "x-experimental": true,
        "tags": [
          "Uploader"
        ],
        "summary": "GET /v3/multipart-uploads/{id}/status",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Retrieve the current status of a multipart upload",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the multipart upload to check status for",
            "example": "abcdef1234567890"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved upload status",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "ID of the multipart upload",
                      "example": "abcdef1234567890"
                    },
                    "key": {
                      "type": "string",
                      "description": "Unique identifier of the file combining all parts. **This key will be needed for various file / attachment addition to different CMP resources using endpoints e.g. `POST /v3/assets`, `POST /v3/campaigns/{id}/attachments` etc.**",
                      "example": "ce8995aea58b11ea8cd90242ac120005/abcdef1234567890"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "UPLOAD_COMPLETION_NOT_STARTED",
                        "UPLOAD_COMPLETION_IN_PROGRESS",
                        "UPLOAD_COMPLETION_SUCCEEDED",
                        "UPLOAD_COMPLETION_FAILED"
                      ],
                      "description": "Current status of the upload",
                      "example": "UPLOAD_COMPLETION_IN_PROGRESS"
                    },
                    "status_message": {
                      "type": "string",
                      "nullable": true,
                      "description": "Detailed status message",
                      "example": "Some error message related to the status"
                    },
                    "expires_at": {
                      "type": "string",
                      "format": "date-time",
                      "description": "Expiration time of the upload",
                      "example": "2025-03-03T12:00:00Z"
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "self": {
                          "type": "string",
                          "format": "uri",
                          "description": "URL to this status endpoint",
                          "example": "https://api.cmp.optimizely.com/v3/multipart-uploads/abcdef1234567890/status"
                        }
                      },
                      "required": [
                        "self"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "key",
                    "status",
                    "status_message",
                    "expires_at",
                    "links"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/multipart-uploads/{id}/complete": {
      "post": {
        "operationId": "completeMultipartUpload",
        "x-experimental": true,
        "tags": [
          "Uploader"
        ],
        "summary": "POST /v3/multipart-uploads/{id}/complete",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Initiate completion of a multipart upload after all parts have been uploaded",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the multipart upload to complete",
            "example": "abcdef1234567890"
          }
        ],
        "responses": {
          "202": {
            "description": "Upload completion initiated successfully",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "key": {
                      "type": "string",
                      "description": "Unique identifier of the file combining all parts. **This key will be needed for various file / attachment addition to different CMP resources using endpoints e.g. `POST /v3/assets`, `POST /v3/campaigns/{id}/attachments` etc.**",
                      "example": "ce8995aea58b11ea8cd90242ac120005/abcdef1234567890"
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "format": "uri",
                          "description": "URL to check upload status",
                          "example": "https://api.cmp.optimizely.com/v3/multipart-uploads/abcdef1234567890/status"
                        }
                      },
                      "required": [
                        "status"
                      ]
                    }
                  },
                  "required": [
                    "key",
                    "links"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/folders": {
      "get": {
        "operationId": "listFolders",
        "tags": [
          "Library"
        ],
        "summary": "GET /folders",
        "description": "Get the list of folders sorted by `modified_at` in descending order.",
        "parameters": [
          {
            "name": "parent_folder_id",
            "in": "query",
            "required": false,
            "description": "ID of the parent folder to filter by",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched folders",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of folders",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FolderResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/folders?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createFolder",
        "tags": [
          "Library"
        ],
        "summary": "POST /folders",
        "description": "Create a folder. Use the `parent_folder_id` field to create a nested folder.",
        "requestBody": {
          "description": "Payload to create a folder",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created folder",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/folders/{id}": {
      "get": {
        "operationId": "getFolder",
        "tags": [
          "Library"
        ],
        "summary": "GET /folders/{id}",
        "description": "Get a folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched folder",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateFolder",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PATCH /folders/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a folder's name and/or parent.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "requestBody": {
          "description": "Payload to update a folder",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated Folder",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "delete": {
        "operationId": "deleteFolder",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "DELETE /folders/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a folder.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "responses": {
          "204": {
            "description": "Folder deleted successfully"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/folders/{id}/permissions": {
      "get": {
        "operationId": "listFolderPermissions",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /folders/{id}/permissions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> List of entities that have permission to access the folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level. Cannot be used in addition to max_access and min_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          },
          {
            "name": "max_access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level and higher. Cannot be used in addition to access and min_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          },
          {
            "name": "min_access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level and lower. Cannot be used in addition to access and max_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          }
        ],
        "responses": {
          "200": {
            "description": "List of permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FolderPermissionListResponseItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addFolderPermissions",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "POST /folders/{id}/permissions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Grant folder access to users or teams",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to add list of accessors to folder permissions",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderPermissionBulkCreateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Permission access granted"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/folders/{id}/permissions/{accessor_id}": {
      "patch": {
        "operationId": "updateFolderPermission",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PATCH /folders/{id}/permissions/{accessor_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update accessor's access level and ownership of folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "accessor_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the accessor. Accessor should be a user or a team."
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update permission of accessors",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FolderPermissionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Permission access granted"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "removeFolderPermission",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "DELETE /folders/{id}/permissions/{accessor_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Remove accessor's access from a folder",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the folder"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "accessor_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the accessor. Accessor should be a user or a team. Accessor cannot be an owner."
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "204": {
            "description": "Accessor's access removed"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/file-urls": {
      "post": {
        "operationId": "createFileUrls",
        "tags": [
          "Library"
        ],
        "summary": "POST /file-urls",
        "description": "Generates download URLs of files given file guid.",
        "requestBody": {
          "description": "Payload to generate download URLs for files.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileUrlBulkCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Generated URLs",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchFileUrlResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets": {
      "get": {
        "operationId": "listAssets",
        "tags": [
          "Library"
        ],
        "summary": "GET /assets",
        "description": "Get the list of assets. Assets are sorted by `modified_at` in descending order.\nTo get assets that are not inside any folder, pass `include_subfolder_assets=false` in the query param.\n",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Asset type to filter by. Example: `type=image&type=video`",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "article",
                  "image",
                  "video",
                  "raw_file",
                  "structured_content",
                  "compose_content"
                ]
              },
              "default": [
                "article",
                "image",
                "video",
                "raw_file",
                "structured_content",
                "compose_content"
              ]
            },
            "style": "form",
            "explode": true,
            "examples": {
              "single": {
                "summary": "Filter by a single type",
                "value": [
                  "image"
                ]
              },
              "multiple": {
                "summary": "Filter by multiple types",
                "value": [
                  "article",
                  "image",
                  "video"
                ]
              }
            }
          },
          {
            "name": "label",
            "in": "query",
            "description": "Label to filter by. **Must be passed as urlencoded string**. Labels that do not exist are ignored. If none of the provided labels exist, filtering is not applied. Example – `label=%7B%22group%22%3A%22ee63e3ee43925bb5cc8cd17b817d93ee%22%2C%22values%22%3A%5B%226706efc7828cd6aaedbc0434139cd3e1%22%2C%221f32651216cf2aefcaa08be1ea7dedf1%22%5D%7D`",
            "schema": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "group": {
                    "type": "string",
                    "description": "Identifier of the label group",
                    "example": "2467e583a60e23fda2b89db81a453cd2"
                  },
                  "values": {
                    "type": "array",
                    "description": "List of identifiers of the label values",
                    "items": {
                      "type": "string",
                      "description": "Identifier of the label value",
                      "example": "71c378f3fee3d822759d1bdc2aab628c"
                    }
                  }
                },
                "required": [
                  "group",
                  "values"
                ]
              }
            },
            "style": "form",
            "explode": true,
            "examples": {
              "single": {
                "summary": "Filter by a single label",
                "value": [
                  "{\"group\": \"ee63e3ee43925bb5cc8cd17b817d93ee\", \"values\": [\"6706efc7828cd6aaedbc0434139cd3e1\", \"1f32651216cf2aefcaa08be1ea7dedf1\"]}"
                ]
              },
              "multiple": {
                "summary": "Filter by multiple labels",
                "value": [
                  "{\"group\": \"ee63e3ee43925bb5cc8cd17b817d93ee\", \"values\": [\"6706efc7828cd6aaedbc0434139cd3e1\", \"1f32651216cf2aefcaa08be1ea7dedf1\"]}",
                  "{\"group\": \"126123b543912bb5cc12d17b817d9312\", \"values\": [\"aa63e3ee43925bb5cc8cd17b817d93aa\", \"df697bd824a944bf7d4fb6e350d9c5bd\"]}"
                ]
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "List of fields to filter by. **Must be passed as base64 encoded string**. Fields that do not exist are ignored. If none of the provided fields exist, filtering is not applied. Example – `fields=Wwp7CiJpZCI6ICI2N2E4NDZhMWM3NzU1YTFwNThpNjh5MzVhIiwKInZhbHVlcyI6IFsiNjdhODQ2YTFjNzc1YWU1YWExYTE0YTA1Il0KfQpd=`",
            "schema": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Identifier of the field",
                    "example": "2467e583a60e23fda2b89db81a453cd2"
                  },
                  "values": {
                    "type": "array",
                    "description": "List of identifiers of the field values",
                    "items": {
                      "type": "string",
                      "description": "Identifier of the field value",
                      "example": "71c378f3fee3d822759d1bdc2aab628c"
                    }
                  }
                },
                "required": [
                  "id",
                  "values"
                ]
              }
            },
            "style": "form",
            "explode": true,
            "examples": {
              "single": {
                "summary": "Filter by a single field",
                "value": [
                  "[{\"id\": \"ee63e3ee43925bb5cc8cd17b817d93ee\", \"values\": [\"6706efc7828cd6aaedbc0434139cd3e1\", \"1f32651216cf2aefcaa08be1ea7dedf1\"]}]"
                ]
              },
              "multiple": {
                "summary": "Filter by multiple fields",
                "value": [
                  "[{\"id\": \"ee63e3ee43925bb5cc8cd17b817d93ee\", \"values\": [\"6706efc7828cd6aaedbc0434139cd3e1\", \"1f32651216cf2aefcaa08be1ea7dedf1\"]}, {\"id\": \"126123b543912bb5cc12d17b817d9312\", \"values\": [\"aa63e3ee43925bb5cc8cd17b817d93aa\", \"df697bd824a944bf7d4fb6e350d9c5bd\"]}]"
                ]
              }
            }
          },
          {
            "name": "created_at__from",
            "in": "query",
            "required": false,
            "description": "Date and time as the lower limit to filter assets by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "created_at__to",
            "in": "query",
            "required": false,
            "description": "Date and time as the upper limit to filter assets by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "modified_at__from",
            "in": "query",
            "required": false,
            "description": "Date and time as the lower limit to filter assets by `modified_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "modified_at__to",
            "in": "query",
            "required": false,
            "description": "Date and time as the upper limit to filter assets by `modified_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "folder_id",
            "in": "query",
            "required": false,
            "description": "ID of the library folder to include assets from",
            "schema": {
              "type": "string"
            },
            "example": "6bb8db20a5b611ebae319b7c541b1a7f"
          },
          {
            "name": "include_subfolder_assets",
            "in": "query",
            "required": false,
            "description": "Indicates whether assets from subfolders need to be included",
            "schema": {
              "type": "boolean",
              "default": true
            },
            "example": "false"
          },
          {
            "name": "search_text",
            "in": "query",
            "required": false,
            "description": "Search assets by title or content description",
            "schema": {
              "type": "string"
            },
            "example": "Cute Cat"
          },
          {
            "name": "campaign_id",
            "in": "query",
            "required": false,
            "description": "ID of the campaign to include assets from",
            "schema": {
              "type": "string"
            },
            "example": "673218bee23887779e9e9a6f"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched assets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of assets",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AssetResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/assets?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    },
                    "total_count": {
                      "type": "number",
                      "description": "Total number of assets found based on the request"
                    }
                  },
                  "required": [
                    "data",
                    "pagination",
                    "total_count"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createAsset",
        "tags": [
          "Library"
        ],
        "summary": "POST /assets",
        "description": "Create a new asset. Supports only `images`, `videos`, and `raw files`. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset.",
        "requestBody": {
          "description": "Payload to create an asset",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryAssetCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created asset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/assets/{asset_id}/fields": {
      "get": {
        "operationId": "listAssetFields",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET assets/{asset_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of an asset.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AssetFieldListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/assets/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "operationId": "updateAssetFields",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PUT /assets/{asset_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Replace existing fields of an asset.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to replace the fields",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetFieldsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "List of fields after replacement",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AssetFieldListResponseItem"
                      }
                    },
                    "links": {
                      "type": "object",
                      "additionalProperties": false,
                      "description": "Meta links",
                      "properties": {
                        "asset_fields": {
                          "type": "string",
                          "description": "URL to get the asset fields",
                          "example": "https://api.cmp.optimizely.com/v3/assets/5f857f30e1c4a2038d6179e9/fields"
                        },
                        "asset_url": {
                          "type": "string",
                          "description": "URL of the asset",
                          "example": "https://api.cmp.optimizely.com/v3/asset-urls/5f857f30e1c4a2038d6179e9"
                        }
                      },
                      "required": [
                        "asset_fields",
                        "asset_url"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets/{asset_id}/fields/{field_id}": {
      "put": {
        "operationId": "updateAssetField",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PUT /assets/{asset_id}/fields/{field_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update the field value of an asset. ",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field of the asset"
            },
            "example": "4f857f30e1c4a2038d6179e7"
          }
        ],
        "requestBody": {
          "description": "Payload to update the field value",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated the asset field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetFieldUpdateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets/{asset_id}/versions": {
      "post": {
        "operationId": "createAssetVersion",
        "tags": [
          "Library"
        ],
        "summary": "POST /assets/{asset_id}/versions",
        "description": "Add a new version to a library asset. Supports adding versions to only `images`, `videos`, and `raw files` type assets. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload a version to a library asset.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to add a version to a library asset",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetVersionCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created version",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryAssetVersionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/assets/{asset_id}/renditions": {
      "get": {
        "operationId": "listAssetRenditions",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /assets/{asset_id}/renditions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the renditions of an asset given its `id`. ",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched renditions",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of renditions",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BaseAssetRenditionResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/assets/5d7f910551b00a722e0418830cee6631/renditions?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets/{asset_id}/permissions": {
      "get": {
        "operationId": "listAssetPermissions",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /assets/{asset_id}/permissions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> List of entities that have permission to access the asset",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level. Cannot be used in addition to max_access and min_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          },
          {
            "name": "max_access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level and higher. Cannot be used in addition to access and min_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          },
          {
            "name": "min_access",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "To filter by specific access level and lower. Cannot be used in addition to access and max_access params.",
              "enum": [
                "view",
                "edit",
                "comment",
                "delete"
              ]
            },
            "example": "view"
          }
        ],
        "responses": {
          "200": {
            "description": "List of permissions",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetPermissionListResponseItem"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addAssetPermissions",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "POST /assets/{asset_id}/permissions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Grant asset access to users or teams",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to add list of accessors to asset permissions",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetPermissionBulkCreateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Permission access granted"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets/{asset_id}/permissions/{accessor_id}": {
      "patch": {
        "operationId": "updateAssetPermission",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PATCH /assets/{asset_id}/permissions/{accessor_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update accessor's access level and ownership of asset",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "accessor_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the accessor. Accessor should be a user or a team."
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update permission of accessors",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetPermissionUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Permission access granted"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "removeAssetPermission",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "DELETE /asstes/{asset_id}/permissions/{accessor_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Remove accessor's access from an asset",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "accessor_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the accessor. Accessor should be a user or a team. Accessor cannot be an owner."
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "204": {
            "description": "Accessor's access removed"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/renditions/{id}": {
      "get": {
        "operationId": "getRendition",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /renditions/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a rendition given its `id`. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the rendition"
            },
            "example": "c2603a6e0b4811eebea95edf08e23f48"
          }
        ],
        "responses": {
          "200": {
            "description": "Details of the rendition",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedAssetRenditionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/rendition-configs/{id}": {
      "get": {
        "operationId": "getRenditionConfig",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /rendition-configs/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a rendition configuration of an organization given its `id`. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the rendition configuration"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "200": {
            "description": "Data of a rendition configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenditionConfigResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/assets/{asset_id}/lineages": {
      "post": {
        "operationId": "createAssetLineage",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "POST /assets/{asset_id}/lineages",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a new external asset lineage.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to add an external asset lineage for a library asset",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssetLineageCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created external asset lineage",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssetLineageResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/assets/{asset_id}/lineages/{lineage_id}": {
      "delete": {
        "operationId": "deleteAssetLineage",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "DELETE /assets/{asset_id}/lineages/{lineage_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete an asset lineage.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "lineage_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the lineage"
            },
            "example": "ff3f8e024f0611ed993202420ac8001b"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the asset lineage"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/assets/{asset_id}/related-assets": {
      "get": {
        "tags": [
          "Library"
        ],
        "operationId": "listRelatedAssets",
        "summary": "GET /assets/{asset_id}/related-assets",
        "description": "Returns a paginated list of related assets for the specified asset. Only supported for asset types: article, image, video, raw_file, and structured_content.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of related assets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelatedAssetsListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Library"
        ],
        "operationId": "replaceRelatedAssets",
        "summary": "PUT /assets/{asset_id}/related-assets",
        "description": "Replaces all related assets for the specified asset. Only supported for asset types: article, image, video, raw_file, and structured_content.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "List of related assets to set for the specified asset",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplaceRelatedAssetsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully replaced related assets",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplaceRelatedAssetsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/asset-lineages": {
      "get": {
        "operationId": "listAssetLineages",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /asset-lineages",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of asset lineage.",
        "parameters": [
          {
            "name": "asset_id",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset. Can be appended multiple times, such as `asset_id=assetId1&asset_id=assetId2`"
            },
            "example": "1265ca474ba987cc925164aa7"
          },
          {
            "name": "used_in",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Indicates where an asset is being used.",
              "enum": [
                "external"
              ]
            },
            "example": "external"
          },
          {
            "name": "created_at__from",
            "in": "query",
            "required": false,
            "description": "Date and time as the lower limit to filter asset lineages by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "created_at__to",
            "in": "query",
            "required": false,
            "description": "Date and time as the upper limit to filter asset lineages by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched asset lineage",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of asset lineage",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AssetLineageResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/asset-lineages?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/articles/{id}": {
      "get": {
        "operationId": "getArticle",
        "tags": [
          "Library"
        ],
        "summary": "GET /articles/{id}",
        "description": "Get an article",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the article"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched article",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryArticle"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/images/{id}": {
      "get": {
        "operationId": "getImage",
        "tags": [
          "Library"
        ],
        "summary": "GET /images/{id}",
        "description": "Get an image",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the image"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryImage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateImage",
        "tags": [
          "Library"
        ],
        "summary": "PATCH /images/{id}",
        "description": "Updates an image",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the image"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update the image",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryImageUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated Image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryImage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteImage",
        "tags": [
          "Library"
        ],
        "summary": "DELETE /images/{id}",
        "description": "Delete an image",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the image"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the image"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/videos/{id}": {
      "get": {
        "operationId": "getVideo",
        "tags": [
          "Library"
        ],
        "summary": "GET /videos/{id}",
        "description": "Get a video",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the video"
            },
            "example": "5d7f910551b00a722e0418830cee6633"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched video",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryVideo"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateVideo",
        "tags": [
          "Library"
        ],
        "summary": "PATCH /videos/{id}",
        "description": "Updates a video",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the Video"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update the video",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryVideoUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Video Updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryVideo"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteVideo",
        "tags": [
          "Library"
        ],
        "summary": "DELETE /videos/{id}",
        "description": "Delete a video",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the video"
            },
            "example": "5d7f910551b00a722e0418830cee6633"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the video"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/raw-files/{id}": {
      "get": {
        "operationId": "getRawFile",
        "tags": [
          "Library"
        ],
        "summary": "GET /raw-files/{id}",
        "description": "Get a raw file",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the raw file"
            },
            "example": "5d7f910551b00a722e0418830cee6634"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched raw file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryRawFile"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateRawFile",
        "tags": [
          "Library"
        ],
        "summary": "PATCH /raw-files/{id}",
        "description": "Updates a raw file",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the raw file"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update the raw file",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryRawFileUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Raw file updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryRawFile"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteRawFile",
        "tags": [
          "Library"
        ],
        "summary": "DELETE /raw-files/{id}",
        "description": "Delete a raw file",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the raw file"
            },
            "example": "5d7f910551b00a722e0418830cee6634"
          }
        ],
        "responses": {
          "200": {
            "description": "Deleted the raw file"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/structured-contents": {
      "post": {
        "operationId": "createStructuredContent",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "POST /structured-contents",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Creates a structured content.",
        "requestBody": {
          "description": "Payload to create the structured content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryStructuredContentCreateRequest"
              },
              "examples": {
                "simple": {
                  "summary": "Plain fields",
                  "value": {
                    "title": "My Industry Page",
                    "content_body": {
                      "content_type_guid": "5d7f910551b00a722e0418830cee6633",
                      "root_content": true,
                      "title": "My Industry Page",
                      "fields": {
                        "title": [
                          {
                            "locale": "en_US",
                            "field_values": [
                              {
                                "text_value": "My Industry Page"
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                },
                "withReferenceField": {
                  "summary": "Reference field with new embedded items",
                  "description": "Set `has_embedded: true` and nest each new item's values under its own `fields`. The server assigns `content_guid`, `created_by`, etc.",
                  "value": {
                    "title": "My Industry Page",
                    "content_body": {
                      "content_type_guid": "5d7f910551b00a722e0418830cee6633",
                      "root_content": true,
                      "title": "My Industry Page",
                      "fields": {
                        "has_embedded": true,
                        "painGains": [
                          {
                            "locale": "en_US",
                            "field_values": [
                              {
                                "content_details": {
                                  "content_type_guid": "8a1c0e2f4b6d47e0a1b2c3d4e5f60718",
                                  "root_content": false,
                                  "title": "Faster onboarding",
                                  "fields": {
                                    "title": [
                                      {
                                        "locale": "en_US",
                                        "field_values": [
                                          {
                                            "text_value": "Faster onboarding"
                                          }
                                        ]
                                      }
                                    ],
                                    "description": [
                                      {
                                        "locale": "en_US",
                                        "field_values": [
                                          {
                                            "rich_text_value": "<p>Cut ramp time in half.</p>"
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              },
                              {
                                "content_details": {
                                  "content_type_guid": "8a1c0e2f4b6d47e0a1b2c3d4e5f60718",
                                  "root_content": false,
                                  "title": "Lower total cost",
                                  "fields": {
                                    "title": [
                                      {
                                        "locale": "en_US",
                                        "field_values": [
                                          {
                                            "text_value": "Lower total cost"
                                          }
                                        ]
                                      }
                                    ],
                                    "description": [
                                      {
                                        "locale": "en_US",
                                        "field_values": [
                                          {
                                            "rich_text_value": "<p>Consolidate tooling spend.</p>"
                                          }
                                        ]
                                      }
                                    ]
                                  }
                                }
                              }
                            ]
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured content created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryStructuredContent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/structured-contents/{id}": {
      "get": {
        "operationId": "getStructuredContent",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /structured-contents/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the structured content. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "a24b834427a043ab8caed1ded4606f7d"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched structured content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryStructuredContent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateStructuredContent",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "PATCH /structured-contents/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Updates a structured content. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to update the structured content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LibraryStructuredContentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Structured content updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryStructuredContent"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/compose-contents/{content_id}": {
      "get": {
        "operationId": "getComposeContent",
        "x-experimental": true,
        "tags": [
          "Library"
        ],
        "summary": "GET /compose-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a compose content from the library, with the field values of its published version. Returns 404 if the content was never published.",
        "parameters": [
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the compose content in the library"
            },
            "example": "db1jqsvq64lsu74mnujg"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched compose content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LibraryComposeContentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/compose/content-schemas": {
      "get": {
        "operationId": "listComposeContentSchemas",
        "x-experimental": true,
        "tags": [
          "Compose"
        ],
        "summary": "GET /compose/content-schemas",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get all content schemas of the organization. The list is not paginated, so `pagination.next` and `pagination.previous` are always `null`. Returns 403 if Compose is not enabled for the organization.",
        "responses": {
          "200": {
            "description": "List of content schemas",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of content schemas",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ComposeContentSchemaResponse"
                      }
                    },
                    "pagination": {
                      "$ref": "#/components/schemas/Pagination"
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/compose/content-schemas/{schema_id}": {
      "get": {
        "operationId": "getComposeContentSchema",
        "x-experimental": true,
        "tags": [
          "Compose"
        ],
        "summary": "GET /compose/content-schemas/{schema_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a content schema. Returns 403 if Compose is not enabled for the organization.",
        "parameters": [
          {
            "name": "schema_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The `api_id` or the internal `id` of the content schema"
            },
            "example": "blog_post"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched content schema",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComposeContentSchemaResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/content-graphs": {
      "get": {
        "operationId": "listContentGraphs",
        "x-experimental": true,
        "tags": [
          "Content Graph"
        ],
        "summary": "GET /content-graphs",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of content graph instances provisioned for the organization. Use this to discover the `instance_id` of the instance to query, before running a query against it.\n\nAn organization with no content graph instance of the requested type gets an empty `data` list rather than an error.",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": true,
            "description": "Type of the content graph instances to return. Use `dam` for instances holding library assets and `sc` for instances holding structured contents.",
            "schema": {
              "type": "string",
              "enum": [
                "dam",
                "sc"
              ]
            },
            "example": "dam"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Number of results to return per page",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            },
            "example": 15
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched content graph instances",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGraphListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/content-graphs/{instance_id}/query": {
      "post": {
        "operationId": "queryContentGraph",
        "x-experimental": true,
        "tags": [
          "Content Graph"
        ],
        "summary": "POST /content-graphs/{instance_id}/query",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Run a GraphQL query against a content graph instance. Get the `instance_id` from `GET /content-graphs`.\n\nUse this to check whether a given asset has synced to the graph, by querying for its identifier and seeing whether the graph returns it.\n\n**Reading the response.** A `200` carries the graph's JSON payload (`data`, and `extensions` when present) passed through unchanged. If the graph rejects a well-formed query, the endpoint returns the graph's own `4xx` status with its GraphQL `errors` body (for example `429` when the graph rate-limits). A `502` means the content graph is unavailable or returned a server error, and a `504` means it could not be reached in time — both are transient, so retry. A `500` is a server-side failure on our end and, unlike `502`/`504`, will not be resolved by retrying.",
        "parameters": [
          {
            "name": "instance_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content graph instance"
            },
            "example": "00e3d1f85ceb41408b3e323a6b3b188d"
          }
        ],
        "requestBody": {
          "description": "GraphQL query to run against the content graph instance",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContentGraphQueryRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Query reached the content graph and succeeded. The body is the graph's JSON response, passed through unchanged.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGraphQueryResponse"
                },
                "example": {
                  "data": {
                    "cmp_PublicImageAsset": {
                      "cursor": "FGluY2x1",
                      "total": 53,
                      "items": [
                        {
                          "Id": "03f47ac464bc11f18b0102420ac80022"
                        }
                      ]
                    }
                  },
                  "extensions": {
                    "correlationId": "a18548eeeee29cba",
                    "cost": 51
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request was invalid (for example a missing `query`), or the graph rejected a well-formed query. When it originates from the graph, the body is the graph's GraphQL `errors` payload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGraphQueryResponse"
                },
                "example": {
                  "errors": [
                    {
                      "message": "Cannot query field \"Nope\" on type \"Query\"."
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "description": "The content graph rate-limited the request. Passed through with the graph's status and body unchanged. Retry after a short delay.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGraphQueryResponse"
                },
                "example": {
                  "errors": [
                    {
                      "message": "Too many requests."
                    }
                  ]
                }
              }
            }
          },
          "502": {
            "$ref": "#/components/responses/BadGateway"
          },
          "504": {
            "$ref": "#/components/responses/GatewayTimeout"
          }
        }
      }
    },
    "/label-groups": {
      "get": {
        "operationId": "listLabelGroups",
        "tags": [
          "Labels"
        ],
        "summary": "GET /label-groups",
        "description": "Get the list of label groups. Label groups are sorted by `name` in ascending order.",
        "parameters": [
          {
            "name": "source_org_type",
            "in": "query",
            "description": "Source organization type to filter by",
            "schema": {
              "type": "string",
              "enum": [
                "current",
                "related"
              ]
            },
            "example": "current"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched label groups",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of label groups",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/LabelGroup"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/label-groups?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/tasks": {
      "get": {
        "operationId": "listTasks",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of tasks.\n\nPick one style of date filter per request. Either use `start_date` and `due_date`, or use the `__from` and `__to` filters. A request that mixes the two styles returns a `400` error.",
        "parameters": [
          {
            "name": "search_key",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Search for task title"
            },
            "example": "task 1"
          },
          {
            "name": "campaign",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Campaign id of the tasks"
            },
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          {
            "name": "workflow",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Workflow id of the tasks"
            },
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          {
            "name": "milestone",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Milestone id of the tasks"
            },
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          {
            "name": "start_date",
            "in": "query",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "Start date of the tasks, in ISO 8601 UTC format. Returns the tasks whose start date falls in the 24 hours that begin at this date and time. Deprecated, use `start_date__from` and `start_date__to` instead."
            },
            "example": "2022-08-24T00:00:00.000Z"
          },
          {
            "name": "due_date",
            "in": "query",
            "deprecated": true,
            "schema": {
              "type": "string",
              "description": "Due date of the tasks, in ISO 8601 UTC format. Returns the tasks whose due date falls in the 24 hours that begin at this date and time. Deprecated, use `due_date__from` and `due_date__to` instead."
            },
            "example": "2022-08-24T00:00:00.000Z"
          },
          {
            "name": "start_date__from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Date and time as the lower limit to filter tasks by their start date, in ISO 8601 UTC format"
            },
            "example": "2022-08-24T00:00:00Z"
          },
          {
            "name": "start_date__to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Date and time as the upper limit to filter tasks by their start date, in ISO 8601 UTC format"
            },
            "example": "2022-08-31T23:59:59Z"
          },
          {
            "name": "due_date__from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Date and time as the lower limit to filter tasks by their due date, in ISO 8601 UTC format"
            },
            "example": "2022-08-24T00:00:00Z"
          },
          {
            "name": "due_date__to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Date and time as the upper limit to filter tasks by their due date, in ISO 8601 UTC format"
            },
            "example": "2022-08-31T23:59:59Z"
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "Archived",
                  "Completed",
                  "Overdue",
                  "Not Started",
                  "In Progress",
                  "On Hold"
                ]
              },
              "description": "Filter tasks by status. Provide multiple statuses to filter tasks across multiple statuses."
            },
            "example": [
              "In Progress",
              "Not Started"
            ]
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched tasks",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of tasks",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createTask",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a task",
        "requestBody": {
          "description": "Payload to create a task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{id}": {
      "get": {
        "operationId": "getTask",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{id}",
        "description": "Get a task",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTask",
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{id}",
        "description": "Update a task.\n\nWhen `due_at` moves the task and other tasks depend on it, set `dependent_tasks` to choose whether those tasks keep their dates or shift with this task. Without it, the request is rejected with `409` listing the dependent tasks, and no changes are made.\n",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update the task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "description": "The due date change affects dependent tasks and `dependent_tasks` was not set",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskDependentTasksConflictError"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/urls": {
      "post": {
        "operationId": "addUrlToTask",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/urls",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Adds a URL to a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "68fdf93d09caf1463f145dc6"
          }
        ],
        "requestBody": {
          "description": "Payload to add a URL to a task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddUrlToTaskRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created task URL",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskUrlResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{id}/brief": {
      "get": {
        "operationId": "getTaskBrief",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{id}/brief",
        "description": "Get brief of the task",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched brief of the task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskBriefResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{id}/custom-fields": {
      "get": {
        "operationId": "listTaskCustomFields",
        "tags": [
          "Tasks"
        ],
        "summary": "GET tasks/{id}/custom-fields",
        "description": "Get the list of custom fields added to a task.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched custom fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of custom fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskCustomField"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/custom-fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/custom-fields/{custom_field_id}": {
      "get": {
        "operationId": "getTaskCustomField",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/custom-fields/{custom_field_id}",
        "description": "Get a custom field of a task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "custom_field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the custom field"
            },
            "example": "9nu8ue9wf8u9nusd9q"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched custom field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskCustomField"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskCustomField",
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/custom-fields/{custom_field_id}",
        "description": "Update a custom field of a task.\nYou can update the following types:  `text_field`, `multi_line_text_field`, `checkboxes`, `dropdown`, `multi_select_dropdown`, `multiple_choice`, `date_field`, `rich_text_field`\n",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "custom_field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the custom field"
            },
            "example": "9nu8ue9wf8u9nusd9q"
          }
        ],
        "requestBody": {
          "description": "Payload to update the custom field.\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskCustomFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated custom field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskCustomField"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/custom-fields/{custom_field_id}/choices": {
      "get": {
        "operationId": "listTaskCustomFieldChoices",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/custom-fields/{custom_field_id}/choices",
        "description": "Get the list of the choices of a custom field in a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "custom_field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the custom field"
            },
            "example": "9nu8ue9wf8u9nusd9q"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched custom field choices",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of custom field choices",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskCustomFieldChoiceListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/custom-fields/j90uv0sd9i0si09sdip/choices?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/fields": {
      "get": {
        "operationId": "listTaskFields",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET tasks/{task_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of a task. ",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FieldListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addFieldToTask",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST tasks/{task_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a field to a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to add a field to a task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectFieldCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Added field to a task.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectFieldCreateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/fields/{field_id}": {
      "put": {
        "operationId": "updateTaskField",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "PUT tasks/{taks_id}/fields/{field_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a field of a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "124p857f3i220y38ad6179e9"
          },
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field of the task"
            },
            "example": "124p857f3i220y38ad6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to update a field of a task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "The field of the task was updated."
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "removeTaskField",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "DELETE tasks/{task_id}/fields/{field_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Remove a field of a task. ",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field"
            },
            "example": "fa63cece6aa811efb70202420ac80016"
          }
        ],
        "responses": {
          "204": {
            "description": "The field is removed from the task"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}": {
      "get": {
        "operationId": "getTaskSubStep",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}",
        "description": "Get the substep of a task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched task substep information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSubStep"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskSubStep",
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}",
        "description": "Update a substep of a step in a task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update the substep",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskSubStepRequest"
              },
              "examples": {
                "is_in_progress": {
                  "summary": "Mark the substep as In Progress",
                  "value": {
                    "is_in_progress": true
                  }
                },
                "is_completed": {
                  "summary": "Mark the substep as completed",
                  "value": {
                    "is_completed": true
                  }
                },
                "assignee_id": {
                  "summary": "Change the assignee of the substep",
                  "value": {
                    "assignee_id": "5fdf31d57f0d0e362e2b5908"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Fetched task substep information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSubStep"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}": {
      "patch": {
        "operationId": "updateTaskStep",
        "x-experimental": true,
        "tags": [
          "Task Step"
        ],
        "summary": "PATCH /tasks/{task_id}/steps/{step_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a step in a task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update the step",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskStepRequest"
              },
              "examples": {
                "due_at": {
                  "summary": "Update the due date of the step",
                  "value": {
                    "due_at": "2025-10-06T13:00:00Z"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The updated step object",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskStep"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/external-work": {
      "get": {
        "operationId": "getTaskSubStepExternalWork",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/external-work",
        "description": "Get the external work information of a task external substep",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched external work information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskExternalWorkResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskSubStepExternalWork",
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/external-work",
        "description": "Update the external work information of a task external substep",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update the external work information",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskExternalWorkRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated external work information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskExternalWorkResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments": {
      "get": {
        "operationId": "listTaskSubStepComments",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments",
        "description": "Get the list of the comments of a task substep",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched task substep comments",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of substep comments",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskSubStepCommentResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/7d7f910551b00a722e0418830cee6612/steps/897f910551b00a722e0418830cee6612/sub-steps/700f910551b00a722e0418830cee6612/comments?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addCommentToTaskSubStep",
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments",
        "description": "Create a task substep comment",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to create substep comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentWithReplyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created task substep comment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSubStepCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/fields": {
      "get": {
        "operationId": "listTaskSubStepFields",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of a substep of a task. ",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/FieldTypeLabel"
                          },
                          {
                            "$ref": "#/components/schemas/FieldTypeDropdown"
                          },
                          {
                            "$ref": "#/components/schemas/FieldTypeRadio"
                          },
                          {
                            "$ref": "#/components/schemas/FieldTypeCheckbox"
                          }
                        ],
                        "discriminator": {
                          "propertyName": "type",
                          "mapping": {
                            "checkbox": "#/components/schemas/FieldTypeCheckbox",
                            "dropdown": "#/components/schemas/FieldTypeDropdown",
                            "label": "#/components/schemas/FieldTypeLabel",
                            "radio_button": "#/components/schemas/FieldTypeRadio"
                          }
                        }
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/7d7f910551b00a722e0418830cee6612/steps/897f910551b00a722e0418830cee6612/sub-steps/700f910551b00a722e0418830cee6612/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}": {
      "get": {
        "operationId": "getTaskSubStepComment",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}",
        "description": "Get a task substep comment",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          },
          {
            "name": "comment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the comment"
            },
            "example": "5fe3886c574b52a62a089237"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched task substep comment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSubStepCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskSubStepComment",
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}",
        "description": "Update a task substep comment",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          },
          {
            "name": "comment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the comment"
            },
            "example": "5fe3886c574b52a62a089237"
          }
        ],
        "requestBody": {
          "description": "Payload to update the substep comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskSubStepCommentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated task substep comment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSubStepCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteTaskSubStepComment",
        "tags": [
          "Tasks"
        ],
        "summary": "DELETE /tasks/{task_id}/steps/{step_id}/sub-steps/{sub_step_id}/comments/{comment_id}",
        "description": "Delete a task substep comment",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the step"
            },
            "example": "897f910551b00a722e0418830cee6612"
          },
          {
            "name": "sub_step_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the substep"
            },
            "example": "700f910551b00a722e0418830cee6612"
          },
          {
            "name": "comment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the comment"
            },
            "example": "5fe3886c574b52a62a089237"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted task substep comment"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{id}/assets": {
      "get": {
        "operationId": "listTaskAssets",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{id}/assets",
        "description": "Get the list of the assets or contents of a task",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched assets",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of assets",
                      "type": "array",
                      "items": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/TaskAssetResponse"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "library_asset_id": {
                                "type": "string",
                                "nullable": true,
                                "description": "Unique identifier of the corresponding library asset — the library asset this task asset was forked from, or the one it was released to.",
                                "example": "6a8b2c3d4e5f6071829a3b4c"
                              }
                            }
                          }
                        ]
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addAssetToTask",
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{id}/assets",
        "description": "This API allows you to add an asset to a task. There currently two mechanisms to add an asset - either by uploading an asset first and then calling this API (for only `images`, `videos`, and `raw files`), or by adding an asset from the library. The 'type' parameter in the request body will determine the mechanism used to add the asset. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to add an asset. There are two mechanisms for adding assets to a task:\n- `direct_upload` - An asset that has been uploaded using the [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) endpoint.\n- `fork_from_library` - This will fork an existing asset from the library to the task.\nThe `type` field is optional, and will default to `direct_upload` if not provided.\nNote: Renditions is currently not supported for library assets.\n",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskAssetRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created asset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskAssetResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/assets/{asset_id}/drafts": {
      "post": {
        "operationId": "addDraftToTaskAsset",
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/assets/{asset_id}/drafts",
        "description": "Add a new draft to a task asset. You can add a draft to only `images`, `videos`, and `raw files` type task assets. See [Upload assets](https://docs.developers.optimizely.com/content-marketing-platform/docs/upload-assets) to upload an asset draft.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "requestBody": {
          "description": "Payload to add a draft to an asset",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskAssetRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created draft",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskAssetDraftResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "get": {
        "operationId": "listTaskAssetDrafts",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/assets/{asset_id}/drafts",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of drafts on an asset of a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched drafts",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of drafts",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskAssetDraftListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets/5d7f910551b00a722e0418830cee6631/drafts?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance": {
      "get": {
        "operationId": "getTaskAssetDraftBrandCompliance",
        "x-experimental": true,
        "tags": [
          "Brand Compliance"
        ],
        "summary": "GET /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the brand compliance details of a draft of an asset of a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "draft_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the draft or `latest`. `latest` refers to the most recent draft of the asset within the task."
            },
            "examples": {
              "example1": {
                "value": "latest",
                "summary": "Set the value to \"latest\" to fetch the brand compliance details of the latest draft"
              },
              "example2": {
                "value": "6706efc7828cd6aaedbc0434139cd3e1",
                "summary": "Set a unique identifier of a draft"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Brand compliance details of the asset draft",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskAssetDraftBrandComplianceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "operationId": "updateTaskAssetDraftBrandCompliance",
        "x-experimental": true,
        "tags": [
          "Brand Compliance"
        ],
        "summary": "PUT /tasks/{task_id}/assets/{asset_id}/drafts/{draft_id}/brand-compliance",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update the brand compliance details of a draft of an asset of a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "draft_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the draft or `latest`. `latest` refers to the most recent draft of the asset within the task."
            },
            "examples": {
              "example1": {
                "value": "latest",
                "summary": "Set the value to \"latest\" to update the brand compliance details of the latest draft"
              },
              "example2": {
                "value": "6706efc7828cd6aaedbc0434139cd3e1",
                "summary": "Set a unique identifier of a draft"
              }
            }
          }
        ],
        "requestBody": {
          "description": "Payload to update the brand compliance",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskAssetDraftBrandComplianceRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Brand compliance details of the asset draft",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskAssetDraftBrandComplianceResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/assets/{asset_id}/comments": {
      "get": {
        "operationId": "listTaskAssetComments",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/assets/{asset_id}/comments",
        "description": "List all the comments for the latest version of a task asset.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "897f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "List of comments for the asset",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of comments",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TaskAssetCommentResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/7d7f910551b00a722e0418830cee6612/assets/897f910551b00a722e0418830cee6612/comments?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addCommentToTaskAsset",
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/assets/{asset_id}/comments",
        "description": "Add a comment to the latest version of a task asset. Supports adding comments to only **images**, **videos** and **raw files** type assets.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "897f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to add comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Added comment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskAssetCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/assets/{asset_id}/fields": {
      "get": {
        "operationId": "listTaskAssetFields",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/assets/{asset_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> List all the fields of a task asset.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "7d7f910551b00a722e0418830cee6612"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            },
            "example": "897f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fields for the asset",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AssetFieldListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/7d7f910551b00a722e0418830cee6612/assets/897f910551b00a722e0418830cee6612/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "put": {
        "operationId": "updateTaskAssetFields",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "PUT tasks/{task_id}/assets/{asset_id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Replace fields of an asset in a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task asset"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to replace the fields",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskAssetFieldsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Fields successfulled updated."
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{id}/attachments": {
      "get": {
        "operationId": "listTaskAttachments",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{id}/attachments",
        "description": "Get the list of the attachments of a task",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched attachments",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of attachments",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AttachmentResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/tasks/attachments?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/articles/{article_id}": {
      "get": {
        "operationId": "getTaskArticle",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/articles/{article_id}",
        "description": "Get an article associated with the task identified by `task_id`.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "article_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the article associated with the task"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched article",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskArticle"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/images/{image_id}": {
      "get": {
        "operationId": "getTaskImage",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/images/{image_id}",
        "description": "Get an image associated with the task identified by `task_id`.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "image_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the image associated with the task"
            },
            "example": "5d7f910551b00a722e0418830cee6632"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched image",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskImage"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/videos/{video_id}": {
      "get": {
        "operationId": "getTaskVideo",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/videos/{video_id}",
        "description": "Get a video associated with the task identified by task_id",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "video_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the video associated with the task"
            },
            "example": "5d7f910551b00a722e0418830cee6633"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched video",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskVideo"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/raw-files/{raw_file_id}": {
      "get": {
        "operationId": "getTaskRawFile",
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/raw-files/{raw_file_id}",
        "description": "Get a raw file associated with the task identified by `task_id`.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "raw_file_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the raw file associated with the task"
            },
            "example": "5d7f910551b00a722e0418830cee6634"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched raw file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskRawFile"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/comments": {
      "post": {
        "operationId": "addCommentToTask",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/comments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Post a comment on a task. ",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to add a comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created a comment for the task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/publishing-intents": {
      "post": {
        "operationId": "createTaskPublishingIntent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/publishing-intents",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a publishing intent for a task on the specified publishing channel.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "6a311afa4234a8b03875306c"
          }
        ],
        "requestBody": {
          "description": "Payload to create a publishing intent",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskPublishingIntentCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created publishing intent for the task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskPublishingIntentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/structured-contents": {
      "post": {
        "operationId": "addStructuredContentToTask",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/structured-contents",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a new structured content to task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to add a structured content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskStructuredContentCreateRequest"
              },
              "examples": {
                "simple": {
                  "summary": "Plain fields",
                  "value": {
                    "content_type_guid": "5d7f910551b00a722e0418830cee6633",
                    "root_content": true,
                    "title": "My Industry Page",
                    "fields": {
                      "title": [
                        {
                          "locale": "en_US",
                          "field_values": [
                            {
                              "text_value": "My Industry Page"
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "withReferenceField": {
                  "summary": "Reference field with new embedded items",
                  "description": "Set `has_embedded: true` and nest each new item's values under its own `fields`. The server assigns `content_guid`, `created_by`, etc.",
                  "value": {
                    "content_type_guid": "5d7f910551b00a722e0418830cee6633",
                    "root_content": true,
                    "title": "My Industry Page",
                    "fields": {
                      "has_embedded": true,
                      "painGains": [
                        {
                          "locale": "en_US",
                          "field_values": [
                            {
                              "content_details": {
                                "content_type_guid": "8a1c0e2f4b6d47e0a1b2c3d4e5f60718",
                                "root_content": false,
                                "title": "Faster onboarding",
                                "fields": {
                                  "title": [
                                    {
                                      "locale": "en_US",
                                      "field_values": [
                                        {
                                          "text_value": "Faster onboarding"
                                        }
                                      ]
                                    }
                                  ],
                                  "description": [
                                    {
                                      "locale": "en_US",
                                      "field_values": [
                                        {
                                          "rich_text_value": "<p>Cut ramp time in half.</p>"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              }
                            },
                            {
                              "content_details": {
                                "content_type_guid": "8a1c0e2f4b6d47e0a1b2c3d4e5f60718",
                                "root_content": false,
                                "title": "Lower total cost",
                                "fields": {
                                  "title": [
                                    {
                                      "locale": "en_US",
                                      "field_values": [
                                        {
                                          "text_value": "Lower total cost"
                                        }
                                      ]
                                    }
                                  ],
                                  "description": [
                                    {
                                      "locale": "en_US",
                                      "field_values": [
                                        {
                                          "rich_text_value": "<p>Consolidate tooling spend.</p>"
                                        }
                                      ]
                                    }
                                  ]
                                }
                              }
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentDetailsModel"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/structured-contents/{content_id}": {
      "get": {
        "operationId": "getTaskStructuredContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/structured-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a task structured content by its guid.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "5fe38c39574b52a62a089239"
          }
        ],
        "responses": {
          "200": {
            "description": "Structured content by Id for the task",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentDetailsModel"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskStructuredContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/structured-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update structured content using a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to update structured content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskStructuredContentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated structured content as response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentDetailsModel"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteTaskStructuredContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "DELETE /tasks/{task_id}/structured-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a structured content from task",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content"
            },
            "example": "ff3f8e024f0611ed993202420ac8001b"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the content"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/structured-contents/{content_id}/drafts": {
      "post": {
        "operationId": "createTaskStructuredContentDraft",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/structured-contents/{content_id}/drafts",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create structured content draft using a task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to create structured content drafts",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskStructuredContentDraftRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created structured content draft as response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": null
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/structured-contents/{content_id}/previews": {
      "post": {
        "operationId": "createTaskStructuredContentPreview",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/structured-contents/{content_id}/previews",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a preview URL to the latest version of a structured content in a task. The task must be neither archived nor completed.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the task",
            "schema": {
              "type": "string"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the structured content",
            "schema": {
              "type": "string"
            },
            "example": "1e7d1ebe28fd4378a0aa4cc300bc039e"
          }
        ],
        "requestBody": {
          "description": "Preview to add to the structured content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskStructuredContentPreviewCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Preview added"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/structured-contents/{content_id}/versions": {
      "get": {
        "operationId": "listTaskStructuredContentVersions",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/structured-contents/{content_id}/versions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of versions of a task structured content, newest first. These are the versions that CMP lists for the content.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the structured content"
            },
            "example": "a24b834428a043ab8caed1ded4606f7d"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of versions of the task structured content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskStructuredContentVersionListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/tasks/{task_id}/compose-contents": {
      "post": {
        "operationId": "createTaskComposeContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "POST /tasks/{task_id}/compose-contents",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a compose content in a task. The new content has no field values and the status `draft`. Returns 403 if Compose is not enabled for the organization, and 422 if the task is completed or archived.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          }
        ],
        "requestBody": {
          "description": "Payload to create a compose content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskComposeContentCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created compose content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskComposeContentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/tasks/{task_id}/compose-contents/{content_id}": {
      "get": {
        "operationId": "getTaskComposeContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "GET /tasks/{task_id}/compose-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a compose content of a task, with its current (draft) field values. Reference and embedded schema fields are returned as links only. An embedded child content can also be fetched by its own id when its parent content belongs to the task.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the compose content"
            },
            "example": "db5lh0dh7f0s1otndpp0"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched compose content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskComposeContentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateTaskComposeContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "PATCH /tasks/{task_id}/compose-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update the field values of a compose content of a task. The given fields are merged into the existing fields. Field values are checked against the content schema structure; value rules (`validations`) are not checked on update. Returns 422 if the task is completed or archived.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the compose content"
            },
            "example": "db5lh0dh7f0s1otndpp0"
          }
        ],
        "requestBody": {
          "description": "Payload to update a compose content",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskComposeContentUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated compose content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskComposeContentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteTaskComposeContent",
        "x-experimental": true,
        "tags": [
          "Tasks"
        ],
        "summary": "DELETE /tasks/{task_id}/compose-contents/{content_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Remove a compose content from a task. The content is not deleted from Compose, and references to it from other content are not checked. Returns 422 if the task is completed or archived.",
        "parameters": [
          {
            "name": "task_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the task"
            },
            "example": "645cb61c966d0c591320f636"
          },
          {
            "name": "content_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the compose content"
            },
            "example": "db5lh0dh7f0s1otndpp0"
          }
        ],
        "responses": {
          "204": {
            "description": "Removed the compose content from the task"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/milestones": {
      "get": {
        "operationId": "listMilestones",
        "x-experimental": true,
        "tags": [
          "Milestones"
        ],
        "summary": "GET /milestones",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of milestones.",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "query",
            "schema": {
              "type": "string",
              "nullable": true,
              "description": "Filter milestones by campaign association. When a campaign ID is provided, returns only milestones associated with that campaign. When explicitly set to `null`, returns only milestones not associated with any campaign. When omitted, returns all milestones regardless of campaign association."
            },
            "example": "63f1c2b675be4132854d2742"
          },
          {
            "name": "due_date__from",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Filter milestones with due date from this date, in ISO 8601 UTC format"
            },
            "example": "2023-10-01T00:00:00Z"
          },
          {
            "name": "due_date__to",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "description": "Filter milestones with due date up to this date, in ISO 8601 UTC format"
            },
            "example": "2023-10-31T23:59:59Z"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched milestones",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of milestones",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MilestoneResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/milestones?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createMilestone",
        "x-experimental": true,
        "tags": [
          "Milestones"
        ],
        "summary": "POST /milestones",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Creates a milestone. Defaults to the organization's campaign if campaign_id is omitted. Tasks are validated against the selected campaign and must belong to it.",
        "requestBody": {
          "description": "Payload to create a milestone",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MilestoneCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created milestone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/milestones/{id}": {
      "get": {
        "operationId": "getMilestone",
        "x-experimental": true,
        "tags": [
          "Milestones"
        ],
        "summary": "GET /milestones/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a milestone by ID.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the milestone"
            },
            "example": "63f1c2b675be4132854d2741"
          }
        ],
        "responses": {
          "200": {
            "description": "Details of the milestone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateMilestone",
        "x-experimental": true,
        "tags": [
          "Milestones"
        ],
        "summary": "PATCH /milestones/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Updates a milestone. All fields are optional. Only provided fields will be updated. Note: If tasks array is empty, it will remove all task associations for that milestone.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the milestone"
            },
            "example": "63f1c2b675be4132854d2741"
          }
        ],
        "requestBody": {
          "description": "Payload to update a milestone",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MilestoneUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated milestone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MilestoneResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/campaigns": {
      "get": {
        "operationId": "listCampaigns",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "GET /campaigns",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of campaigns.",
        "parameters": [
          {
            "name": "owner",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Owner ID of the campaign"
            },
            "example": "127a32121da23c3a543"
          },
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Start date of the campaign, in ISO 8601 UTC format"
            },
            "example": "2022-08-24T00:00:00.000Z"
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "End date of the campaign, in ISO 8601 UTC format"
            },
            "example": "2022-08-24T00:00:00.000Z"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched campaigns",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of campaigns",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CampaignListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/campaigns?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createCampaign",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "POST /campaigns",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a campaign",
        "requestBody": {
          "description": "Payload to create a campaign",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CampaignCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created campaign",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/campaigns/{id}": {
      "get": {
        "operationId": "getCampaign",
        "tags": [
          "Campaigns"
        ],
        "summary": "GET /campaigns/{id}",
        "description": "Get a campaign",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "8q7f910551b00a722e0418830cee6612"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched campaign",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateCampaign",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "PATCH /campaigns/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a campaign ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "8q7f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update the campaign",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CampaignUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Campaign updated"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/campaigns/{id}/comments": {
      "post": {
        "operationId": "addCommentToCampaign",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "POST /campaigns/{id}/comments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Post a comment on a campaign. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to add a comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created a comment for the campaign",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/campaigns/{id}/fields": {
      "get": {
        "operationId": "listCampaignFields",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "GET campaigns/{id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of a campaign. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FieldListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addFieldToCampaign",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "POST campaigns/{id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a field to a campaign.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to add a field to a campaign",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ObjectFieldCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Added field to a campaign.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ObjectFieldCreateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/campaigns/{id}/brief": {
      "get": {
        "operationId": "getCampaignBrief",
        "tags": [
          "Campaigns"
        ],
        "summary": "GET /campaigns/{id}/brief",
        "description": "Get brief of the campaign",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched brief of the campaign",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignBriefResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/campaigns/{id}/attachments": {
      "post": {
        "operationId": "addAttachmentToCampaign",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "POST /campaigns/{id}/attachments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add an attachment to the campaign. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to add an attachment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Attachment added to the campaign",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/campaigns/{campaign_id}/fields/{field_id}": {
      "put": {
        "operationId": "updateCampaignField",
        "x-experimental": true,
        "tags": [
          "Campaigns"
        ],
        "summary": "PUT /campaigns/{campaign_id}/fields/{field_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update the field value of a campaign. ",
        "parameters": [
          {
            "name": "campaign_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the campaign"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field of the campaign"
            },
            "example": "4f857f30e1c4a2038d6179e7"
          }
        ],
        "requestBody": {
          "description": "Payload to update the field value",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CampaignFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated the campaign field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignFieldUpdateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/publishing-channels": {
      "get": {
        "operationId": "listPublishingChannels",
        "x-experimental": true,
        "tags": [
          "Publishing"
        ],
        "summary": "GET /publishing-channels",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of publishing channels available in the organization. Use this to populate a channel picker before creating a publishing intent for a task.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Number of results to return per page",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            },
            "example": 15
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched publishing channels",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingChannelListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/publishing-events/{publishing_event_id}": {
      "get": {
        "operationId": "getPublishingEvent",
        "tags": [
          "Publishing"
        ],
        "summary": "GET /v3/publishing-events/{publishing_event_id}",
        "description": "Get the publishing event by ID",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched publishing event",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingEventResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/publishing-events/{publishing_event_id}/progress-updates": {
      "post": {
        "operationId": "createPublishingEventProgressUpdate",
        "tags": [
          "Publishing"
        ],
        "summary": "POST /v3/publishing-events/{publishing_event_id}/progress-updates",
        "description": "Post a progress update describing what is happening while a publishing event is being processed, so that CMP can show it to the user.",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          }
        ],
        "requestBody": {
          "description": "Progress update to post against the publishing event",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishingEventProgressUpdateCreateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Progress update posted"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "get": {
        "operationId": "listPublishingEventProgressUpdates",
        "tags": [
          "Publishing"
        ],
        "summary": "GET /v3/publishing-events/{publishing_event_id}/progress-updates",
        "description": "Get the progress updates posted for a publishing event, newest first.",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "name": "page_size",
            "in": "query",
            "description": "Number of results to return per page",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 10
            },
            "example": 15
          }
        ],
        "responses": {
          "200": {
            "description": "List of posted progress updates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingEventProgressUpdateListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/publishing-events/{publishing_event_id}/publishing-metadata": {
      "get": {
        "operationId": "listPublishingEventMetadata",
        "tags": [
          "Publishing"
        ],
        "summary": "GET /v3/publishing-events/{publishing_event_id}/publishing-metadata",
        "description": "Get the list of publishing metadata for each asset of a publishing event.",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Publishing status of the asset",
            "schema": {
              "type": "string",
              "enum": [
                "published",
                "unpublished",
                "synced",
                "failed"
              ]
            },
            "example": "published"
          },
          {
            "name": "asset_type",
            "in": "query",
            "required": false,
            "description": "Type of asset",
            "schema": {
              "type": "string",
              "enum": [
                "article",
                "image",
                "video",
                "raw_file",
                "structured_content"
              ]
            },
            "example": "article"
          },
          {
            "name": "asset_id",
            "in": "query",
            "required": false,
            "description": "Unique identifier of the asset.",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          {
            "name": "locale",
            "in": "query",
            "required": false,
            "description": "The locale to which the asset is being published to.",
            "schema": {
              "type": "string"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "List of Fetched publishing metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingEventMetadataListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "bulkCreatePublishingEventMetadata",
        "tags": [
          "Publishing"
        ],
        "summary": "POST /v3/publishing-events/{publishing_event_id}/publishing-metadata",
        "description": "Create asset metadata in bulk.",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          }
        ],
        "requestBody": {
          "description": "Payload to create publishing metadata for all assets in a publishing event",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublishingEventMetadataBulkCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Fetched all publishing metadata associated with the publishing event",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingEventMetadataBulkCreateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/publishing-events/{publishing_event_id}/assets/{asset_id}/publishing-metadata/{publishing_metadata_id}": {
      "get": {
        "operationId": "getPublishingEventAssetMetadata",
        "tags": [
          "Publishing"
        ],
        "summary": "GET v3/publishing-events/{publishing_event_id}/assets/{asset_id}/publishing-metadata/{publishing_metadata_id}",
        "description": "Get publishing metadata.",
        "parameters": [
          {
            "name": "publishing_event_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing event",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the asset",
            "schema": {
              "type": "string"
            },
            "example": "1d9d8aeca10811ebbc640242ac12003c"
          },
          {
            "name": "publishing_metadata_id",
            "in": "path",
            "required": true,
            "description": "Unique identifier of the publishing metadata",
            "schema": {
              "type": "string"
            },
            "example": "5ebcd5644967474414564"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched publishing metadata",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublishingEventMetadataResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/templates": {
      "get": {
        "operationId": "listTemplates",
        "x-experimental": true,
        "tags": [
          "Templates"
        ],
        "summary": "GET /templates",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of templates.",
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Case insensitive search term to filter templates by their title"
            },
            "example": "Kangaroo"
          },
          {
            "name": "applicable_to",
            "in": "query",
            "schema": {
              "type": "string",
              "enum": [
                "work_request",
                "task_brief",
                "campaign_brief"
              ],
              "description": "Application criteria to filter by"
            },
            "example": "work_request"
          },
          {
            "name": "include_inactive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false,
              "description": "Indicate whether to include templates that are marked as inactive"
            },
            "example": true
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched templates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/templates/{template_id}": {
      "get": {
        "operationId": "getTemplate",
        "x-experimental": true,
        "tags": [
          "Templates"
        ],
        "summary": "GET /templates/{template_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a template by ID. ",
        "parameters": [
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the template"
            },
            "example": "9119a313057e401189407116fcd3aa24"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched template",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TemplateResponse"
                },
                "example": {
                  "id": "9119a313057e401189407116fcd3aa24",
                  "is_active": true,
                  "title": "Sample Template Title",
                  "description": "Sample Desciption",
                  "applicable_to": [
                    "campaign_brief",
                    "task_brief",
                    "work_request"
                  ],
                  "form_fields": [
                    {
                      "identifier": "attachment",
                      "label": "Attach a file...",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 0,
                      "type": "file",
                      "type_specific_meta": null,
                      "logic_rules": [
                        {
                          "condition": {
                            "operator": "any_of",
                            "values": [
                              "4a8b901e9fd911ecbefa0242ac160019"
                            ]
                          },
                          "action": {
                            "target_field": {
                              "identifier": "70ca0e8a954911ecb4be0242ac160014"
                            },
                            "type": "show_values",
                            "values": [
                              "73e05aa2b5d311eca17f0242ac160019"
                            ]
                          }
                        }
                      ]
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Select publish destination",
                      "helper_text": "Sample helper text",
                      "is_required": true,
                      "is_readonly": false,
                      "sort_order": 1,
                      "type": "dropdown",
                      "type_specific_meta": {
                        "is_multi_select": false,
                        "choices": [
                          {
                            "id": "62553abbb7def00b4e60ded5",
                            "name": "Sample Dropdown Field Choice"
                          }
                        ]
                      },
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Input value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 2,
                      "type": "simple_number",
                      "type_specific_meta": {
                        "decimal_places": 3,
                        "has_thousand_separator": false
                      },
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Input value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 3,
                      "type": "percentage_number",
                      "type_specific_meta": {
                        "decimal_places": 3
                      },
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Input value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 4,
                      "type": "currency_number",
                      "type_specific_meta": {
                        "decimal_places": 2,
                        "currency_code": "USD",
                        "has_thousand_separator": true
                      },
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Input value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 5,
                      "type": "richtext",
                      "type_specific_meta": null,
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "Another section",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": true,
                      "sort_order": 5,
                      "type": "section",
                      "type_specific_meta": null,
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "select value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 7,
                      "type": "radio_button",
                      "type_specific_meta": {
                        "is_multi_select": false,
                        "choices": [
                          {
                            "id": "62553abbb7def00b4e60ded5",
                            "name": "Sample MultiChoice Field Choice"
                          }
                        ]
                      },
                      "logic_rules": []
                    },
                    {
                      "identifier": "73e05aa2b54nda3c320242ac1d5291",
                      "label": "select value",
                      "helper_text": "Sample helper text",
                      "is_required": false,
                      "is_readonly": false,
                      "sort_order": 8,
                      "type": "label",
                      "type_specific_meta": {
                        "is_multi_select": false,
                        "choices": [
                          {
                            "id": "9119a313057e401189407116fcd3",
                            "name": "Sample Label"
                          }
                        ]
                      },
                      "logic_rules": []
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/userlist": {
      "get": {
        "operationId": "listUsers",
        "tags": [
          "Users"
        ],
        "summary": "GET /userlist",
        "description": "Get list of users.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of users",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/users": {
      "get": {
        "operationId": "findUserByEmail",
        "tags": [
          "Users"
        ],
        "summary": "GET /users",
        "description": "Find a user by email address",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Email address of the user"
            },
            "example": "john.doe@example.com"
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect to the discovered user",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string"
                },
                "description": "URL of the discovered user",
                "example": "https://api.cmp.optimizely.com/v3/users/5fe4925ef8a9378056bf4e37"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "operationId": "getUser",
        "tags": [
          "Users"
        ],
        "summary": "GET /users/{id}",
        "description": "Get a user",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the user"
            },
            "example": "5fe4925ef8a9378056bf4e37"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched user",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests": {
      "get": {
        "operationId": "listWorkRequests",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of work requests. ",
        "parameters": [
          {
            "name": "created_by",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the creator of the work requests. You can append multiple times, for example `created_by=creator1&created_by=creator2`."
            },
            "example": [
              "1265ca474ba987cc925164aa7",
              "606995f714ace404593cce4c"
            ]
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Status of a work request. You can append multiple times, for example `status=Submitted&status=Declined`",
              "enum": [
                "Submitted",
                "Accepted",
                "Completed",
                "Declined"
              ]
            },
            "example": [
              "Accepted",
              "Submitted"
            ]
          },
          {
            "name": "order_by",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Ordering parameter of the work requests.",
              "enum": [
                "priority",
                "status",
                "created_at",
                "due_date"
              ]
            },
            "example": "due_date"
          },
          {
            "name": "order_as",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Sorting order of the work requests.",
              "enum": [
                "asc",
                "desc"
              ]
            },
            "example": "desc"
          },
          {
            "name": "template_ids",
            "in": "query",
            "description": "Unique identifiers of the templates. You can append multiple times, for example `template_ids=template1&template_ids=template2`.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": [
              "1265ca474ba987cc925164aa7",
              "606995f714ace404593cce4c"
            ]
          },
          {
            "name": "created_at__from",
            "in": "query",
            "required": false,
            "description": "Date and time as the lower limit to filter work requests by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-11-30T13:32:44Z"
          },
          {
            "name": "created_at__to",
            "in": "query",
            "required": false,
            "description": "Date and time as the upper limit to filter work requests by `created_at`, in ISO 8601 UTC format",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "example": "2018-12-31T23:59:59Z"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched work requests",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of work requests",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkRequestResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/work-requests?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a work request. ",
        "operationId": "createWorkRequest",
        "x-experimental": true,
        "requestBody": {
          "description": "Payload to create a work request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequestCreateRequest"
              },
              "example": {
                "template_id": "5c89aebe611eca11302420af",
                "assignees": [
                  "74ba987cc9251689abc123"
                ],
                "form_fields": [
                  {
                    "identifier": "title",
                    "type": "text",
                    "values": [
                      "Some title"
                    ]
                  },
                  {
                    "identifier": "brief",
                    "type": "brief",
                    "values": [
                      {
                        "type": "attachment_brief",
                        "value": {
                          "key": "10d5c89aebe611eca11302420ac80002",
                          "name": "Attachment"
                        }
                      }
                    ]
                  },
                  {
                    "identifier": "630c486a90546926f034ea28",
                    "type": "richtext",
                    "values": [
                      "<b>rich</b> text"
                    ]
                  },
                  {
                    "identifier": "630c479690546926f034ea13",
                    "type": "label",
                    "values": [
                      "630c479690546926f034ea15"
                    ]
                  },
                  {
                    "identifier": "630c47be90546926f034ea17",
                    "type": "dropdown",
                    "values": [
                      "630c47be90546926f034ea18"
                    ]
                  },
                  {
                    "identifier": "630c482b90546926f034ea22",
                    "type": "simple_number",
                    "values": [
                      1234.345678
                    ]
                  },
                  {
                    "identifier": "630c484b90546926f034ea23",
                    "type": "percentage_number",
                    "values": [
                      23
                    ]
                  },
                  {
                    "identifier": "630c481b90546926f034ea21",
                    "type": "currency_number",
                    "values": [
                      123.56
                    ]
                  },
                  {
                    "identifier": "630c485e90546926f034ea24",
                    "type": "checkbox",
                    "values": [
                      "630c485e90546926f034ea25"
                    ]
                  },
                  {
                    "identifier": "630c47d290546926f034ea1b",
                    "type": "radio_button",
                    "values": [
                      "630c47d290546926f034ea1c"
                    ]
                  },
                  {
                    "identifier": "creative_assets",
                    "type": "file",
                    "values": [
                      {
                        "key": "creative-asset-key-1",
                        "name": "Creative Asset 1"
                      },
                      {
                        "key": "creative-asset-key-2",
                        "name": "Creative Asset 2"
                      }
                    ]
                  },
                  {
                    "identifier": "due_date",
                    "type": "date",
                    "values": [
                      "2022-02-20T12:02:03.000000Z"
                    ]
                  },
                  {
                    "identifier": "media_links",
                    "type": "text_area",
                    "values": [
                      "some text\nmore text"
                    ]
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/work-requests/{id}": {
      "get": {
        "operationId": "getWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a work request by ID. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "9119a313057e401189407116fcd3aa24"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "PATCH /work-requests/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Updates a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "9119a313057e401189407116fcd3aa24"
          }
        ],
        "requestBody": {
          "description": "Payload to update the work request",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequestUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Work request updated"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/work-requests/{id}/comments": {
      "get": {
        "operationId": "listWorkRequestComments",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests/{id}/comments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get list of comments for a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of comments for the work request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of work request comments",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkRequestCommentResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/work-requests/da80cfd7bbf84959a8a981acbad996b3/comments?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "addCommentToWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests/{id}/comments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Post a comment on a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to add comment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CommentWithReplyCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created comment for the work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{work_request_id}/comments/{comment_id}": {
      "get": {
        "operationId": "getWorkRequestComment",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests/{work_request_id}/comments/{comment_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a work request comment by ID.",
        "parameters": [
          {
            "name": "work_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "name": "comment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request comment"
            },
            "example": "5fe38c39574b52a62a089239"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched work request comment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestCommentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{id}/attachments": {
      "post": {
        "operationId": "addAttachmentToWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests/{id}/attachments",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create attachments for a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to create an attachment",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created attachment for the work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{work_request_id}/attachments/{attachment_id}": {
      "delete": {
        "operationId": "deleteWorkRequestAttachment",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "DELETE /work-requests/{work_request_id}/attachments/{attachment_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a work request attachment.",
        "parameters": [
          {
            "name": "work_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "7674a2a69f8d4eb48e8d4dafaebc7238"
          },
          {
            "name": "attachment_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request attachment"
            },
            "example": "62f2052962f36e010b9471f1"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the attachment"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/work-requests/{id}/creative-assets": {
      "post": {
        "operationId": "createWorkRequestCreativeAsset",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests/{id}/creative-assets",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create creative assets for a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to create creative assets",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreativeAssetRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created creative asset for the work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreativeAssetResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{work_request_id}/creative-assets/{creative_asset_id}": {
      "delete": {
        "operationId": "deleteWorkRequestCreativeAsset",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "DELETE /work-requests/{work_request_id}/creative-assets/{creative_asset_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a work request creative asset.",
        "parameters": [
          {
            "name": "work_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "7674a2a69f8d4eb48e8d4dafaebc7238"
          },
          {
            "name": "creative_asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request creative asset"
            },
            "example": "209d2d281e2b11edbac602420ac80012"
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted the creative asset"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/work-requests/{id}/approved-assets": {
      "get": {
        "operationId": "listWorkRequestApprovedAssets",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests/{id}/approved-assets",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of approved assets of a work request.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of approved assets for the work request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of work request approved assets",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkRequestApprovedAssetResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/work-requests/da80cfd7bbf84959a8a981acbad996b3/approved-assets?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{id}/campaigns": {
      "post": {
        "operationId": "createCampaignFromWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests/{id}/campaigns",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a new campaign from a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to create a campaign",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequestCampaignRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created a campaign from a work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestCampaignResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/work-requests/{id}/tasks": {
      "post": {
        "operationId": "createTaskFromWorkRequest",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "POST /work-requests/{id}/tasks",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a new task from a work request. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        ],
        "requestBody": {
          "description": "Payload to create a task",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequestTaskRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created a task from a work request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestTaskResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/work-requests/{id}/related-resources": {
      "get": {
        "operationId": "listWorkRequestRelatedResources",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "GET /work-requests/{id}/related-resources",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of work request related resources.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched work request related resources",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of work request related resources",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkRequestRelatedResourceResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/related-resources?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/work-requests/{work_request_id}/form-fields/{form_field_identifier}": {
      "put": {
        "operationId": "updateWorkRequestFormField",
        "x-experimental": true,
        "tags": [
          "Work Requests"
        ],
        "summary": "PUT /work-requests/{work_request_id}/form-fields/{form_field_identifier}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Updates a work request form field.",
        "parameters": [
          {
            "name": "work_request_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request"
            },
            "example": "7674a2a69f8d4eb48e8d4dafaebc7238"
          },
          {
            "name": "form_field_identifier",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the work request form field"
            },
            "example": "209d2d281e2b11edbac602420ac80012"
          }
        ],
        "requestBody": {
          "description": "Payload to update the work request form field",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkRequestFormFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated work request form field",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkRequestRequestFormFieldUpdateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/structured-content/content-types": {
      "get": {
        "operationId": "listSCContentTypes",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get content types. ",
        "parameters": [
          {
            "required": false,
            "schema": {
              "type": "string",
              "description": "Source of the content type"
            },
            "name": "source",
            "in": "query"
          },
          {
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true,
              "description": "Disabled status of the content type"
            },
            "name": "disabled",
            "in": "query"
          },
          {
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ContentTypeListingOption",
              "default": "3"
            },
            "name": "list",
            "in": "query"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseContentTypeModel"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createSCContentType",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create content type. ",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentTypeCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeCreateResponse"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "headers": {
              "Location": {
                "description": "URL to get the created resource",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeCreateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}": {
      "get": {
        "operationId": "getSCContentType",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types/{content_type_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get content type. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type"
            },
            "name": "content_type_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentType"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "updateSCContentType",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types/{content_type_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update content type. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type"
            },
            "name": "content_type_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentTypeUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeUpdateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/versions": {
      "get": {
        "operationId": "listSCContentTypeVersions",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types/{content_type_id}/versions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get content type versions. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type"
            },
            "name": "content_type_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BaseContentTypeVersionModel"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createSCContentTypeVersion",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types/{content_type_id}/versions",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add Content Type Version. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type"
            },
            "name": "content_type_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentTypeVersionCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeCreateResponse"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "headers": {
              "Location": {
                "description": "URL to get the created resource",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeCreateResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/versions/{version_id}": {
      "get": {
        "operationId": "getSCContentTypeVersion",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types/{content_type_id}/versions/{version_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get content type version. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type"
            },
            "name": "content_type_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type version"
            },
            "name": "version_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeVersion"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/contents/{content_id}/migration": {
      "post": {
        "operationId": "migrateSCContent",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/contents/{content_id}/migration",
        "description": "Migrate content to a specific content type version. <span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span>",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content"
            },
            "name": "content_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentMigrationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "created": {
                      "type": "boolean",
                      "description": "Whether the version was created or not"
                    },
                    "content_guid": {
                      "type": "string",
                      "description": "The identifier of the content"
                    },
                    "version_guid": {
                      "type": "string",
                      "description": "The identifier of the content version"
                    },
                    "content_hash": {
                      "type": "string",
                      "description": "The hashed fingerprint of the content version"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/ClientError"
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge": {
      "post": {
        "operationId": "acknowledgeSCContentPreview",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/acknowledge",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Acknowledge content preview. Content preview can be acknowledged only once. So make sure you are acknowledging only the content previews targeted for your integration. Otherwise it will stall acknowledgment from other integrations.",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content"
            },
            "name": "content_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content version"
            },
            "name": "version_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content version preview"
            },
            "name": "preview_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentPreviewAcknowledgeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete": {
      "post": {
        "operationId": "completeSCContentPreview",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/contents/{content_id}/versions/{version_id}/previews/{preview_id}/complete",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Complete content preview. ",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content"
            },
            "name": "content_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content version"
            },
            "name": "version_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content version preview"
            },
            "name": "preview_id",
            "in": "path"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentPreviewCompleteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/managed-migrations": {
      "post": {
        "operationId": "createSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types/{content_type_id}/managed-migrations",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create a new managed migration job.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentTypeManagedMigrationCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "created": {
                      "type": "boolean",
                      "description": "False if the managed migration job is not created."
                    }
                  },
                  "required": [
                    "created"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "created": {
                      "type": "boolean",
                      "description": "True if the managed migration job is created."
                    },
                    "job_id": {
                      "type": "string",
                      "description": "The ID of the created managed migration job."
                    }
                  },
                  "required": [
                    "created"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "get": {
        "operationId": "listSCContentTypeManagedMigrations",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types/{content_type_id}/managed-migrations",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Retrieves a list of managed migration jobs for a specific content type.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          },
          {
            "name": "content_migration_summary",
            "in": "query",
            "required": false,
            "description": "Whether include a summary of content migration status (total, not started, succeeded, errored).",
            "example": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Pagination offset (number of jobs to skip).",
            "example": 10,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Pagination limit (number of jobs to return).",
            "example": 25,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of managed migration jobs for the content type.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SCContentTypeManagedMigrationResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start": {
      "post": {
        "operationId": "startSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}/start",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Start managed migration job.",
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "content type id."
            },
            "name": "content_type_id",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the job."
            },
            "name": "job_id",
            "in": "path"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response with started=true",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeManagedMigrationStartResponse"
                },
                "example": {
                  "started": true,
                  "job_id": "sample_job_id"
                }
              }
            }
          },
          "400": {
            "description": "Error response when job found by job_id but job status is invalid (status not in [error or not_started])",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPException"
                },
                "example": {
                  "detail": "No Job found for job_id: {job_id} and instance_id: {instance_id} with status not_started or error"
                }
              }
            }
          },
          "404": {
            "description": "Error response when no job found by job_id with status not_started, error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPException"
                },
                "example": {
                  "message": "No Job found for job_id: {job_id} and instance_id: {instance_id}."
                }
              }
            }
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/managed-migrations/{job_id}": {
      "get": {
        "operationId": "getSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "GET /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get details of a specific managed migration job.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          },
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "The ID of the managed migration job."
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SCContentTypeManagedMigrationResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "description": "The error message."
                    }
                  }
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "updateSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "PATCH /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a managed migration job.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          },
          {
            "name": "job_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the managed migration job."
            }
          }
        ],
        "requestBody": {
          "description": "Payload for default field values.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Default values for the managed migration job content.",
                "additionalProperties": false,
                "properties": {
                  "default_values": {
                    "$ref": "#/components/schemas/LocalizedFieldValues"
                  }
                },
                "required": [
                  "default_values"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "updated": {
                      "type": "boolean",
                      "description": "True if the managed migration job is updated."
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "DELETE /structured-content/content-types/{content_type_id}/managed-migrations/{job_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a managed migration job with not_started status.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          },
          {
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the managed migration job."
            },
            "name": "job_id",
            "in": "path"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/structured-content/content-types/{content_type_id}/managed-migrations/validate": {
      "post": {
        "operationId": "validateSCContentTypeManagedMigration",
        "x-experimental": true,
        "tags": [
          "Structured Contents"
        ],
        "summary": "POST /structured-content/content-types/{content_type_id}/managed-migrations/validate",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Check managed migration possible or not.",
        "parameters": [
          {
            "name": "content_type_id",
            "in": "path",
            "required": true,
            "example": "645cb61c966d0c591320f636",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the content type."
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SCContentTypeManagedMigrationValidateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "is_managed_migration_possible": {
                      "type": "boolean",
                      "description": "False if the managed migration not possible"
                    }
                  },
                  "required": [
                    "is_managed_migration_possible"
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Error response when no content type found by content_type_id and instance_id",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "detail": {
                      "type": "string",
                      "description": "error message details"
                    }
                  },
                  "required": [
                    "detail"
                  ]
                },
                "example": {
                  "detail": "Could not find the content type"
                }
              }
            }
          }
        }
      }
    },
    "/asset-urls/{asset_id}": {
      "get": {
        "operationId": "getAssetUrl",
        "tags": [
          "Assets"
        ],
        "summary": "GET /asset-urls/{asset_id}",
        "description": "Find URL of an asset by ID",
        "parameters": [
          {
            "name": "asset_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the asset"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect to the discovered asset URL",
            "headers": {
              "Location": {
                "schema": {
                  "type": "string"
                },
                "description": "URL of the discovered asset",
                "example": "https://api.cmp.optimizely.com/v3/raw-files/5fe4925ef8a9378056bf4e37"
              },
              "X-Resource-Location": {
                "schema": {
                  "type": "string",
                  "enum": [
                    "library",
                    "task"
                  ]
                },
                "description": "Location of the asset",
                "example": "library"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/teams": {
      "get": {
        "operationId": "listTeams",
        "x-experimental": true,
        "tags": [
          "Teams"
        ],
        "summary": "GET /teams",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of teams.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched teams",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of teams",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Team"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/teams?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/teams/{id}": {
      "get": {
        "operationId": "getTeam",
        "x-experimental": true,
        "tags": [
          "Teams"
        ],
        "summary": "GET /teams/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a team. ",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the team"
            },
            "example": "5d7f910551b00a722e0418830cee6633"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched the team",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamWithUsers"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/settings": {
      "get": {
        "operationId": "getSettings",
        "x-experimental": true,
        "tags": [
          "Settings"
        ],
        "summary": "GET /settings",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get settings.",
        "responses": {
          "200": {
            "description": "Fetched settings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Settings"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "updateSettings",
        "x-experimental": true,
        "tags": [
          "Settings"
        ],
        "summary": "POST /settings",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create or update settings.\n## Import behavior:\n- Label:\n    - If a label-group with the same name exists, the label-group is updated.\n      - Labels are merged.\n      - If a label with the same name exists, it is overwritten.\n    - If no label-group with the same name exists, a new label-group is created.\n- Custom Fields:\n    - If a custom field with the same name exists, the custom field is updated and its choices are merged.\n    - If no custom field with the same name exists, a new custom field will be created.\n- Workflows:\n    - If the query param overwrite_workflows=true the existing workflows are overwritten.\n      Otherwise, a new workflow will be created where the prefix `Copy of` is added to the name of the workflow.\n- Webhooks:\n    - If a webhook with the same name exists, the webhook is updated and its events are merged.\n    - If multiple webhooks with the same name exist, a new webhook is created.\n    - If no webhook with the same name exists, a new webhook is created.\n- Apps:\n    - If an app with the same name exists, the app is updated and its authorization callback URLs are merged.\n    - If multiple apps with the same name exist, a new app is created.\n    - If no app with the same name exists, a new app is created.\n- Templates:\n    - If a template with the same name exists, the template is updated.\n    - If multiple templates with the same name exist, a new template is created.\n    - If no template with the same name exists, a new template is created.\n- Routing Rules:\n    - If one single routing rule with the same name exists, the routing rule is updated.\n    - If multiple routing rules with the same name exist, a new routing rule is created.\n    - If no routing rule with the same name exists, a new routing rule is created.\n",
        "parameters": [
          {
            "name": "execute",
            "in": "query",
            "required": false,
            "description": "If `execute=true` the settings are created or updated. Otherwise, the endpoint returns only the changeset.",
            "schema": {
              "type": "boolean"
            },
            "example": true
          },
          {
            "name": "overwrite_workflows",
            "in": "query",
            "required": false,
            "description": "If `overwrite_workflows=true` the existing workflows are overwritten. Otherwise, a new workflow is created where a prefix `Copy of` is added to the workflow's name.",
            "schema": {
              "type": "boolean"
            },
            "example": true
          }
        ],
        "requestBody": {
          "description": "Payload to create or update settings",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsResources"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Created or updated settings and changeset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingsUpdateResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/workflows": {
      "get": {
        "operationId": "listWorkflows",
        "x-experimental": true,
        "tags": [
          "Workflows"
        ],
        "summary": "GET /workflows",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of workflows.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched workflows",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of workflows",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WorkflowListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/workflows?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/workflows/{workflow_id}": {
      "get": {
        "operationId": "getWorkflow",
        "x-experimental": true,
        "tags": [
          "Workflows"
        ],
        "summary": "GET /workflows/{workflow_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a workflow by ID.",
        "parameters": [
          {
            "name": "workflow_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the workflow"
            },
            "example": "5fe4925ef8a9378056bf4e37"
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched workflow",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/fields": {
      "get": {
        "operationId": "listFields",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "GET /fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of an Organization.",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field. Can be appended multiple times, such as `ids=fieldId1&ids=fieldId2`"
            },
            "example": "12p5ca474ba9i7cc92y164aa7"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/BaseSettingsFieldsResponse"
                          },
                          {
                            "$ref": "#/components/schemas/LabelTypeSettingsFieldResponse"
                          },
                          {
                            "$ref": "#/components/schemas/DropdownTypeSettingsFieldResponse"
                          },
                          {
                            "$ref": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldResponse"
                          },
                          {
                            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldResponse"
                          },
                          {
                            "$ref": "#/components/schemas/CurrencyNumberTypeSettingsFieldResponse"
                          }
                        ],
                        "discriminator": {
                          "propertyName": "type",
                          "mapping": {
                            "checkbox": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldResponse",
                            "currency_number": "#/components/schemas/CurrencyNumberTypeSettingsFieldResponse",
                            "date": "#/components/schemas/BaseSettingsFieldsResponse",
                            "dropdown": "#/components/schemas/DropdownTypeSettingsFieldResponse",
                            "image": "#/components/schemas/BaseSettingsFieldsResponse",
                            "label": "#/components/schemas/LabelTypeSettingsFieldResponse",
                            "percentage_number": "#/components/schemas/GenericNumberTypeSettingsFieldResponse",
                            "radio_button": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldResponse",
                            "rich_text": "#/components/schemas/BaseSettingsFieldsResponse",
                            "simple_number": "#/components/schemas/GenericNumberTypeSettingsFieldResponse",
                            "text": "#/components/schemas/BaseSettingsFieldsResponse",
                            "text_area": "#/components/schemas/BaseSettingsFieldsResponse",
                            "video": "#/components/schemas/BaseSettingsFieldsResponse"
                          }
                        }
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "post": {
        "operationId": "createField",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "POST /fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Add a new field to an Organization.",
        "requestBody": {
          "description": "Payload to create a new field in an Organization",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsFieldCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created new field in an Organization",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the field that has been created.",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/fields/{id}": {
      "patch": {
        "operationId": "updateField",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "PATCH /fields/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a field in an Organization.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field"
            },
            "example": "8q7f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update in an Organization.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsFieldUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Updated field in an Organization"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/fields/{id}/choices": {
      "post": {
        "operationId": "createFieldChoices",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "POST /fields/{id}/choices",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create choices in a field.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field"
            },
            "example": "8a7f910551b00a722e0418830cee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to create new choices in the field",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsFieldChoiceCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "All the choices of the field, including the newly created ones",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SettingsFieldChoiceCreateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/fields/{field_id}/choices/{choice_id}": {
      "patch": {
        "operationId": "updateFieldChoice",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "PATCH /fields/{field_id}/choices/{choice_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update a choice of a field.",
        "parameters": [
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field"
            },
            "example": "8a7f91p551b00i722e04y8830cae6612"
          },
          {
            "name": "choice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the choice to be updated"
            },
            "example": "8a7b91p51b00i722e041y860aee6612"
          }
        ],
        "requestBody": {
          "description": "Payload to update a choice in the field",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SettingsFieldChoiceUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "delete": {
        "operationId": "deleteFieldChoice",
        "x-experimental": true,
        "tags": [
          "Fields"
        ],
        "summary": "DELETE /fields/{field_id}/choices/{choice_id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Delete a choice from a field. A request that deletes the last active choice of a field fails with a `400` error.",
        "parameters": [
          {
            "name": "field_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the field"
            },
            "example": "8a7f91p551b00i722e04y8830cae6612"
          },
          {
            "name": "choice_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the choice to be deleted"
            },
            "example": "8a7b910551b00a722e0418860cee6612"
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/brand-compliance/categories": {
      "get": {
        "operationId": "listBrandComplianceCategories",
        "x-experimental": true,
        "tags": [
          "Brand Compliance"
        ],
        "summary": "GET /brand-compliance/categories",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of brand compliance categories.",
        "parameters": [
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched brand compliance categories",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of brand compliance categories",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/BrandComplianceCategoriesResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/brand-compliance/categories?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      }
    },
    "/events": {
      "get": {
        "operationId": "listEvents",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "GET /events",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get a list of events.",
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "ISO date string - filters events with end_date >= start_date"
            },
            "example": "2024-11-24T00:00:00.000Z"
          },
          {
            "name": "end_date",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "ISO date string - filters events with start_date <= end_date"
            },
            "example": "2024-11-26T00:00:00.000Z"
          },
          {
            "name": "campaign_id",
            "in": "query",
            "schema": {
              "type": "string",
              "description": "Single campaign ID - filters events by campaign"
            },
            "example": "66d953340019d7b86833ac6d"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched events",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of events",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/EventResponse"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/events?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          }
        }
      },
      "post": {
        "operationId": "createEvent",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "POST /events",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create an event.",
        "requestBody": {
          "description": "Payload to create a new event",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created event details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/events/{id}": {
      "get": {
        "operationId": "getEvent",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "GET /events/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get an event.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the event",
              "example": "674ea40a7a9cac80ff78c95c"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Fetched event details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      },
      "patch": {
        "operationId": "updateEvent",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "PATCH /events/{id}",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Update an event.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the event",
              "example": "674ea40a7a9cac80ff78c95c"
            }
          }
        ],
        "requestBody": {
          "description": "Payload to update an event",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated event details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      }
    },
    "/events/{id}/fields": {
      "put": {
        "operationId": "updateEventFields",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "PUT /events/{id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Replace existing fields of an event.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the event"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          }
        ],
        "requestBody": {
          "description": "Payload to replace the fields",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventFieldsUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Event fields updated"
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          }
        }
      },
      "get": {
        "operationId": "listEventFields",
        "x-experimental": true,
        "tags": [
          "Events"
        ],
        "summary": "GET events/{id}/fields",
        "description": "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Get the list of fields of an event.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Unique identifier of the event"
            },
            "example": "5f857f30e1c4a2038d6179e9"
          },
          {
            "$ref": "#/components/parameters/offset"
          },
          {
            "$ref": "#/components/parameters/page_size"
          }
        ],
        "responses": {
          "200": {
            "description": "List of fetched fields",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "data": {
                      "description": "List of fields",
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FieldListResponseItem"
                      }
                    },
                    "pagination": {
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Pagination"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "next": {
                              "type": "string",
                              "nullable": true,
                              "example": "https://api.cmp.optimizely.com/v3/events/5f857f30e1c4a2038d6179e9/fields?offset=10&page_size=10"
                            }
                          }
                        }
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "pagination"
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/ClientError"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://accounts.cmp.optimizely.com/o/oauth2/v1/auth",
            "tokenUrl": "https://accounts.cmp.optimizely.com/o/oauth2/v1/token",
            "scopes": {
              "openid": "Grants the ability to receive a unique identifier for the user.",
              "profile": "Grants access to user profile information.",
              "offline_access": "Grants the ability to refresh access_token using the refresh token even when user is not present (not logged in)."
            }
          },
          "clientCredentials": {
            "tokenUrl": "https://accounts.cmp.optimizely.com/o/oauth2/v1/token",
            "scopes": {}
          }
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "additionalProperties": true,
        "description": "Error payload",
        "properties": {
          "message": {
            "type": "string",
            "description": "Message describing the error",
            "example": "Not found"
          },
          "errors": {
            "type": "object",
            "description": "Additional information",
            "additionalProperties": true,
            "properties": {}
          }
        },
        "required": [
          "message"
        ]
      },
      "FolderResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the folder",
            "example": "5d7f910551b00a722e0418830cee6632"
          },
          "name": {
            "type": "string",
            "description": "Name of the folder",
            "example": "icons"
          },
          "parent_folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the parent folder",
            "example": "1d9d8aeca10811ebbc640242ac12001b"
          },
          "path": {
            "type": "string",
            "description": "Folder location",
            "example": "/images/icons"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the folder was created,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the folder, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the folder",
                "example": "https://api.cmp.optimizely.com/v3/folders/5d7f910551b00a722e0418830cee6632"
              },
              "parent_folder": {
                "type": "string",
                "nullable": true,
                "description": "URL of the parent of the folder",
                "example": "https://api.cmp.optimizely.com/v3/folders/1d9d8aeca10811ebbc640242ac12001b"
              },
              "child_folders": {
                "type": "string",
                "description": "URL of the children list of the folder",
                "example": "https://api.cmp.optimizely.com/v3/folders?parent_folder_id=5d7f910551b00a722e0418830cee6632"
              },
              "assets": {
                "type": "string",
                "description": "URL of the assets inside the folder",
                "example": "https://api.cmp.optimizely.com/v3/assets?folder_id=5d7f910551b00a722e0418830cee6632&include_subfolder_assets=false"
              }
            },
            "required": [
              "self",
              "parent_folder",
              "child_folders",
              "assets"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "parent_folder_id",
          "path",
          "created_at",
          "modified_at",
          "links"
        ]
      },
      "Pagination": {
        "type": "object",
        "additionalProperties": false,
        "description": "Pagination related information",
        "properties": {
          "next": {
            "type": "string",
            "nullable": true,
            "description": "URL to the next page",
            "example": "https://api.cmp.optimizely.com/<some-path-to-next-page>?offset=10&page_size=10"
          },
          "previous": {
            "type": "string",
            "nullable": true,
            "description": "URL to the previous page",
            "example": null
          }
        },
        "required": [
          "next",
          "previous"
        ]
      },
      "FolderCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the folder",
            "example": "Optimizely Digital Asset Management"
          },
          "parent_folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the parent folder",
            "example": "5e6f910551b00a722e0418830cee6630"
          }
        },
        "required": [
          "name"
        ]
      },
      "FolderUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the folder",
            "example": "Optimizely Digital Asset Management"
          },
          "parent_folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the parent folder. If you pass null, the folder will be moved to the root.",
            "example": "5e6f910551b00a722e0418830cee6630"
          }
        },
        "anyOf": [
          {
            "required": [
              "name"
            ]
          },
          {
            "required": [
              "parent_folder_id"
            ]
          }
        ]
      },
      "BasePermissionsResponseSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the accessor",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "type": {
            "type": "string",
            "description": "Type of the accessor",
            "enum": [
              "user",
              "team",
              "organization"
            ],
            "example": "user"
          },
          "name": {
            "type": "string",
            "description": "Name of the accessor",
            "example": "John Doe"
          },
          "is_owner": {
            "type": "boolean",
            "description": "Indicates if the accessor is the owner of the object",
            "example": false
          },
          "access_type": {
            "type": "string",
            "description": "level of access the accessor has to the resource",
            "enum": [
              "view",
              "edit",
              "comment",
              "delete"
            ],
            "example": "view"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "accessor": {
                "type": "string",
                "description": "links for user and team type objects",
                "nullable": true,
                "example": "https://api.cmp.optimizely.com/v3/users/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "accessor"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "access_type",
          "is_owner",
          "links"
        ]
      },
      "FolderPermissionListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of Permissions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasePermissionsResponseSchema"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/folders/c00bfb60703f11ef805602420ac8001b/permissions?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "FolderPermissionBulkCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the accessor",
            "example": "user",
            "enum": [
              "user",
              "team"
            ]
          },
          "permissions": {
            "type": "array",
            "minItems": 1,
            "description": "List of permissions to be granted to folder",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of accessor",
                  "example": "5d7f910551b00a722e0418830cee6632"
                },
                "access_type": {
                  "type": "string",
                  "description": "level of access the accessor has to the folder",
                  "enum": [
                    "view",
                    "edit"
                  ],
                  "example": "view"
                },
                "is_owner": {
                  "type": "boolean",
                  "description": "Indicates if the accessor is the owner of the folder. A team cannot be an owner.",
                  "example": false,
                  "default": false
                }
              },
              "required": [
                "id",
                "access_type"
              ]
            }
          }
        },
        "required": [
          "type",
          "permissions"
        ]
      },
      "FolderPermissionUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "access_type": {
            "type": "string",
            "description": "Set the level of access the accessor has to the folder",
            "enum": [
              "view",
              "edit"
            ],
            "example": "view"
          },
          "is_owner": {
            "type": "boolean",
            "description": "Used to set an accessor as owner. This field can only be set to true as an owner cannot be removed without another accessor being set as the new owner. A team cannot be an owner.",
            "example": true
          }
        }
      },
      "FileUrlBulkCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "guids": {
            "type": "array",
            "minItems": 1,
            "description": "List of guids of assets representing binary files to generate URLs for the corresponding files",
            "items": {
              "type": "string",
              "example": [
                "791569bab45811eebb2802420ac8001c",
                "467569bab45811eebb2802420ac8111h"
              ]
            }
          }
        },
        "required": [
          "guids"
        ]
      },
      "BatchFileUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "urls": {
            "type": "object",
            "description": "List of urls for Files.",
            "additionalProperties": {
              "type": "string",
              "nullable": true,
              "description": "Returns download URLs of files in a hashmap with guids of assets representing binary files as the key. For public files, it will return the public URL. For private files, a tokenized URL is provided. For invalid file guids, the URL will be `null`."
            },
            "example": {
              "791569bab45811eebb2802420ac8001c": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==",
              "000": null,
              "947769bab45811eebb2802420ac8072n": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOlsiNDVhY2MyYmVhMGExMTF"
            }
          }
        },
        "required": [
          "urls"
        ]
      },
      "AssetContent": {
        "description": "Content of the asset",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the content. \n - article  – `html_body`\n - image, raw_file, video  – `url`\n - structured_content  – `api_url`\n - compose_content  – `api_url`",
            "enum": [
              "url",
              "api_url",
              "html_body"
            ],
            "example": "url"
          },
          "value": {
            "type": "string",
            "description": "Content of the asset.  - article – the html body - image, raw_file, video – the download URL - structured_content – api url - compose_content – api url",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==S"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "ResourceLabelResponse": {
        "description": "Label associated to a fetched resource",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "group": {
            "description": "Label group",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Identifier of the label group",
                "example": "2467e583a60e23fda2b89db81a453cd2"
              },
              "name": {
                "type": "string",
                "description": "Name of the label group",
                "example": "Content Format"
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "values": {
            "type": "array",
            "description": "List of values of the label",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Identifier of the label value",
                  "example": "71c378f3fee3d822759d1bdc2aab628c"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the label value",
                  "example": "Photos"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        },
        "required": [
          "group",
          "values"
        ]
      },
      "AssetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the asset",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "article",
              "image",
              "video",
              "raw_file",
              "structured_content",
              "compose_content"
            ],
            "description": "Type of the asset",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the asset",
            "example": "image/png"
          },
          "file_extension": {
            "type": "string",
            "nullable": true,
            "description": "File extension of the asset",
            "example": "png"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the asset was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the asset, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the asset in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the asset in the library",
            "example": "/all assets/important assets"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the asset is archived or not",
            "example": false
          },
          "content": {
            "$ref": "#/components/schemas/AssetContent"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the asset",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the asset (only GET is supported)",
                "example": "https://api.cmp.optimizely.com/v3/images/5d7f910551bw0a722e0418830cee6631"
              }
            },
            "required": [
              "self"
            ]
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the asset's owner organization",
            "example": "5108c3a9becac35915111191"
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the asset's thumbnail",
            "example": "https://images1.cmp.optimizely.com/Pz1kYmI9Z2FkYTJtZWI5VGI1WZq4MTZkNTdmGHjM5OGRmYq=="
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "mime_type",
          "file_extension",
          "created_at",
          "modified_at",
          "folder_id",
          "file_location",
          "is_archived",
          "content",
          "labels",
          "links",
          "owner_organization_id",
          "thumbnail_url"
        ]
      },
      "LibraryAssetCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 100,
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Title of the asset",
            "example": "sample_image.png"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder where the asset should be added",
            "example": "5d7f910551b00a722e0418830cee6631"
          }
        },
        "required": [
          "key",
          "title"
        ]
      },
      "BaseAssetField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the field",
            "example": "64be245ec0d79e79fdf1ad84"
          },
          "name": {
            "type": "string",
            "description": "Name of the field",
            "example": "Simple Text"
          },
          "values": {
            "type": "array",
            "description": "List of selected values or from user input",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "description": "Type of the field",
            "example": "text"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "values"
        ]
      },
      "AssetFieldTypeCheckbox": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the checkbox",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Checkbox 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "AssetFieldTypeCurrencyNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true
              },
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              },
              "currency_code": {
                "type": "string",
                "description": "Currency code of the numerical field",
                "example": "USD"
              }
            },
            "required": [
              "has_thousand_separator",
              "decimal_places",
              "currency_code"
            ]
          }
        ]
      },
      "AssetFieldTypeCommon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object"
          }
        ]
      },
      "AssetFieldTypeDropdown": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values from the dropdown"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the dropdown",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Dropdown 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "AssetFieldTypeLabel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Select multiple values from the label"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the label",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Label 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "AssetFieldTypePercentageNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              }
            },
            "required": [
              "decimal_places"
            ]
          }
        ]
      },
      "AssetFieldTypeRadio": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the radio button",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Radio 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "AssetFieldTypeSimpleNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetField"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true
              },
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              }
            },
            "required": [
              "has_thousand_separator",
              "decimal_places"
            ]
          }
        ]
      },
      "AssetFieldListResponseItem": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/AssetFieldTypeCommon"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeLabel"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeDropdown"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeRadio"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeCheckbox"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeSimpleNumber"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypePercentageNumber"
          },
          {
            "$ref": "#/components/schemas/AssetFieldTypeCurrencyNumber"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/AssetFieldTypeCheckbox",
            "currency_number": "#/components/schemas/AssetFieldTypeCurrencyNumber",
            "date": "#/components/schemas/AssetFieldTypeCommon",
            "dropdown": "#/components/schemas/AssetFieldTypeDropdown",
            "label": "#/components/schemas/AssetFieldTypeLabel",
            "percentage_number": "#/components/schemas/AssetFieldTypePercentageNumber",
            "radio_button": "#/components/schemas/AssetFieldTypeRadio",
            "rich_text": "#/components/schemas/AssetFieldTypeCommon",
            "simple_number": "#/components/schemas/AssetFieldTypeSimpleNumber",
            "text": "#/components/schemas/AssetFieldTypeCommon",
            "text_area": "#/components/schemas/AssetFieldTypeCommon",
            "image": "#/components/schemas/AssetFieldTypeCommon",
            "video": "#/components/schemas/AssetFieldTypeCommon"
          }
        }
      },
      "BaseObjectFieldUpdatePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the field",
            "example": "checkbox"
          },
          "values": {
            "type": "array",
            "description": "Values for the campaign field"
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "BaseObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the field",
                "example": "41aac313bda1e40b6cde7116fc24a"
              }
            },
            "required": [
              "id"
            ]
          }
        ]
      },
      "MultiChoiceTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choice IDs",
                "items": {
                  "type": "string",
                  "example": "9119a313057e401189407116fcd3"
                }
              }
            }
          }
        ]
      },
      "MultiChoiceTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "NumberTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Accepts a single numeric value",
                "maxItems": 1,
                "items": {
                  "type": "number",
                  "example": 200
                }
              }
            }
          }
        ]
      },
      "NumberTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/NumberTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "DateTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of date-time values, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                "items": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Date and time, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                  "example": "2020-02-10T10:40:45Z"
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "DateTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/DateTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "DropdownTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choice ID. Multiple choice values are not acceptable for `is_multi_select=false`.",
                "items": {
                  "type": "string",
                  "example": "9119a313057e401189407116fcd3"
                }
              }
            }
          }
        ]
      },
      "DropdownTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "RadioButtonTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Accepts a single choice Id.",
                "maxItems": 1,
                "items": {
                  "type": "string",
                  "example": "9119a313057e401189407116fcd3"
                }
              }
            }
          }
        ]
      },
      "RadioButtonTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "StringTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Any single string",
                "items": {
                  "type": "string",
                  "example": "This is a test string"
                }
              }
            }
          }
        ]
      },
      "StringTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/StringTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "AssetTypeObjectFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Payload for fields with attachments",
                "maxItems": 1,
                "items": {
                  "properties": {
                    "title": {
                      "type": "string",
                      "description": "Title of the image or video",
                      "example": "Sample.jpeg",
                      "minLength": 1
                    },
                    "key": {
                      "type": "string",
                      "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint.",
                      "example": "ce8995aea58b11ea8cd90242ac120005"
                    }
                  },
                  "required": [
                    "title",
                    "key"
                  ]
                }
              }
            }
          }
        ]
      },
      "AssetTypeObjectField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseObjectField"
          },
          {
            "$ref": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        ]
      },
      "AssetFieldsUpdateRequest": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "oneOf": [
            {
              "$ref": "#/components/schemas/StringTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/MultiChoiceTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DropdownTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/RadioButtonTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/NumberTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DateTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/AssetTypeObjectField"
            }
          ],
          "discriminator": {
            "propertyName": "type",
            "mapping": {
              "checkbox": "#/components/schemas/MultiChoiceTypeObjectField",
              "currency_number": "#/components/schemas/NumberTypeObjectField",
              "date": "#/components/schemas/DateTypeObjectField",
              "dropdown": "#/components/schemas/DropdownTypeObjectField",
              "label": "#/components/schemas/MultiChoiceTypeObjectField",
              "radio_button": "#/components/schemas/RadioButtonTypeObjectField",
              "percentage_number": "#/components/schemas/NumberTypeObjectField",
              "simple_number": "#/components/schemas/NumberTypeObjectField",
              "text": "#/components/schemas/StringTypeObjectField",
              "text_area": "#/components/schemas/StringTypeObjectField",
              "rich_text": "#/components/schemas/StringTypeObjectField",
              "image": "#/components/schemas/AssetTypeObjectField",
              "video": "#/components/schemas/AssetTypeObjectField"
            }
          }
        }
      },
      "AssetFieldUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/StringTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/NumberTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DateTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "currency_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "date": "#/components/schemas/DateTypeObjectFieldUpdatePayload",
            "dropdown": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload",
            "label": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "radio_button": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload",
            "percentage_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "simple_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "text_area": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "rich_text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "image": "#/components/schemas/AssetTypeObjectFieldUpdatePayload",
            "video": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        }
      },
      "AssetFieldTypes": {
        "type": "string",
        "description": "Type of the field",
        "example": "image",
        "enum": [
          "checkbox",
          "currency_number",
          "date",
          "dropdown",
          "label",
          "radio_button",
          "text_area",
          "percentage_number",
          "rich_text",
          "simple_number",
          "text"
        ]
      },
      "AssetFieldUpdateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the field",
            "example": "5a7f910511b0a72230ce6631"
          },
          "name": {
            "type": "string",
            "description": "Name of the field",
            "example": "Image Field"
          },
          "type": {
            "$ref": "#/components/schemas/AssetFieldTypes"
          },
          "values": {
            "type": "array",
            "description": "List of values selected or from user input",
            "items": {
              "type": "string",
              "example": "1nu8ue9wf8u9nusd9u"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "asset_fields": {
                "type": "string",
                "description": "URL of the asset fields",
                "example": "https://api.cmp.optimizely.com/v3/assets/5f857f30e1c4a2038d6179e9/fields"
              },
              "asset": {
                "type": "string",
                "description": "URL of the asset",
                "example": "https://api.cmp.optimizely.com/v3/assets/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "asset_fields",
              "asset"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "values",
          "links"
        ]
      },
      "AssetVersionCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string",
            "maxLength": 100,
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Title of the asset",
            "example": "sample_image.png"
          }
        },
        "required": [
          "key",
          "title"
        ]
      },
      "LibraryAssetVersionResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "version_number": {
            "type": "integer",
            "description": "The serial number of the version",
            "example": 2
          },
          "asset_id": {
            "type": "string",
            "description": "Unique identifier of the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the asset",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "image",
              "video",
              "raw_file"
            ],
            "description": "Type of the version",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the version",
            "example": "image/png"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the version was created,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "content": {
            "description": "Content of the version",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of the content",
                "enum": [
                  "url"
                ],
                "example": "url"
              },
              "value": {
                "type": "string",
                "description": "Content of the version. It is the download URL for image, raw file, and video.",
                "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==S"
              }
            },
            "required": [
              "type",
              "value"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "asset": {
                "type": "string",
                "description": "URL of the asset that the version is associated with",
                "example": "https://api.cmp.optimizely.com/v3/images/5d7f910551b00a722e0418830cee6631"
              }
            },
            "required": [
              "asset"
            ]
          }
        },
        "required": [
          "version_number",
          "asset_id",
          "title",
          "type",
          "mime_type",
          "created_at",
          "content",
          "links"
        ]
      },
      "BaseAssetRenditionResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the rendition",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "name": {
            "type": "string",
            "description": "Name of the rendition",
            "example": "Facebook"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the rendition was created, in ISO 8601 UTC format",
            "example": "2022-09-27T08:18:41Z"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the rendition",
            "example": "image/png"
          },
          "url": {
            "type": "string",
            "description": "URL of the rendition",
            "example": "https://files.cmp.optimizely.com/download/6ceee2f4fa3411ecb37802420ac8001b"
          }
        },
        "required": [
          "id",
          "name",
          "created_at",
          "mime_type",
          "url"
        ]
      },
      "AssetPermissionListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of Permissions",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BasePermissionsResponseSchema"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/assets/c00bfb60703f11ef805602420ac8001b/permissions?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "AssetPermissionBulkCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the accessor",
            "example": "user",
            "enum": [
              "user",
              "team"
            ]
          },
          "permissions": {
            "type": "array",
            "minItems": 1,
            "description": "List of permissions to be granted to asset",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of accessor",
                  "example": "5d7f910551b00a722e0418830cee6632"
                },
                "access_type": {
                  "type": "string",
                  "description": "level of access the accessor has to the asset",
                  "enum": [
                    "view",
                    "edit"
                  ],
                  "example": "view"
                },
                "is_owner": {
                  "type": "boolean",
                  "description": "Indicates if the accessor is the owner of the asset. A team cannot be an owner.",
                  "example": false,
                  "default": false
                }
              },
              "required": [
                "id",
                "access_type"
              ]
            }
          }
        },
        "required": [
          "type",
          "permissions"
        ]
      },
      "AssetPermissionUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "access_type": {
            "type": "string",
            "description": "Set the level of access the accessor has to the asset",
            "enum": [
              "view",
              "edit"
            ],
            "example": "view"
          },
          "is_owner": {
            "type": "boolean",
            "description": "Used to set an accessor as owner. This field can only be set to true as an owner cannot be removed without another accessor being set as the new owner. A team cannot be an owner.",
            "example": true
          }
        }
      },
      "DetailedAssetRenditionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseAssetRenditionResponse"
          },
          {
            "type": "object",
            "properties": {
              "modified_at": {
                "type": "string",
                "format": "date-time",
                "description": "Date and time on which the rendition was last modified, in ISO 8601 UTC format",
                "example": "2022-09-27T09:14:30Z"
              },
              "width": {
                "type": "integer",
                "nullable": true,
                "description": "The width (in pixels) of the rendition",
                "example": 600
              },
              "height": {
                "type": "integer",
                "nullable": true,
                "description": "The height (in pixels) of the rendition",
                "example": 400
              },
              "alt_text": {
                "type": "string",
                "nullable": true,
                "description": "Alternative text for rendition",
                "example": "image title"
              },
              "original_asset_id": {
                "type": "string",
                "description": "ID of the original asset the rendition was generated from",
                "example": "5d7f910551b00a722e0418830cee6631"
              },
              "rendition_config_id": {
                "type": "string",
                "description": "ID of rendition config used to generate the rendition",
                "example": "f910551b00ae0418830cee6631452651"
              },
              "asset_type": {
                "type": "string",
                "description": "Type of the original asset the rendition was generated from",
                "example": "image"
              },
              "status": {
                "type": "string",
                "description": "Status of the rendition's generation",
                "enum": [
                  "Done",
                  "InProgress",
                  "Error"
                ],
                "example": "Done"
              }
            },
            "required": [
              "modified_at",
              "original_asset_id",
              "width",
              "height",
              "alt_text",
              "asset_type",
              "status"
            ]
          }
        ]
      },
      "RenditionConfigResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the rendition config",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "name": {
            "type": "string",
            "description": "Name of the rendition config",
            "example": "Facebook"
          },
          "asset_type": {
            "type": "string",
            "description": "The asset type this config applies to",
            "example": "image"
          },
          "width": {
            "type": "integer",
            "nullable": true,
            "description": "The expected width (in pixels) of the renditions generated using this config",
            "example": 600
          },
          "height": {
            "type": "integer",
            "nullable": true,
            "description": "The expected height (in pixels) of the renditions generated using this config",
            "example": 400
          },
          "input_format": {
            "type": "string",
            "nullable": true,
            "description": "The file format of the target asset",
            "example": "JPG"
          },
          "output_format": {
            "type": "string",
            "nullable": true,
            "description": "The file format of the generated rendition",
            "example": "PNG"
          },
          "quality": {
            "type": "number",
            "nullable": true,
            "description": "The quality (percent) of the renditions generated using this config",
            "example": 80
          }
        },
        "required": [
          "id",
          "name",
          "asset_type",
          "input_format",
          "width",
          "height",
          "output_format",
          "quality"
        ]
      },
      "AssetLineageCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the source",
            "example": "Some website name"
          },
          "uri": {
            "type": "string",
            "description": "URI of the resource where the asset is used. If this is an external url, make sure the url starts with http:// or https://.",
            "example": "https://domain.xyz/path/to/resource"
          },
          "icon_url": {
            "type": "string",
            "description": "Website favicon url",
            "example": "https://domain.xyz/path/to/favicon"
          },
          "rendition_id": {
            "type": "string",
            "description": "Unique identifier of a rendition of an existing version of the asset",
            "example": "1d7491a891b00a721e0419630a7f8a4b"
          }
        },
        "required": [
          "name",
          "uri"
        ]
      },
      "AssetLineageResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the asset lineage",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "name": {
            "type": "string",
            "description": "Name of the source",
            "example": "Sample Name"
          },
          "asset_id": {
            "type": "string",
            "description": "Unique identifier of the asset",
            "example": "5d7f910551b00a722e0418830cee6632"
          },
          "version_id": {
            "type": "string",
            "description": "Unique identifier of the asset version",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "used_in": {
            "type": "string",
            "enum": [
              "external"
            ],
            "description": "Indicates where the asset is being used",
            "example": "external"
          },
          "uri": {
            "type": "string",
            "description": "Unique identifier of the location where the asset is being used",
            "example": "https://somewebsite.com"
          },
          "icon_url": {
            "type": "string",
            "description": "Icon url of the asset lineage",
            "nullable": true,
            "example": "https://somewebsite.com/abc.png"
          },
          "rendition_id": {
            "type": "string",
            "description": "Unique identifier of a rendition of the asset",
            "nullable": true,
            "example": "1d7491a891b00a721e0419630a7f8a4b"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the asset lineage was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the asset lineage",
                "example": "https://api.cmp.optimizely.com/v3/assets/5d7f910551bw0a722e0418830cee6632/lineages/5d7f910551bw0a722e0418830cee6631"
              },
              "asset": {
                "type": "string",
                "description": "URL of the asset",
                "example": "https://api.cmp.optimizely.com/v3/articles/5d7f910551bw0a722e0418830cee6632"
              }
            },
            "required": [
              "self",
              "asset"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "asset_id",
          "version_id",
          "used_in",
          "uri",
          "icon_url",
          "rendition_id",
          "created_at",
          "links"
        ]
      },
      "RelatedAssetItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the asset",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "article",
              "image",
              "video",
              "raw_file",
              "structured_content",
              "compose_content"
            ],
            "description": "Type of the asset",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "nullable": true,
            "description": "MIME type of the asset",
            "example": "image/png"
          },
          "file_extension": {
            "type": "string",
            "nullable": true,
            "description": "File extension of the asset",
            "example": "png"
          },
          "content": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "url",
                  "api_url",
                  "html_body"
                ],
                "description": "Type of the content.\n - article  – `html_body`\n - image, raw_file, video  – `url`\n - structured_content  – `api_url`\n - compose_content  – `api_url`",
                "example": "url"
              },
              "value": {
                "type": "string",
                "description": "Content of the asset. - article – the html body - image, raw_file, video – the download URL - structured_content – api url - compose_content – api url"
              }
            },
            "required": [
              "type",
              "value"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the asset (only GET is supported)",
                "example": "https://api.cmp.optimizely.com/v3/images/5d7f910551b00a722e0418830cee6631"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "mime_type",
          "file_extension",
          "content",
          "links"
        ]
      },
      "RelatedAssetsListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "type": "array",
            "description": "List of related assets",
            "items": {
              "$ref": "#/components/schemas/RelatedAssetItem"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/assets/5d7f910551b00a722e0418830cee6631/related-assets?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "ReplaceRelatedAssetsRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "related_assets": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier for the asset",
                  "example": "5d7f910551b00a722e0418830cee6631"
                }
              },
              "required": [
                "id"
              ]
            }
          }
        },
        "required": [
          "related_assets"
        ]
      },
      "ReplaceRelatedAssetsResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "related_assets": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier for the asset",
                  "example": "5d7f910551b00a722e0418830cee6631"
                }
              },
              "required": [
                "id"
              ]
            }
          }
        },
        "required": [
          "id",
          "related_assets"
        ]
      },
      "ArticleAuthorResponse": {
        "description": "Author of the article",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Name of Author",
            "example": "John Doe"
          }
        },
        "required": [
          "name"
        ]
      },
      "FeaturedImageResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "attribution_text": {
            "type": "string",
            "nullable": true,
            "description": "Attribution text of the featured image",
            "example": "This is a sample attribution text"
          },
          "caption": {
            "type": "string",
            "description": "Caption of the featured image",
            "example": "This is a sample caption"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the featured image",
            "example": "This is a sample description"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the featured image",
            "example": "image/jpeg"
          },
          "source": {
            "type": "object",
            "description": "Source of the featured image",
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string",
                "nullable": true,
                "description": "Organization or vendor name of the featured image",
                "example": "Reuters"
              }
            },
            "required": [
              "name"
            ]
          },
          "url": {
            "type": "string",
            "description": "URL of the featured image",
            "example": "https://images-cdn.cmp.optimizely.com/sample.jpeg"
          },
          "height": {
            "type": "integer",
            "description": "Height of the featured image in pixels",
            "example": 400
          },
          "width": {
            "type": "integer",
            "description": "Width of the featured image in pixels",
            "example": 700
          },
          "thumbnail": {
            "type": "string",
            "nullable": true,
            "description": "URL of the featured image thumbnail",
            "example": "https://images-cdn.cmp.optimizely.com/Zz01Y2FkOWFjZWQ5OTMxMWViYjY3OTEzNDMzOWM3ZDNhNA==?width=75&height=75"
          }
        },
        "required": [
          "attribution_text",
          "caption",
          "description",
          "mime_type",
          "source",
          "height",
          "width",
          "thumbnail",
          "url"
        ]
      },
      "Tag": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "guid": {
            "type": "string",
            "description": "Unique identifier of the tag",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "name": {
            "type": "string",
            "description": "Name of the tag",
            "example": "Sample Tag"
          }
        },
        "required": [
          "guid",
          "name"
        ]
      },
      "LibraryArticle": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the article",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the article",
            "example": "3 Ways Influencer Marketing Will Further Mature in 2020"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the article was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the article, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "html_body": {
            "type": "string",
            "description": "Content of the article",
            "example": "<p>Article text</p>"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the article in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the article in the library",
            "example": "/all assets/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the article is archived or not",
            "example": false
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the article",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "group_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the source article in case of copied or translated articles",
            "example": "7949c82ce3ae11eba378dbacdf18f20c"
          },
          "meta_title": {
            "type": "string",
            "nullable": true,
            "description": "Meta title of the article",
            "example": "3 Ways Influencer Marketing Will Further Mature in 2020"
          },
          "meta_description": {
            "type": "string",
            "nullable": true,
            "description": "Meta description of the article",
            "example": "Article text"
          },
          "meta_url": {
            "type": "string",
            "nullable": true,
            "description": "Meta URL of the article",
            "example": "/"
          },
          "meta_keywords": {
            "type": "array",
            "description": "Meta Keywords of the article",
            "items": {
              "type": "string"
            },
            "example": [
              "key",
              "word",
              "keyword"
            ]
          },
          "source_article": {
            "type": "string",
            "nullable": true,
            "description": "Link to the vendor article for Marketplace article or Task article ID for created article",
            "example": "https://source-vendor.com/sample-article"
          },
          "source_name": {
            "type": "string",
            "nullable": true,
            "description": "Name of the article's source",
            "example": "Optimizely CMP"
          },
          "url": {
            "type": "string",
            "nullable": true,
            "description": "Link to the published article",
            "example": "https://example.com/sample-article"
          },
          "authors": {
            "type": "array",
            "description": "List of authors of the article",
            "items": {
              "$ref": "#/components/schemas/ArticleAuthorResponse"
            }
          },
          "lang_code": {
            "type": "string",
            "nullable": true,
            "description": "Language code depicting the language of the article",
            "example": "eng"
          },
          "pixel_key": {
            "type": "string",
            "description": "Unique tracking pixel of the article",
            "example": "https://pixel.cmp.optimizely.com/px.gif?key=YXJ0aWNsZT0zZmJjN2Y5NmUzYzcxMWViOGVmNTAyNDJhYzEyMDAxOA=="
          },
          "images": {
            "type": "array",
            "description": "Featured images of the article",
            "items": {
              "$ref": "#/components/schemas/FeaturedImageResponse"
            }
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of owner organization of the article",
            "example": "5108c3a9becac35915111191"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time for the expiration of the article, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumbnail of the article",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "version_number": {
            "type": "integer",
            "nullable": false,
            "description": "Version number of article",
            "example": 2
          },
          "version_id": {
            "type": "string",
            "nullable": false,
            "description": "Version id of article",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "tags": {
            "type": "array",
            "description": "Tags for the article",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the article owner",
            "example": "5108c3a9becac35915111191"
          }
        },
        "required": [
          "id",
          "title",
          "created_at",
          "modified_at",
          "html_body",
          "folder_id",
          "url",
          "file_location",
          "is_archived",
          "labels",
          "group_id",
          "meta_title",
          "meta_description",
          "meta_url",
          "meta_keywords",
          "source_article",
          "source_name",
          "authors",
          "lang_code",
          "pixel_key",
          "images",
          "owner_organization_id",
          "expires_at",
          "thumbnail_url",
          "version_number",
          "version_id",
          "tags",
          "owner_id"
        ]
      },
      "LibraryImage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the image",
            "example": "5d7f910551b00a722e0418830cee6632"
          },
          "title": {
            "type": "string",
            "description": "Title of the image",
            "example": "cat.jpeg"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the image",
            "example": "Very important image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the image",
            "example": "image/jpeg"
          },
          "file_extension": {
            "type": "string",
            "nullable": true,
            "description": "File extension of the image file",
            "example": "jpg"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the image was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the image, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the image in bytes",
            "example": 11244
          },
          "image_resolution": {
            "type": "object",
            "additionalProperties": false,
            "description": "Width and height of the image in pixels",
            "properties": {
              "height": {
                "type": "integer",
                "description": "Height of the image in pixels",
                "example": 800
              },
              "width": {
                "type": "integer",
                "description": "Width of the image in pixels",
                "example": 700
              }
            },
            "required": [
              "height",
              "width"
            ]
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the image in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the image in the library",
            "example": "/images/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the image is archived or not",
            "example": true
          },
          "is_public": {
            "type": "boolean",
            "description": "Whether the image URL is public or not",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "description": "Whether the image is allowed to be indexed by search engines",
            "example": true
          },
          "url": {
            "type": "string",
            "description": "Download the URL of the image",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the image",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of owner organization of the image",
            "example": "5108c3a9becac35915111191"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time for the expiration of the image, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumbnail of the image",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "version_number": {
            "type": "integer",
            "nullable": false,
            "description": "Version number of image",
            "example": 2
          },
          "version_id": {
            "type": "string",
            "nullable": false,
            "description": "Version id of image",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "alt_text": {
            "type": "string",
            "nullable": true,
            "description": "Alternative text for image",
            "example": "image title"
          },
          "tags": {
            "type": "array",
            "description": "Tags for the image",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "attribution_text": {
            "type": "string",
            "nullable": true,
            "description": "Attribution of Image",
            "example": "Nature"
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the image owner",
            "example": "5108c3a9becac35915111191"
          },
          "focal_point": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "description": "Focal point of the image",
            "properties": {
              "x": {
                "type": "integer",
                "description": "X coordinate of the focal point",
                "example": 35
              },
              "y": {
                "type": "integer",
                "description": "Y coordinate of the focal point",
                "example": 75
              }
            },
            "required": [
              "x",
              "y"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "mime_type",
          "file_extension",
          "created_at",
          "modified_at",
          "file_size",
          "image_resolution",
          "folder_id",
          "file_location",
          "is_archived",
          "is_public",
          "allow_se_indexing",
          "url",
          "labels",
          "owner_organization_id",
          "expires_at",
          "thumbnail_url",
          "version_number",
          "version_id",
          "alt_text",
          "tags",
          "attribution_text",
          "owner_id",
          "focal_point"
        ]
      },
      "ResourceLabelRequest": {
        "description": "Payload to associate labels to a resource",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "group": {
            "description": "Label group",
            "type": "string",
            "minLength": 32,
            "maxLength": 32,
            "example": "2467e583a60e23fda2b89db81a453cd2"
          },
          "values": {
            "type": "array",
            "description": "List of values of the label",
            "items": {
              "type": "string",
              "minLength": 32,
              "maxLength": 32,
              "example": "71c378f3fee3d822759d1bdc2aab628c"
            }
          }
        },
        "required": [
          "group",
          "values"
        ]
      },
      "LibraryImageUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "nullable": false,
            "description": "Title of the image",
            "example": "cat.jpeg"
          },
          "description": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Description of the image. Set an empty string to clear the description.",
            "example": "Image of a cute cat"
          },
          "alt_text": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Alt text of the image. Set an empty string to clear the alt text.",
            "example": "Sample alt text"
          },
          "attribution_text": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Attribution text of the image. Set an empty string to clear the attribution text.",
            "example": "Sample attribution text"
          },
          "tags": {
            "type": "array",
            "description": "Tags of the image. Provided tags will replace the existing ones. Set an empty array to clear the existing tags.",
            "items": {
              "type": "string",
              "nullable": false,
              "minLength": 1,
              "maxLength": 100
            },
            "nullable": false,
            "uniqueItems": true,
            "minItems": 0,
            "maxItems": 100,
            "example": [
              "dhaka",
              "new york",
              "london"
            ]
          },
          "is_public": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the image URL should be public",
            "example": true
          },
          "is_archived": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the image should be archived",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the image is allowed to be indexed by search engines",
            "example": true
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the image in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time when the image expires, in ISO 8601 UTC format",
            "example": "2019-10-07T13:15:30Z"
          },
          "labels": {
            "type": "array",
            "nullable": false,
            "description": "Please use [PUT /assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields) or [PUT /assets/{asset_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields-field-id) API to update label type asset fields",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/ResourceLabelRequest"
            }
          },
          "focal_point": {
            "type": "object",
            "nullable": false,
            "additionalProperties": false,
            "description": "Focal point of the image, used when cropping renditions. Coordinates are percentages of the image width and height, where `{\"x\": 50, \"y\": 50}` is the center of the image.",
            "properties": {
              "x": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100,
                "description": "Horizontal position of the focal point as a percentage of the image width",
                "example": 35
              },
              "y": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100,
                "description": "Vertical position of the focal point as a percentage of the image height",
                "example": 75
              }
            },
            "required": [
              "x",
              "y"
            ],
            "example": {
              "x": 35,
              "y": 75
            }
          }
        }
      },
      "LibraryVideo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the video",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "title": {
            "type": "string",
            "description": "Title of the video",
            "example": "product.mp4"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the video",
            "example": "Very important video"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the video",
            "example": "video/mp4"
          },
          "file_extension": {
            "type": "string",
            "nullable": true,
            "description": "File extension of the video file",
            "example": "mp4"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the video was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the video, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the video in bytes",
            "example": 11244
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the video in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the video in the library",
            "example": "/example/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the video is archived or not",
            "example": true
          },
          "is_public": {
            "type": "boolean",
            "description": "Whether the video URL is public",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "description": "Whether the video is allowed to be indexed by search engines",
            "example": true
          },
          "url": {
            "type": "string",
            "description": "Download the URL of the video",
            "example": "https://videos.cmp.optimizely.com/03a747babe81ceb55763fa085bqa20dc"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the video",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of owner organization of the video",
            "example": "5108c3a9becac35915111191"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time for the expiration of the video, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumbnail of the video",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "version_number": {
            "type": "integer",
            "nullable": false,
            "description": "Version number of video",
            "example": 2
          },
          "version_id": {
            "type": "string",
            "nullable": false,
            "description": "Version id of video",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "alt_text": {
            "type": "string",
            "nullable": true,
            "description": "Alternative text for video",
            "example": "video title"
          },
          "tags": {
            "type": "array",
            "description": "Tags for the video",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "attribution_text": {
            "type": "string",
            "nullable": true,
            "description": "Attribution of Video",
            "example": "Sci-fi"
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the video owner",
            "example": "5108c3a9becac35915111191"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "mime_type",
          "file_extension",
          "created_at",
          "modified_at",
          "file_size",
          "folder_id",
          "file_location",
          "is_archived",
          "is_public",
          "allow_se_indexing",
          "url",
          "labels",
          "owner_organization_id",
          "expires_at",
          "thumbnail_url",
          "version_number",
          "version_id",
          "alt_text",
          "tags",
          "attribution_text",
          "owner_id"
        ]
      },
      "LibraryVideoUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "nullable": false,
            "description": "Title of the video",
            "example": "product.mp4"
          },
          "description": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Description of the video. Set an empty string to clear the description.",
            "example": "A short video on product demo"
          },
          "alt_text": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Alt text of the video. Set an empty string to clear the alt text.",
            "example": "Sample alt text"
          },
          "attribution_text": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Attribution text of the video. Set an empty string to clear the attribution text.",
            "example": "Sample attribution text"
          },
          "tags": {
            "type": "array",
            "description": "Tags of the video. Provided tags will replace the existing ones. Set an empty array to clear the existing tags.",
            "items": {
              "type": "string",
              "nullable": false,
              "minLength": 1,
              "maxLength": 100
            },
            "nullable": false,
            "uniqueItems": true,
            "minItems": 0,
            "maxItems": 100,
            "example": [
              "dhaka",
              "new york",
              "london"
            ]
          },
          "is_public": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the video URL should be public",
            "example": true
          },
          "is_archived": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the video should be archived",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the video is allowed to be indexed by search engines",
            "example": true
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the video in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time when the video expires, in ISO 8601 UTC format",
            "example": "2019-10-07T13:15:30Z"
          },
          "labels": {
            "type": "array",
            "nullable": false,
            "description": "Please use [PUT /assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields) or  [PUT /assets/{asset_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields-field-id)  API to update label type asset fields",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/ResourceLabelRequest"
            }
          }
        }
      },
      "LibraryRawFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the raw file",
            "example": "5d7f910551b00a722e0418830cee6634"
          },
          "title": {
            "type": "string",
            "description": "Title of the raw file",
            "example": "documents.zip"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the raw file",
            "example": "Very important file"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the raw file",
            "example": "application/zip"
          },
          "file_extension": {
            "type": "string",
            "nullable": true,
            "description": "File extension of the raw file",
            "example": "zip"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the raw file was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the raw file, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the raw file in bytes",
            "example": 11244
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the raw file in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the raw file in the library",
            "example": "/all files/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the raw file is archived or not",
            "example": false
          },
          "is_public": {
            "type": "boolean",
            "description": "Whether the raw file URL is public or not",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "description": "Whether the raw file is allowed to be indexed by search engines",
            "example": true
          },
          "url": {
            "type": "string",
            "description": "Download the URL of the raw file",
            "example": "https://files.cmp.optimizely.com/171451644651701b96f1122009f026bc"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated to the raw file",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of owner organization of the raw file",
            "example": "5108c3a9becac35915111191"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time for the expiration of the raw file, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "thumbnail_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the thumbnail of the raw file",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "version_number": {
            "type": "integer",
            "nullable": false,
            "description": "Version number of raw file",
            "example": 2
          },
          "version_id": {
            "type": "string",
            "nullable": false,
            "description": "Version id of raw file",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "tags": {
            "type": "array",
            "description": "Tags for the raw file",
            "items": {
              "$ref": "#/components/schemas/Tag"
            }
          },
          "attribution_text": {
            "type": "string",
            "nullable": true,
            "description": "Attribution of raw file",
            "example": "Text"
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the raw file owner",
            "example": "5108c3a9becac35915111191"
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "mime_type",
          "file_extension",
          "created_at",
          "modified_at",
          "file_size",
          "folder_id",
          "file_location",
          "is_archived",
          "is_public",
          "allow_se_indexing",
          "url",
          "labels",
          "owner_organization_id",
          "expires_at",
          "thumbnail_url",
          "version_number",
          "version_id",
          "tags",
          "attribution_text",
          "owner_id"
        ]
      },
      "LibraryRawFileUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "nullable": false,
            "description": "Title of the raw file",
            "example": "documents.zip"
          },
          "description": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Description of the raw file. Set an empty string to clear the description.",
            "example": "A zip file that contains some documents"
          },
          "attribution_text": {
            "type": "string",
            "minLength": 0,
            "nullable": false,
            "description": "Attribution text of the raw file. Set an empty string to clear the attribution text.",
            "example": "Sample attribution text"
          },
          "tags": {
            "type": "array",
            "description": "Tags of the raw file. Provided tags will replace the existing ones. Set an empty array to clear the existing tags.",
            "items": {
              "type": "string",
              "nullable": false,
              "minLength": 1,
              "maxLength": 100
            },
            "nullable": false,
            "uniqueItems": true,
            "minItems": 0,
            "maxItems": 100,
            "example": [
              "dhaka",
              "new york",
              "london"
            ]
          },
          "is_public": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the raw file URL should be public",
            "example": true
          },
          "is_archived": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the raw file should be archived",
            "example": true
          },
          "allow_se_indexing": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the raw file is allowed to be indexed by search engines",
            "example": true
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the raw file in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Date and time when the raw file expires, in ISO 8601 UTC format",
            "example": "2019-10-07T13:15:30Z"
          },
          "labels": {
            "type": "array",
            "nullable": false,
            "description": "Please use [PUT /assets/{asset_id}/fields](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields) or  [PUT /assets/{asset_id}/fields/{field_id}](https://docs.developers.optimizely.com/content-marketing-platform/reference/put_assets-asset-id-fields-field-id)  API to update label type asset fields",
            "deprecated": true,
            "items": {
              "$ref": "#/components/schemas/ResourceLabelRequest"
            }
          }
        }
      },
      "NumberFieldValueModel": {
        "required": [
          "num_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "num_value": {
            "type": "number",
            "description": "Value of the field value"
          }
        }
      },
      "BooleanFieldValueModel": {
        "required": [
          "bool_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "bool_value": {
            "type": "boolean",
            "description": "Value of the field value"
          }
        }
      },
      "DatetimeFieldValueModel": {
        "required": [
          "datetime_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "datetime_value": {
            "type": "string",
            "format": "date-time",
            "description": "Value of the field value"
          }
        }
      },
      "TextFieldValueModel": {
        "required": [
          "text_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "text_value": {
            "type": "string",
            "description": "Value of the field value"
          }
        }
      },
      "RichTextFieldValueModel": {
        "required": [
          "rich_text_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "rich_text_value": {
            "type": "string",
            "description": "Value of the field value"
          }
        }
      },
      "LibraryAssetType": {
        "enum": [
          "article",
          "image",
          "video",
          "raw_file",
          "structured_content"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "LibraryAssetFieldValueModel": {
        "required": [
          "asset_guid",
          "asset_type"
        ],
        "type": "object",
        "properties": {
          "links": {
            "type": "object",
            "description": "Meta links",
            "additionalProperties": {
              "type": "string"
            }
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "asset_guid": {
            "type": "string",
            "description": "Asset GUID of the field value"
          },
          "asset_type": {
            "$ref": "#/components/schemas/LibraryAssetType"
          }
        }
      },
      "LocalizedFieldValuesWithEmbeddedContent": {
        "required": [
          "locale",
          "field_values"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "field_values": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NumberFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/BooleanFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/DatetimeFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/TextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/RichTextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LibraryAssetFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueWithEmbeddedModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/URLFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/JSONFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ChoiceFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LocationFieldValueModel"
                }
              ]
            }
          }
        }
      },
      "RecursiveStructuredContent": {
        "type": "object",
        "properties": {
          "content_type_guid": {
            "title": "Contenttypeguid",
            "type": "string",
            "description": "The guid of the content's content type"
          },
          "root_content": {
            "title": "Rootcontent",
            "type": "boolean",
            "description": "Set to `false` for content embedded via a reference field; `true` for root content."
          },
          "title": {
            "type": "string",
            "description": "Title of the structured content",
            "example": "Some webpage"
          },
          "expired": {
            "title": "Expired",
            "type": "boolean",
            "description": "Expired status of the content"
          },
          "expiry_datetime": {
            "title": "Expirydatetime",
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Date and time on which the content will expire, in ISO 8601 UTC format"
          },
          "source": {
            "title": "Source",
            "type": "string",
            "nullable": true,
            "description": "Source of the content"
          },
          "source_id": {
            "title": "Sourceid",
            "type": "string",
            "nullable": true,
            "description": "Source id of the content"
          },
          "source_metadata": {
            "title": "Sourcemetadata",
            "type": "string",
            "nullable": true,
            "description": "Source metadata of the content"
          },
          "fields": {
            "title": "fields",
            "type": "object",
            "description": "Field values of the embedded content, keyed by field key. Values must be nested under `fields`, not placed directly on the content object.",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocalizedFieldValuesWithEmbeddedContent"
              }
            }
          }
        },
        "required": [
          "content_type_guid",
          "root_content",
          "title",
          "fields"
        ]
      },
      "ContentFieldValueWithEmbeddedModel": {
        "required": [
          "content_details"
        ],
        "type": "object",
        "properties": {
          "content_details": {
            "title": "Contentdetails",
            "description": "The embedded content object",
            "$ref": "#/components/schemas/RecursiveStructuredContent"
          }
        }
      },
      "ContentFieldValueModel": {
        "required": [
          "content_guid",
          "embedded"
        ],
        "type": "object",
        "properties": {
          "embedded": {
            "type": "boolean",
            "description": "Indicates whether the field value is embedded"
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "content_guid": {
            "type": "string",
            "description": "Content GUID of the field value"
          },
          "content_url": {
            "type": "string",
            "description": "Content URL of the field value"
          }
        }
      },
      "URLFieldValueModel": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "maxLength": 65536,
            "minLength": 1,
            "type": "string",
            "format": "uri",
            "description": "URL of the field value"
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          }
        }
      },
      "JSONFieldValueModel": {
        "required": [
          "json_value"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "json_value": {
            "description": "Value of the field value",
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "array",
                "items": {}
              }
            ]
          }
        }
      },
      "ChoiceFieldValueModel": {
        "required": [
          "choice_key"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "choice_key": {
            "type": "string",
            "description": "Choice key of the field value"
          }
        }
      },
      "LocationFieldValueModel": {
        "required": [
          "longitude",
          "latitude"
        ],
        "type": "object",
        "properties": {
          "longitude": {
            "type": "number",
            "description": "Longitude of the field value"
          },
          "latitude": {
            "type": "number",
            "description": "Longitude of the field value"
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          }
        }
      },
      "StructuredContentBody": {
        "type": "object",
        "description": "The fields of structured content",
        "properties": {
          "has_embedded": {
            "description": "Set to `true` when embedding new content via reference fields (using `content_details`). Required to create embedded content.",
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LocalizedFieldValuesWithEmbeddedContent"
          }
        }
      },
      "LibraryStructuredContentCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the structured content asset"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the structured content in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "content_body": {
            "description": "The structured content body",
            "type": "object",
            "properties": {
              "content_type_guid": {
                "title": "Contenttypeguid",
                "type": "string",
                "description": "The guid of the content's content type"
              },
              "fields": {
                "title": "fields",
                "nullable": true,
                "type": "object",
                "$ref": "#/components/schemas/StructuredContentBody"
              },
              "root_content": {
                "title": "Rootcontent",
                "type": "boolean",
                "description": "Set to `false` for content embedded via a reference field; `true` for root content."
              },
              "title": {
                "type": "string",
                "description": "Title of the structured content",
                "example": "Some webpage"
              },
              "expired": {
                "title": "Expired",
                "type": "boolean",
                "description": "Expired status of the content"
              },
              "expiry_datetime": {
                "title": "Expirydatetime",
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "Date and time on which the content will expire, in ISO 8601 UTC format"
              },
              "source": {
                "title": "Source",
                "type": "string",
                "nullable": true,
                "description": "Source of the content"
              },
              "source_id": {
                "title": "Sourceid",
                "type": "string",
                "nullable": true,
                "description": "Source id of the content"
              },
              "source_metadata": {
                "title": "Sourcemetadata",
                "type": "string",
                "nullable": true,
                "description": "Source metadata of the content"
              }
            },
            "required": [
              "content_type_guid",
              "root_content"
            ]
          }
        },
        "required": [
          "content_body"
        ]
      },
      "ContentDetailsModel": {
        "required": [
          "root_content",
          "title",
          "latest_fields_version",
          "content_guid",
          "created_by",
          "updated_by",
          "created_at",
          "updated_at",
          "content_type_guid",
          "content_type_name",
          "links"
        ],
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the content"
          },
          "primary_locale": {
            "type": "string",
            "description": "The primary locale of the content",
            "example": "en_US"
          },
          "expired": {
            "type": "boolean",
            "description": "Expired status of the content"
          },
          "source": {
            "type": "string",
            "description": "Source of the content"
          },
          "root_content": {
            "type": "boolean",
            "description": "This is true when the content is not embedded in another content through a content type reference field"
          },
          "template_guid": {
            "type": "string",
            "description": "Template GUID of the content"
          },
          "expiry_datetime": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content will expire, in ISO 8601 UTC format"
          },
          "source_id": {
            "type": "string",
            "description": "Source ID of the content"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the content"
          },
          "latest_fields_version": {
            "$ref": "#/components/schemas/ContentFieldsVersionDetails"
          },
          "content_guid": {
            "type": "string",
            "description": "Unique identifier of the content"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the content"
          },
          "updated_by": {
            "type": "string",
            "description": "Unique identifier of the user who last updated the content"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content was created, in ISO 8601 UTC format"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content was last updated, in ISO 8601 UTC format"
          },
          "content_type_guid": {
            "type": "string",
            "description": "Unique identifier of the content type"
          },
          "content_type_name": {
            "type": "string",
            "description": "Name of the content type"
          },
          "content_type": {
            "$ref": "#/components/schemas/VersionedContentTypeModel"
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the content",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/contents/a24b834428a043ab8caed1ded4606f7d"
              },
              "definition": {
                "type": "string",
                "description": "URL of the content definition",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/5291e00b990a49f1857adc024fd26620/versions/a8b48d529701452aa56a4e752e1b0ffc"
              }
            }
          }
        }
      },
      "ContentFieldValueExpandedModel": {
        "required": [
          "content_guid",
          "embedded",
          "content_details"
        ],
        "type": "object",
        "properties": {
          "embedded": {
            "type": "boolean",
            "description": "Indicates whether the field value is embedded"
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "content_guid": {
            "type": "string",
            "description": "Content GUID of the field value"
          },
          "content_url": {
            "type": "string",
            "description": "Content URL of the field value"
          },
          "content_details": {
            "$ref": "#/components/schemas/ContentDetailsModel"
          }
        }
      },
      "LocalizedFieldValues": {
        "required": [
          "locale",
          "field_values"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "field_values": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NumberFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/BooleanFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/DatetimeFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/TextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/RichTextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LibraryAssetFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueExpandedModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/URLFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/JSONFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ChoiceFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LocationFieldValueModel"
                }
              ]
            }
          }
        }
      },
      "error_reason": {
        "title": "error_reason",
        "enum": [
          "REQUIRED_FIELD_ABSENT",
          "LIST_EMPTY",
          "INVALID_STATE",
          "INVALID_SELF_REF",
          "MIN_NOT_MET",
          "MAX_NOT_MET",
          "PATTERN_ERROR"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "ContentFieldsVersionValidation": {
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "description": "Validation for the fields",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "$ref": "#/components/schemas/error_reason"
              }
            }
          }
        }
      },
      "ContentFieldsVersionDetails": {
        "required": [
          "fields",
          "created_by",
          "created_at",
          "version_guid",
          "content_hash"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "description": "List of fields",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocalizedFieldValues"
              }
            }
          },
          "validation": {
            "$ref": "#/components/schemas/ContentFieldsVersionValidation"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the version"
          },
          "source_id": {
            "type": "string",
            "description": "Source ID of the version"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the version"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the version was created, in ISO 8601 UTC format"
          },
          "version_guid": {
            "type": "string",
            "description": "Unique identifier of the version"
          },
          "content_hash": {
            "type": "string",
            "description": "Content hash of the version"
          }
        }
      },
      "BaseContentTypeVersionModel": {
        "required": [
          "version_guid",
          "created_by",
          "created_at",
          "latest",
          "expected_locales",
          "links"
        ],
        "type": "object",
        "properties": {
          "latest": {
            "type": "boolean",
            "description": "Indicates whether the version is the latest"
          },
          "version_guid": {
            "type": "string",
            "description": "Unique identifier of the version"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the version"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the version was created, in ISO 8601 UTC format"
          },
          "expected_locales": {
            "type": "array",
            "description": "Expected locales of the version",
            "items": {
              "type": "string"
            }
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the content type version",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/555876bf63e94ea4b3ec4da318736414/versions/31a6d15b09c54a04935203eb958ae058"
              },
              "content_type": {
                "type": "string",
                "description": "URL of the content type",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/555876bf63e94ea4b3ec4da318736414"
              }
            }
          }
        }
      },
      "FieldType": {
        "enum": [
          "boolean",
          "number",
          "text-field",
          "rich-text",
          "datetime",
          "library-asset",
          "content-type",
          "json",
          "url",
          "choice",
          "location"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "CoreFieldDef": {
        "required": [
          "key",
          "name",
          "is_list",
          "is_required",
          "need_internationalization"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Key of the field"
          },
          "name": {
            "type": "string",
            "description": "Name of the field"
          },
          "is_list": {
            "type": "boolean",
            "description": "Indicates whether the field is a list"
          },
          "is_required": {
            "type": "boolean",
            "description": "Required status of the field"
          },
          "need_internationalization": {
            "type": "boolean",
            "description": "Indicates whether the field needs internationalization"
          },
          "min_list_length": {
            "type": "integer",
            "description": "Minimum length of the list"
          },
          "max_list_length": {
            "type": "integer",
            "description": "Maximum length of the list"
          },
          "field_type": {
            "$ref": "#/components/schemas/FieldType"
          },
          "source_id": {
            "type": "string",
            "description": "Source ID of the field"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the field"
          },
          "order_index": {
            "type": "integer",
            "description": "Order index of the field"
          },
          "help_text": {
            "type": "string",
            "description": "Helptext of the field"
          },
          "editor_metadata": {
            "description": "Editor metadata of the field",
            "anyOf": [
              {
                "type": "object"
              },
              {
                "type": "array",
                "items": {}
              }
            ]
          }
        }
      },
      "ContentTypeFieldEmbedMixConfig": {
        "enum": [
          1,
          2,
          3
        ],
        "type": "integer",
        "description": "Ref Type:\n  * `1` Refer only\n  * `2` Refer and create embed\n  * `3` Create only\n"
      },
      "AllowedContentTypeItem": {
        "required": [
          "name",
          "url"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the item"
          },
          "url": {
            "type": "string",
            "description": "URL of the item"
          }
        }
      },
      "ContentTypeFieldDefinition": {
        "required": [
          "core",
          "allowed_content_types",
          "ref_type"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "allowed_content_types": {
            "type": "array",
            "description": "List of allowed content types",
            "items": {
              "type": "string"
            }
          },
          "ref_type": {
            "$ref": "#/components/schemas/ContentTypeFieldEmbedMixConfig"
          },
          "allow_ref_edit": {
            "type": "boolean",
            "description": "Whether to allow ref editing"
          },
          "content_type_links": {
            "type": "object",
            "description": "Links related to the content type",
            "additionalProperties": {
              "$ref": "#/components/schemas/AllowedContentTypeItem"
            }
          },
          "default_value": {
            "type": "string",
            "description": "Default value for the field"
          }
        }
      },
      "LibraryAssetDefaultValue": {
        "required": [
          "asset_type",
          "asset_guid"
        ],
        "type": "object",
        "properties": {
          "asset_type": {
            "$ref": "#/components/schemas/LibraryAssetType"
          },
          "asset_guid": {
            "type": "string",
            "description": "Unique identifier of the asset"
          }
        }
      },
      "LibraryAssetFieldDefinition": {
        "required": [
          "core",
          "allowed_types"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "allowed_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LibraryAssetType"
            }
          },
          "default_values": {
            "type": "array",
            "description": "Default values for the field",
            "items": {
              "$ref": "#/components/schemas/LibraryAssetDefaultValue"
            }
          }
        }
      },
      "TextFieldDefinition": {
        "required": [
          "core",
          "validation_pattern",
          "min_length"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "validation_pattern": {
            "type": "string",
            "description": "Validation pattern of the field"
          },
          "min_length": {
            "type": "integer",
            "description": "Minimum length of the field"
          },
          "max_length": {
            "type": "integer",
            "description": "Maximum length of the field"
          },
          "default_values": {
            "type": "array",
            "description": "Default values of the field",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "BaseFieldDefinitionType": {
        "enum": [
          "boolean",
          "json",
          "url",
          "location"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "LocationDefaultValue": {
        "required": [
          "longitude",
          "latitude"
        ],
        "type": "object",
        "properties": {
          "longitude": {
            "type": "number",
            "description": "Longitude of the location"
          },
          "latitude": {
            "type": "number",
            "description": "Latitude of the location"
          }
        }
      },
      "BaseFieldDefinition": {
        "required": [
          "core",
          "base_type"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "base_type": {
            "$ref": "#/components/schemas/BaseFieldDefinitionType"
          },
          "default_values": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/LocationDefaultValue"
                },
                {
                  "type": "boolean"
                },
                {
                  "maxLength": 65536,
                  "minLength": 1,
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "object"
                },
                {
                  "type": "array",
                  "items": {}
                }
              ]
            }
          }
        }
      },
      "DatetimeFieldDefinition": {
        "required": [
          "core",
          "min_date",
          "max_date"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "min_date": {
            "type": "string",
            "format": "date-time",
            "description": "Minimum date of the field"
          },
          "max_date": {
            "type": "string",
            "format": "date-time",
            "description": "Maximum date of the field"
          },
          "default_values": {
            "type": "array",
            "description": "Default values of the field",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "RichTextFieldDefinition": {
        "required": [
          "core",
          "min_visual_text_length"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "min_visual_text_length": {
            "type": "integer",
            "description": "Minimum length of the field"
          },
          "max_visual_text_length": {
            "type": "integer",
            "description": "Maximum length of the field"
          },
          "default_values": {
            "type": "array",
            "description": "Default values of the field",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ChoiceDisplayOption": {
        "enum": [
          "radio",
          "dropdown",
          "tag",
          "checkbox"
        ],
        "type": "string",
        "description": "An enumeration."
      },
      "ChoiceFieldDefinition": {
        "required": [
          "core",
          "choices"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "choices": {
            "type": "object",
            "description": "Choices of the field",
            "additionalProperties": {
              "type": "string"
            }
          },
          "display_option": {
            "$ref": "#/components/schemas/ChoiceDisplayOption"
          },
          "default_values": {
            "type": "array",
            "description": "Default values of the field",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "NumberFieldDefinition": {
        "required": [
          "core"
        ],
        "type": "object",
        "properties": {
          "core": {
            "$ref": "#/components/schemas/CoreFieldDef"
          },
          "min_value": {
            "type": "number",
            "description": "Minimum value of the field"
          },
          "max_value": {
            "type": "number",
            "description": "Maximum value of the field"
          },
          "default_values": {
            "type": "array",
            "description": "Default values of the field",
            "items": {
              "type": "number"
            }
          }
        }
      },
      "SCContentTypeVersion": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseContentTypeVersionModel"
          },
          {
            "type": "object",
            "properties": {
              "field_definitions": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/ContentTypeFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/LibraryAssetFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/TextFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/BaseFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/DatetimeFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/RichTextFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/ChoiceFieldDefinition"
                    },
                    {
                      "$ref": "#/components/schemas/NumberFieldDefinition"
                    }
                  ]
                }
              }
            },
            "required": [
              "field_definitions"
            ]
          }
        ]
      },
      "VersionedContentTypeModel": {
        "required": [
          "name",
          "component",
          "content_type_guid",
          "created_by",
          "updated_by",
          "created_at",
          "updated_at",
          "links",
          "version"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the content type"
          },
          "description": {
            "type": "string",
            "description": "Description of the content type"
          },
          "component": {
            "type": "boolean",
            "description": "Indicates whether the content type is a component"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disabled status of the content type"
          },
          "source": {
            "type": "string",
            "description": "Source of the content type"
          },
          "version": {
            "$ref": "#/components/schemas/SCContentTypeVersion"
          },
          "thumbnail_guid": {
            "type": "string",
            "description": "Thumbnail GUID of the content type"
          },
          "content_type_guid": {
            "type": "string",
            "description": "Unique identifier of the content type"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the content type"
          },
          "updated_by": {
            "type": "string",
            "description": "Unique identifier of the user who last updated the content type"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content type was created, in ISO 8601 UTC format"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content type was last updated, in ISO 8601 UTC format"
          },
          "source_id": {
            "type": "string",
            "description": "Source of the content type"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the content type"
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the content type",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b"
              },
              "versions": {
                "type": "string",
                "description": "URL of the content type versions",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b/versions"
              }
            }
          }
        }
      },
      "LibraryStructuredContent": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the structured content",
            "example": "a24b834427a043ab8caed1ded4606f7d"
          },
          "title": {
            "type": "string",
            "description": "Title of the structured content",
            "example": "Some webpage"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the structured content was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the structured content, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the structured content in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the structured content in the library",
            "example": "/all files/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the structured content is archived or not",
            "example": true
          },
          "owner_organization_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of owner organization of the structured content",
            "example": "5108c3a9becac35915111191"
          },
          "content_body": {
            "$ref": "#/components/schemas/ContentDetailsModel"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the structured content",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the structured content",
                "example": "https://api.cmp.optimizely.com/v3/structured-contents/a24b834427a043ab8caed1ded4606f7d"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "created_at",
          "modified_at",
          "folder_id",
          "file_location",
          "is_archived",
          "labels",
          "owner_organization_id",
          "links"
        ]
      },
      "DeleteFieldValueModel": {
        "required": [
          "delete"
        ],
        "type": "object",
        "properties": {
          "order_index": {
            "type": "integer",
            "description": "Order index of the field value"
          },
          "delete": {
            "type": "boolean",
            "description": "Should be true if the field value needs to be deleted"
          }
        }
      },
      "StructuredContentFields": {
        "type": "object",
        "description": "The fields of structured content",
        "additionalProperties": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PatchLocalizedFieldValuesWithEmbeddedContent"
              },
              {
                "$ref": "#/components/schemas/DeleteLocaleFieldValueModel"
              }
            ]
          }
        }
      },
      "RecursivePatchStructuredContentFields": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "root_content": {
            "title": "Rootcontent",
            "type": "boolean",
            "description": "This is true when the content is not embedded in another content through a content type reference field"
          },
          "title": {
            "type": "string",
            "description": "Title of the structured content",
            "example": "Some webpage"
          },
          "expired": {
            "title": "Expired",
            "type": "boolean",
            "description": "Expired status of the content"
          },
          "expiry_datetime": {
            "title": "Expirydatetime",
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Date and time on which the content will expire, in ISO 8601 UTC format"
          },
          "source": {
            "title": "Source",
            "type": "string",
            "nullable": true,
            "description": "Source of the content"
          },
          "source_id": {
            "title": "Sourceid",
            "type": "string",
            "nullable": true,
            "description": "Source id of the content"
          },
          "source_metadata": {
            "title": "Sourcemetadata",
            "type": "string"
          },
          "content_body": {
            "title": "Contentbody",
            "nullable": false,
            "type": "object",
            "$ref": "#/components/schemas/StructuredContentFields"
          }
        }
      },
      "ContentFieldWithEmbeddedPatchValueModel": {
        "required": [
          "content_id",
          "patch_details"
        ],
        "type": "object",
        "properties": {
          "content_id": {
            "type": "string"
          },
          "patch_details": {
            "$ref": "#/components/schemas/RecursivePatchStructuredContentFields"
          }
        }
      },
      "PatchLocalizedFieldValuesWithEmbeddedContent": {
        "required": [
          "locale",
          "field_values"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string",
            "description": "The default value should be en_US"
          },
          "field_values": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/NumberFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/BooleanFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/DatetimeFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/TextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/RichTextFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LibraryAssetFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueWithEmbeddedModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/URLFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/JSONFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ChoiceFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/LocationFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/DeleteFieldValueModel"
                },
                {
                  "$ref": "#/components/schemas/ContentFieldWithEmbeddedPatchValueModel"
                }
              ]
            }
          }
        }
      },
      "DeleteLocaleFieldValueModel": {
        "required": [
          "locale",
          "delete"
        ],
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "delete": {
            "type": "boolean",
            "description": "Should be true if the field value with locale needs to be deleted"
          }
        }
      },
      "LibraryStructuredContentUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the structured content asset",
            "nullable": true
          },
          "is_archived": {
            "type": "boolean",
            "nullable": false,
            "description": "Whether the structured content should be archived",
            "example": true
          },
          "content_body": {
            "description": "The structured content body",
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "Title of the structured content",
                "nullable": true,
                "example": "Some webpage"
              },
              "expired": {
                "title": "Expired",
                "type": "boolean",
                "nullable": true,
                "description": "Expired status of the content"
              },
              "expiry_datetime": {
                "title": "Expirydatetime",
                "type": "string",
                "nullable": true,
                "format": "date-time",
                "description": "Date and time on which the content will expire, in ISO 8601 UTC format"
              },
              "source": {
                "title": "Source",
                "type": "string",
                "nullable": true,
                "description": "Source of the content"
              },
              "source_id": {
                "title": "Sourceid",
                "type": "string",
                "nullable": true,
                "description": "Source id of the content"
              },
              "source_metadata": {
                "title": "Sourcemetadata",
                "type": "string",
                "nullable": true,
                "description": "Source metadata of the content"
              },
              "fields": {
                "title": "Contentbody",
                "nullable": true,
                "type": "object",
                "$ref": "#/components/schemas/StructuredContentFields"
              }
            }
          }
        }
      },
      "ComposeContentFields": {
        "type": "object",
        "description": "Field values of the compose content, keyed by the field `api_id` of the content schema. Each value is an object keyed by locale code (for example `en-US`). Fields that are not localized are still keyed by the default locale. The value type depends on the field type in the content schema. Reference and embedded schema fields are returned as links only: `{\"meta\": {\"id\": \"...\", \"type\": \"link\", \"link_type\": \"content\"}}`.",
        "additionalProperties": {
          "type": "object",
          "description": "Value of one field, keyed by locale code",
          "additionalProperties": {}
        },
        "example": {
          "title": {
            "en-US": "Hello from Open API",
            "de": "Hallo"
          },
          "is_featured": {
            "en-US": true
          }
        }
      },
      "LibraryComposeContentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the compose content",
            "example": "db1jqsvq64lsu74mnujg"
          },
          "title": {
            "type": "string",
            "description": "Title of the compose content. Empty string if the content has no title.",
            "example": "Hello from Open API"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Status of the library asset",
            "example": "published"
          },
          "content_schema": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "description": "Content schema of the compose content",
            "properties": {
              "id": {
                "type": "string",
                "nullable": true,
                "description": "Internal identifier of the content schema",
                "example": "db5lfu5h7f0s1otndoug"
              },
              "name": {
                "type": "string",
                "nullable": true,
                "description": "Name of the content schema",
                "example": "Blog Post"
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the compose content was created, in ISO 8601 UTC format",
            "example": "2026-10-11T09:36:01Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the compose content, in ISO 8601 UTC format",
            "example": "2026-10-11T10:02:45Z"
          },
          "folder_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the folder containing the compose content in the library",
            "example": "6bb8db20a5b611ebae319b7c541b1a5a"
          },
          "file_location": {
            "type": "string",
            "description": "Location of the folder containing the compose content in the library",
            "example": "/all files/"
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the compose content is archived or not",
            "example": false
          },
          "owner_organization_id": {
            "type": "string",
            "description": "ID of owner organization of the compose content",
            "example": "5108c3a9becac35915111191"
          },
          "fields": {
            "type": "object",
            "description": "Field values of the published version of the compose content",
            "allOf": [
              {
                "$ref": "#/components/schemas/ComposeContentFields"
              }
            ]
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the compose content",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the compose content",
                "example": "https://api.cmp.optimizely.com/v3/compose-contents/db1jqsvq64lsu74mnujg"
              },
              "content_schema": {
                "type": "string",
                "nullable": true,
                "description": "URL of the content schema",
                "example": "https://api.cmp.optimizely.com/v3/compose/content-schemas/db5lfu5h7f0s1otndoug"
              }
            },
            "required": [
              "self",
              "content_schema"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "content_schema",
          "created_at",
          "modified_at",
          "folder_id",
          "file_location",
          "is_archived",
          "owner_organization_id",
          "fields",
          "labels",
          "links"
        ]
      },
      "ComposeFieldDefinition": {
        "type": "object",
        "additionalProperties": false,
        "description": "Definition of one field in a content schema",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal identifier of the field",
            "example": "db5lgh5h7f0s1otndp90"
          },
          "api_id": {
            "type": "string",
            "description": "Identifier of the field. Use it as the key in compose content `fields`.",
            "example": "title"
          },
          "name": {
            "type": "string",
            "description": "Display name of the field",
            "example": "Title"
          },
          "type": {
            "type": "string",
            "description": "Type of the field. For example `string`, `boolean`, `object`, `list`, `date_time`, `rich_text`, `reference` or `embedded_schema`.",
            "example": "string"
          },
          "required": {
            "type": "boolean",
            "description": "Whether the field must have a value before the content can be published",
            "example": false
          },
          "localized": {
            "type": "boolean",
            "description": "Whether the field holds a separate value per locale",
            "example": true
          },
          "items": {
            "type": "object",
            "nullable": true,
            "additionalProperties": false,
            "description": "Definition of the list items. Set only for list fields.",
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of each item in the list",
                "example": "string"
              },
              "link_type": {
                "type": "string",
                "nullable": true,
                "description": "Target type when the items are references",
                "example": null
              },
              "validations": {
                "type": "array",
                "nullable": true,
                "description": "Validation rules applied to each item",
                "items": {
                  "type": "object",
                  "additionalProperties": {}
                },
                "example": null
              }
            },
            "required": [
              "type",
              "link_type",
              "validations"
            ]
          },
          "validations": {
            "type": "array",
            "nullable": true,
            "description": "Validation rules of the field",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "example": [
              {
                "size": {
                  "min": 1,
                  "max": 60
                }
              }
            ]
          },
          "link_type": {
            "type": "string",
            "nullable": true,
            "description": "Target type of a reference field",
            "example": null
          }
        },
        "required": [
          "id",
          "api_id",
          "name",
          "type",
          "required",
          "localized",
          "items",
          "validations",
          "link_type"
        ]
      },
      "ComposeContentSchemaResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal identifier of the content schema",
            "example": "db5lfu5h7f0s1otndoug"
          },
          "api_id": {
            "type": "string",
            "description": "Identifier of the content schema, used in `schema_id` when creating compose content",
            "example": "blog_post"
          },
          "name": {
            "type": "string",
            "description": "Name of the content schema",
            "example": "Blog Post"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the content schema",
            "example": "A blog post with a title and a body"
          },
          "display_field_id": {
            "type": "string",
            "nullable": true,
            "description": "Field used as the display title of a compose content",
            "example": "title"
          },
          "fields": {
            "type": "array",
            "description": "Fields of the content schema",
            "items": {
              "$ref": "#/components/schemas/ComposeFieldDefinition"
            }
          },
          "version": {
            "type": "integer",
            "description": "Version of the content schema",
            "example": 2
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content schema was created, in ISO 8601 UTC format",
            "example": "2026-10-11T09:33:44Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent update of the content schema, in ISO 8601 UTC format",
            "example": "2026-10-11T09:35:00Z"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the content schema",
                "example": "https://api.cmp.optimizely.com/v3/compose/content-schemas/blog_post"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "api_id",
          "name",
          "description",
          "display_field_id",
          "fields",
          "version",
          "created_at",
          "updated_at",
          "links"
        ]
      },
      "ContentGraphResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "instance_id": {
            "type": "string",
            "description": "Unique identifier of the content graph instance",
            "example": "00e3d1f85ceb41408b3e323a6b3b188d"
          },
          "instance_category": {
            "type": "string",
            "description": "Category of the content graph instance, either `new` or `existing`. `existing` instances are used by CMS organizations.",
            "enum": [
              "existing",
              "new"
            ],
            "example": "existing"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name of the content graph instance",
            "example": "Staging"
          },
          "source_id": {
            "type": "string",
            "description": "Namespace within the content graph instance that holds the organization's content. `existing` instances use `cmp` for library assets and `cmpsc` for structured contents, `new` instances use `default`.",
            "example": "cmp"
          }
        },
        "required": [
          "instance_id",
          "instance_category",
          "name",
          "source_id"
        ]
      },
      "ContentGraphListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of content graph instances",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContentGraphResponse"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/content-graphs?type=dam&offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "ContentGraphQueryRequest": {
        "type": "object",
        "additionalProperties": false,
        "description": "GraphQL request envelope. Both properties are forwarded to Optimizely Graph verbatim, so they use the GraphQL protocol names rather than the snake_case convention used elsewhere in this API.",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "GraphQL query to execute against the content graph instance",
            "example": "query MyQuery($after: String) { cmp_PublicImageAsset(limit: 50, cursor: $after) { total items { Id } cursor } }"
          },
          "variables": {
            "type": "object",
            "additionalProperties": true,
            "description": "Values for the variables declared by `query`",
            "properties": {},
            "example": {
              "after": null
            }
          }
        },
        "required": [
          "query"
        ]
      },
      "ContentGraphQueryResponse": {
        "type": "object",
        "additionalProperties": true,
        "description": "The content graph's GraphQL response, passed through unchanged. Its shape is determined by the submitted query: `data` (and `extensions`) for a successful query, or `errors` when the graph rejects it.",
        "properties": {
          "data": {
            "type": "object",
            "additionalProperties": true,
            "description": "Query result, shaped by the submitted GraphQL query.",
            "properties": {}
          },
          "errors": {
            "type": "array",
            "description": "Present when the graph rejects the query.",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "properties": {}
            }
          },
          "extensions": {
            "type": "object",
            "additionalProperties": true,
            "description": "Graph metadata such as correlation id and query cost.",
            "properties": {}
          }
        },
        "example": {
          "data": {
            "cmp_PublicImageAsset": {
              "cursor": "FGluY2x1",
              "total": 53,
              "items": [
                {
                  "Id": "03f47ac464bc11f18b0102420ac80022"
                }
              ]
            }
          },
          "extensions": {
            "correlationId": "a18548eeeee29cba",
            "cost": 51
          }
        }
      },
      "LabelGroupValue": {
        "type": "object",
        "additionalProperties": false,
        "description": "Values of a label group",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the label group value",
            "example": "1693bd22eac001bae8f33eab29ee5bc2"
          },
          "name": {
            "type": "string",
            "description": "Name of the label group value",
            "example": "Pillar 1"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "LabelGroup": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the label group",
            "example": "693c3b28b10a22800e1936fa53324ac1"
          },
          "name": {
            "type": "string",
            "description": "Name of the label group",
            "example": "Content Pillar"
          },
          "source_org_type": {
            "type": "string",
            "enum": [
              "current",
              "related"
            ],
            "description": "Source organization type where the label group is listed.\n`current` means the label group is listed in the organization with which the Open API App is associated.\n`related` means the label group is listed in one of the organizations related to the `current` organization.\n"
          },
          "values": {
            "description": "Values of the label group",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelGroupValue"
            }
          }
        },
        "required": [
          "id",
          "name",
          "source_org_type",
          "values"
        ]
      },
      "TaskListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the task",
            "example": "837f910551b00a722e0418830cee6612"
          },
          "title": {
            "type": "string",
            "description": "Title of the task",
            "example": "The awesome task"
          },
          "start_at": {
            "type": "string",
            "nullable": true,
            "description": "Start date of the task in ISO 8601 UTC format",
            "example": "2024-06-01T06:00:00Z"
          },
          "due_at": {
            "type": "string",
            "nullable": true,
            "description": "Due date of the task in ISO 8601 UTC format",
            "example": "2024-06-01T06:00:00Z"
          },
          "modified_at": {
            "type": "string",
            "nullable": true,
            "description": "Modified date of the task in ISO 8601 UTC format",
            "example": "2024-06-01T06:00:00Z"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier of the task",
            "example": "TSK-1589"
          },
          "is_completed": {
            "type": "boolean",
            "description": "Whether the task is completed or not",
            "example": false
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the task is archived or not",
            "example": false
          },
          "campaign_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the campaign",
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          "workflow_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the workflow",
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          "milestone_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the milestone",
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          "status": {
            "type": "string",
            "description": "Current status of the task",
            "enum": [
              "Archived",
              "Completed",
              "Overdue",
              "Not Started",
              "In Progress",
              "On Hold"
            ],
            "example": "Not Started"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534"
              },
              "campaign": {
                "type": "string",
                "nullable": true,
                "description": "URL of the campaign that the task is associated with",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/2e7f9107351b00a722e0412230cee5534"
              },
              "workflow": {
                "type": "string",
                "nullable": true,
                "description": "URL of the workflow the task",
                "example": "https://api.cmp.optimizely.com/v3/workflows/63f1c2b675be4132854d2741"
              },
              "milestone": {
                "type": "string",
                "nullable": true,
                "description": "URL of the milestone that the task is associated with",
                "example": "https://api.cmp.optimizely.com/v3/milestones/63f1c2b675be4132854d2741"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the task",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5c52cc153db27d0e5141146f"
                  }
                },
                "required": [
                  "self"
                ]
              }
            },
            "required": [
              "self",
              "campaign",
              "workflow",
              "milestone",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "start_at",
          "due_at",
          "modified_at",
          "reference_id",
          "campaign_id",
          "workflow_id",
          "milestone_id",
          "is_completed",
          "is_archived",
          "status",
          "links"
        ]
      },
      "TaskCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the task",
            "example": "Awesome Task"
          },
          "campaign_id": {
            "type": "string",
            "nullable": false,
            "description": "Id of the campaign to be associated with the task",
            "example": "6684f31be89a526d030cfc0f"
          },
          "workflow_id": {
            "type": "string",
            "nullable": false,
            "description": "Id of the workflow to be used in the task",
            "example": "665d56034854d100ad7cb8fb"
          },
          "start_at": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Start date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z). If `workflow_id` is present and the workflow has step duration, then either `start_at` or `due_at` is required. If both `start_at` and `due_at` is provided with a `workflow_id` that has step duration, then the `start_at` field will be ignored.",
            "example": "2020-10-01T06:00:00Z"
          },
          "due_at": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Due date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z). The `due_at` field is required if `workflow_id` is present and the workflow does not have step duration. If `workflow_id` is present and the workflow has step duration, then either `start_at` or `due_at` is required.",
            "example": "2020-10-06T13:15:30Z"
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "Id of the owner of the task",
            "example": "665d5717c8ba0201647a0991"
          }
        },
        "required": [
          "title"
        ]
      },
      "TaskSubStep": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the substep",
            "example": "9c7f910551b00a722e0418830cee2564"
          },
          "title": {
            "type": "string",
            "description": "Title of the substep",
            "example": "Sample step"
          },
          "assignee_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the assignee of the step containing the substep",
            "example": "5fdf31d57f0d0e362e2b5908"
          },
          "assignee_type": {
            "type": "string",
            "enum": [
              "user",
              "team"
            ],
            "description": "Type of the assignee of the step containing the substep.",
            "example": "user"
          },
          "is_completed": {
            "type": "boolean",
            "description": "Determines whether the substep is completed in Optimizely CMP",
            "example": false
          },
          "is_in_progress": {
            "type": "boolean",
            "description": "Determines whether the substep is In Progress in Optimizely CMP",
            "example": false
          },
          "is_skipped": {
            "type": "boolean",
            "description": "Determines whether the substep is skipped in Optimizely CMP",
            "example": false
          },
          "is_external": {
            "type": "boolean",
            "description": "Determines whether the substep is external in Optimizely CMP",
            "example": true
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the substep",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/steps/6d7f910551b00a722e0418830cee5564/sub-steps/9c7f910551b00a722e0418830cee2564"
              },
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534"
              },
              "external_work": {
                "type": "string",
                "nullable": true,
                "description": "URL of the external work associated with substep if substep is external in _Optimizely CMP_",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/steps/6d7f910551b00a722e0418830cee5564/sub-steps/9c7f910551b00a722e0418830cee2564/external-work"
              },
              "assignee": {
                "type": "string",
                "nullable": true,
                "description": "Assignee of the step containing the substep",
                "example": "https://api.cmp.optimizely.com/v3/users/5fdf31d57f0d0e362e2b5908"
              }
            },
            "required": [
              "self",
              "task",
              "external_work"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "assignee_id",
          "assignee_type",
          "is_completed",
          "is_in_progress",
          "is_skipped",
          "is_external",
          "links"
        ]
      },
      "TaskStep": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the step",
            "example": "6d7f910551b00a722e0418830cee5564"
          },
          "title": {
            "type": "string",
            "description": "Title of the step",
            "example": "Sample step"
          },
          "is_completed": {
            "type": "boolean",
            "description": "Determines whether the step is completed in Optimizely CMP",
            "example": false
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the step",
            "example": "Description of the step"
          },
          "due_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Due date and time of the step containing the substep,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "sub_steps": {
            "type": "array",
            "description": "Substeps of the step",
            "items": {
              "$ref": "#/components/schemas/TaskSubStep"
            }
          }
        },
        "required": [
          "id",
          "title",
          "is_completed",
          "description",
          "due_at",
          "sub_steps"
        ]
      },
      "TaskResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the task",
            "example": "5d7f910551b00a722e0418830cee5534"
          },
          "title": {
            "type": "string",
            "description": "Title of the task",
            "example": "Awesome Task"
          },
          "start_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Start date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "due_at": {
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Due date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "is_completed": {
            "type": "boolean",
            "description": "Determines whether the task is completed",
            "example": false
          },
          "is_archived": {
            "type": "boolean",
            "description": "Determines whether the task is archived",
            "example": false
          },
          "status": {
            "type": "string",
            "description": "Current status of the task",
            "enum": [
              "Archived",
              "Completed",
              "Overdue",
              "Not Started",
              "In Progress",
              "On Hold"
            ],
            "example": "Not Started"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference ID of the task",
            "example": "TSK-123"
          },
          "workflow_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of workflow",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "campaign_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the campaign",
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          "milestone_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the milestone",
            "example": "8n7f910o51b00b722o0418n30cie8211"
          },
          "modified_at": {
            "type": "string",
            "nullable": true,
            "description": "Modified date of the task in ISO 8601 UTC format",
            "example": "2024-06-01T06:00:00Z"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the task",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "steps": {
            "type": "array",
            "description": "Steps of the task",
            "items": {
              "$ref": "#/components/schemas/TaskStep"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534"
              },
              "assets": {
                "type": "string",
                "description": "URL for getting the list of the task assets or adding a new asset to the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/assets"
              },
              "attachments": {
                "type": "string",
                "description": "URL for getting the list of the task attachments",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/attachments"
              },
              "brief": {
                "type": "string",
                "nullable": true,
                "description": "URL of the task brief",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/brief"
              },
              "campaign": {
                "type": "string",
                "description": "URL of the campaign that the task is associated with",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/2e7f9107351b00a722e0412230cee5534"
              },
              "custom_fields": {
                "type": "string",
                "nullable": true,
                "description": "URL of the list of custom fields added to the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/custom-fields"
              },
              "milestone": {
                "type": "string",
                "nullable": true,
                "description": "URL of the milestone that the task is associated with",
                "example": "https://api.cmp.optimizely.com/v3/milestones/63f1c2b675be4132854d2741"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the task",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5c52cc153db27d0e5141146f"
                  },
                  "brief": {
                    "type": "string",
                    "description": "Web URL of the task brief",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5c52cc153db27d0e5141146f?activeTab=brief"
                  }
                },
                "required": [
                  "self",
                  "brief"
                ]
              }
            },
            "required": [
              "self",
              "assets",
              "attachments",
              "brief",
              "campaign",
              "custom_fields",
              "milestone",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "start_at",
          "due_at",
          "is_completed",
          "is_archived",
          "reference_id",
          "status",
          "campaign_id",
          "milestone_id",
          "modified_at",
          "labels",
          "steps",
          "links"
        ]
      },
      "TaskUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "labels": {
            "type": "array",
            "nullable": false,
            "description": "Labels to associate",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelRequest"
            }
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the owner for the task",
            "example": "6853b3e37ed5e42cff067434"
          },
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the task"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Start date of the task",
            "example": "2025-10-06T13:00:00Z"
          },
          "due_at": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Due date and time of the task",
            "example": "2025-10-06T13:00:00Z"
          },
          "dependent_tasks": {
            "type": "string",
            "nullable": false,
            "enum": [
              "keep",
              "shift"
            ],
            "description": "How to handle tasks that depend on this task when `due_at` moves it by one or more business days. Only used together with `due_at`.\n\n- `keep`: move only this task. Dependent tasks keep their dates.\n- `shift`: move each dependent task by the same number of business days. Business days follow the organization's working days; organization-specific blocked dates are not taken into account. Completed dependent tasks and dependent tasks you cannot edit are left unchanged.\n\nIf omitted and the change affects dependent tasks, the request is rejected with `409` and nothing is updated. The `409` response lists the affected tasks.\n",
            "example": "keep"
          },
          "campaign_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the campaign to be associated with the task",
            "example": "6684f31be89a526d030cfc0f"
          },
          "workflow_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the workflow to be used in the task",
            "example": "665d56034854d100ad7cb8fb"
          },
          "status": {
            "type": "string",
            "nullable": false,
            "enum": [
              "not-started",
              "in-progress",
              "completed",
              "on-hold",
              "archived",
              "unarchive",
              "resume"
            ],
            "description": "New status of the task. `unarchive` and `resume` take the task out of archived or on-hold and restore the status that matches its progress.",
            "example": "in-progress"
          }
        }
      },
      "TaskDependentTasksConflictError": {
        "type": "object",
        "description": "Error returned when changing a task's due date affects tasks that depend on it",
        "properties": {
          "code": {
            "type": "integer",
            "example": 409
          },
          "status": {
            "type": "string",
            "example": "Conflict"
          },
          "message": {
            "type": "string",
            "description": "Message describing the error",
            "example": "Changing the due date affects 1 dependent task(s). Set dependent_tasks to \"keep\" or \"shift\" to proceed."
          },
          "details": {
            "type": "object",
            "additionalProperties": true,
            "properties": {
              "reason": {
                "type": "string",
                "description": "Machine-readable reason for the error",
                "enum": [
                  "dependent_tasks_affected"
                ]
              },
              "business_days_moved": {
                "type": "integer",
                "description": "Number of business days the due date change moves the task by. Negative when the task moves earlier.",
                "example": 5
              },
              "dependent_tasks": {
                "type": "array",
                "description": "Tasks that depend on this task",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier of the dependent task",
                      "example": "6abfc0ae8cd4e76aada6742c"
                    },
                    "reference_number": {
                      "type": "integer",
                      "description": "Reference number of the dependent task",
                      "example": 13
                    },
                    "title": {
                      "type": "string",
                      "description": "Title of the dependent task",
                      "example": "Book booth staff"
                    },
                    "completed": {
                      "type": "boolean",
                      "description": "Whether the dependent task is completed. Completed tasks are not moved by `shift`.",
                      "example": false
                    },
                    "editable": {
                      "type": "boolean",
                      "description": "Whether you can edit the dependent task. Tasks you cannot edit are not moved by `shift`.",
                      "example": true
                    },
                    "current_due_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true,
                      "description": "Current due date of the dependent task",
                      "example": "2026-07-06T00:00:00Z"
                    },
                    "new_due_at": {
                      "type": "string",
                      "format": "date-time",
                      "nullable": true,
                      "description": "Due date the dependent task would get with `shift`",
                      "example": "2026-07-13T00:00:00Z"
                    }
                  }
                }
              }
            }
          }
        },
        "required": [
          "message"
        ]
      },
      "AddUrlToTaskRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the URL.",
            "example": "Google"
          },
          "url": {
            "type": "string",
            "nullable": false,
            "description": "The URL to be added to the task.",
            "example": "https://www.google.com"
          }
        },
        "required": [
          "url"
        ]
      },
      "TaskUrlResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the URL added to the task",
            "example": "692851fbbd8c9217e28f7ad1"
          },
          "created_at": {
            "type": "string",
            "description": "Timestamp when the URL was added to the task",
            "format": "date-time",
            "example": "2024-06-01T06:00:00Z"
          }
        },
        "required": [
          "id",
          "created_at"
        ]
      },
      "TaskBriefTemplateValue": {
        "type": "object",
        "description": "Template info of the brief if the brief is of template type",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the template",
            "example": "9nu8ue9wf8u9nusd9f"
          },
          "name": {
            "type": "string",
            "description": "Name of the template",
            "example": "My Template"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "TaskBriefResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the task brief",
            "example": "template",
            "enum": [
              "template",
              "attachment",
              "text"
            ]
          },
          "title": {
            "type": "string",
            "description": "Title of the task brief",
            "example": "Awesome Task Brief",
            "nullable": false
          },
          "template": {
            "type": "object",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskBriefTemplateValue"
              }
            ]
          },
          "fields": {
            "description": "List of fields of the brief",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the brief field",
                  "example": "My Dropdown"
                },
                "settings_field_id": {
                  "type": "string",
                  "description": "Unique identifier of the settings field. If available, can be used to look up the field details using settings API.",
                  "example": "67c5684de8b943290648a693",
                  "nullable": true
                },
                "value": {
                  "type": "array",
                  "description": "List of values set for the brief field",
                  "items": {
                    "type": "string",
                    "description": "Value set in the brief field",
                    "example": "option 1"
                  }
                }
              },
              "required": [
                "id",
                "name",
                "value",
                "is_id_settings_searchable"
              ]
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the brief",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/brief"
              },
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "self",
              "task"
            ]
          }
        },
        "required": [
          "type",
          "title",
          "fields",
          "links"
        ]
      },
      "TaskCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the custom field",
            "example": "9nu8ue9wf8u9nusd9q"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "My Dropdown"
          },
          "type": {
            "type": "string",
            "description": "Type of the custom field",
            "example": "dropdown",
            "enum": [
              "text_field",
              "multi_line_text_field",
              "checkboxes",
              "dropdown",
              "multi_select_dropdown",
              "multiple_choice",
              "date_field",
              "image",
              "video",
              "rich_text_field"
            ]
          },
          "values": {
            "type": "array",
            "description": "List of values of the custom field",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": true,
                  "description": "Identifier of the custom field value",
                  "example": "1nu8ue9wf8u9nusd9u"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the custom field value",
                  "example": "Some text"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the custom field",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/custom-fields/9nu8ue9wf8u9nusd9q"
              },
              "choices": {
                "type": "string",
                "nullable": true,
                "description": "URL of the available custom field choices",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/custom-fields/9nu8ue9wf8u9nusd9q/choices"
              }
            },
            "required": [
              "self",
              "choices"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "values",
          "links"
        ]
      },
      "TaskCustomFieldUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "values": {
            "type": "array",
            "minItems": 1,
            "description": "An array of choice IDs, if the custom field has choices. Otherwise, text values to update the custom field values with. Must contain at least one id/value in the array. For custom fields of type `checkboxes`, you can provide an array of multiple-choice IDs as values.\nValue for the custom field of type `date_field` must follow this format: `YYYY-MM-DD`.\n",
            "items": {
              "type": "string",
              "example": "1nu8ue9wf8u9nusd9u"
            }
          }
        },
        "required": [
          "values"
        ]
      },
      "TaskCustomFieldChoiceListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the custom field choice",
            "example": "j90uv0sd9i0si09sdip"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom field choice",
            "example": "Some option"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "FieldBaseType": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the field",
            "example": "64be245ec0d79e79fdf1ad84"
          },
          "name": {
            "type": "string",
            "description": "Name of the field",
            "example": "Dropdown 101"
          },
          "values": {
            "type": "array",
            "description": "List of selected values or from user input",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "description": "Type of the field",
            "example": "text"
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "values"
        ]
      },
      "FieldTypeCheckbox": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the checkbox",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Checkbox 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "color"
                  ]
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "FieldTypeCurrencyNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true
              },
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              },
              "currency_code": {
                "type": "string",
                "description": "Currency code of the numerical field",
                "example": "USD"
              }
            },
            "required": [
              "has_thousand_separator",
              "decimal_places",
              "currency_code"
            ]
          }
        ]
      },
      "FieldTypeCommon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object"
          }
        ]
      },
      "FieldTypeDropdown": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Select multiple values from the dropdown"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the dropdown",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Dropdown 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "FieldTypeLabel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Select multiple values from the label"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the label",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Label 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "color"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "FieldTypePercentageNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              }
            },
            "required": [
              "decimal_places"
            ]
          }
        ]
      },
      "FieldTypeRadio": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the radio button",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Identifier of the choice",
                      "example": "6ceee2f4fa3411ecb37802420ac8001b"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Radio 1 Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name",
                    "color"
                  ]
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "FieldTypeSimpleNumber": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FieldBaseType"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true
              },
              "decimal_places": {
                "type": "integer",
                "nullable": true,
                "description": "Decimal place of the numerical field",
                "example": 2
              }
            },
            "required": [
              "has_thousand_separator",
              "decimal_places"
            ]
          }
        ]
      },
      "FieldListResponseItem": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/FieldTypeCommon"
          },
          {
            "$ref": "#/components/schemas/FieldTypeLabel"
          },
          {
            "$ref": "#/components/schemas/FieldTypeDropdown"
          },
          {
            "$ref": "#/components/schemas/FieldTypeRadio"
          },
          {
            "$ref": "#/components/schemas/FieldTypeCheckbox"
          },
          {
            "$ref": "#/components/schemas/FieldTypeSimpleNumber"
          },
          {
            "$ref": "#/components/schemas/FieldTypePercentageNumber"
          },
          {
            "$ref": "#/components/schemas/FieldTypeCurrencyNumber"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/FieldTypeCheckbox",
            "currency_number": "#/components/schemas/FieldTypeCurrencyNumber",
            "date": "#/components/schemas/FieldTypeCommon",
            "dropdown": "#/components/schemas/FieldTypeDropdown",
            "image": "#/components/schemas/FieldTypeCommon",
            "label": "#/components/schemas/FieldTypeLabel",
            "percentage_number": "#/components/schemas/FieldTypePercentageNumber",
            "radio_button": "#/components/schemas/FieldTypeRadio",
            "rich_text": "#/components/schemas/FieldTypeCommon",
            "simple_number": "#/components/schemas/FieldTypeSimpleNumber",
            "text": "#/components/schemas/FieldTypeCommon",
            "text_area": "#/components/schemas/FieldTypeCommon",
            "video": "#/components/schemas/FieldTypeCommon"
          }
        }
      },
      "ObjectFieldCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/StringTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/MultiChoiceTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/RadioButtonTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/NumberTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/DateTypeObjectField"
          },
          {
            "$ref": "#/components/schemas/AssetTypeObjectField"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/MultiChoiceTypeObjectField",
            "currency_number": "#/components/schemas/NumberTypeObjectField",
            "date": "#/components/schemas/DateTypeObjectField",
            "dropdown": "#/components/schemas/DropdownTypeObjectField",
            "label": "#/components/schemas/MultiChoiceTypeObjectField",
            "radio_button": "#/components/schemas/RadioButtonTypeObjectField",
            "percentage_number": "#/components/schemas/NumberTypeObjectField",
            "simple_number": "#/components/schemas/NumberTypeObjectField",
            "text": "#/components/schemas/StringTypeObjectField",
            "text_area": "#/components/schemas/StringTypeObjectField",
            "rich_text": "#/components/schemas/StringTypeObjectField",
            "image": "#/components/schemas/AssetTypeObjectField",
            "video": "#/components/schemas/AssetTypeObjectField"
          }
        }
      },
      "ObjectFieldCreateResponse": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/FieldTypeCommon"
          },
          {
            "$ref": "#/components/schemas/FieldTypeLabel"
          },
          {
            "$ref": "#/components/schemas/FieldTypeDropdown"
          },
          {
            "$ref": "#/components/schemas/FieldTypeRadio"
          },
          {
            "$ref": "#/components/schemas/FieldTypeCheckbox"
          },
          {
            "$ref": "#/components/schemas/FieldTypeSimpleNumber"
          },
          {
            "$ref": "#/components/schemas/FieldTypePercentageNumber"
          },
          {
            "$ref": "#/components/schemas/FieldTypeCurrencyNumber"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/FieldTypeCheckbox",
            "currency_number": "#/components/schemas/FieldTypeCurrencyNumber",
            "date": "#/components/schemas/FieldTypeCommon",
            "dropdown": "#/components/schemas/FieldTypeDropdown",
            "image": "#/components/schemas/FieldTypeCommon",
            "label": "#/components/schemas/FieldTypeLabel",
            "percentage_number": "#/components/schemas/FieldTypePercentageNumber",
            "radio_button": "#/components/schemas/FieldTypeRadio",
            "rich_text": "#/components/schemas/FieldTypeCommon",
            "simple_number": "#/components/schemas/FieldTypeSimpleNumber",
            "text": "#/components/schemas/FieldTypeCommon",
            "text_area": "#/components/schemas/FieldTypeCommon",
            "video": "#/components/schemas/FieldTypeCommon"
          }
        }
      },
      "TaskFieldUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/StringTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/NumberTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DateTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "currency_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "date": "#/components/schemas/DateTypeObjectFieldUpdatePayload",
            "dropdown": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload",
            "label": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "radio_button": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload",
            "percentage_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "simple_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "text_area": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "rich_text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "image": "#/components/schemas/AssetTypeObjectFieldUpdatePayload",
            "video": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        }
      },
      "TaskSubStepRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "is_completed": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Whether the substep should be completed; cannot be passed together with `is_in_progress`, `is_skipped` or `assignee_id`",
            "example": true
          },
          "is_in_progress": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Whether the substep should be progressed; cannot be passed together with `is_completed`, `is_skipped` or `assignee_id`",
            "example": true
          },
          "is_skipped": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Whether the substep should be skipped; cannot be passed together with `is_in_progress`, `is_completed` or `assignee_id`"
          },
          "assignee_id": {
            "type": "string",
            "nullable": true,
            "description": "ID of the assignee for the substep; cannot be passed together with `is_completed`, `is_in_progress` or `is_skipped`",
            "example": "5fdf31d57f0d0e362e2b5908"
          },
          "assignee_type": {
            "type": "string",
            "enum": [
              "user",
              "team"
            ],
            "description": "Type of the assignee for the substep. If not provided with `assignee_id`, defaults to `user`.",
            "example": "user"
          }
        }
      },
      "TaskStepRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "due_at": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Due date and time of the task step, in ISO 8601 UTC format (2020-02-10T10:40:45Z). Point to note: in the CMP web interface, a popup is shown while updating a step's due date to inform the user of temporal or sequential constraints based on the due date of other steps. However, this API will update the step's due date while superceding any validation for the workflow.",
            "example": "2025-10-06T13:00:00Z"
          }
        }
      },
      "TaskExternalWorkResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "type": "string",
            "nullable": true,
            "description": "Identifier of the external work",
            "example": "MY-PROJ-123"
          },
          "title": {
            "type": "string",
            "nullable": true,
            "description": "Title of the external work",
            "example": "A very important ticket"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Status of the external work",
            "example": "In Progress"
          },
          "url": {
            "type": "string",
            "nullable": true,
            "description": "Link to the external work",
            "example": "https://example.com/some-project/MY-PROJ-123"
          },
          "external_system": {
            "type": "string",
            "description": "Name of the external system",
            "example": "jira"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL to get or update the external work information",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee6631/steps/32982hf94j98cnr48034nv035/sub-steps/9n390809r384nv503459075034nv5/external-work"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "identifier",
          "title",
          "status",
          "url",
          "external_system",
          "links"
        ]
      },
      "TaskExternalWorkRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50,
            "nullable": true,
            "description": "Identifier of the external work",
            "example": "MY-PROJ-123"
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "nullable": true,
            "description": "Title of the external work",
            "example": "A very important ticket"
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "nullable": true,
            "description": "Status of the external work",
            "example": "In Progress"
          },
          "url": {
            "type": "string",
            "maxLength": 500,
            "nullable": true,
            "description": "Link to the external work (must be a valid URL with HTTPS scheme)",
            "example": "https://example.com/some-project/MY-PROJ-123"
          }
        }
      },
      "AttachmentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the attachment",
            "example": "5a7f910511b0a72230ce6631"
          },
          "name": {
            "type": "string",
            "description": "Filename of the attachment",
            "example": "sample_image.png"
          },
          "url": {
            "type": "string",
            "description": "Download URL of the attachment",
            "example": "https://files.cmp.optimizely.com/download/2115bfe4450c11ebaae8000c291b51d4"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ]
      },
      "TaskSubStepCommentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the substep comment",
            "example": "5fe38c39574b52a62a089239"
          },
          "value": {
            "type": "string",
            "description": "Content of the comment",
            "example": "Well done!"
          },
          "is_resolved": {
            "type": "boolean",
            "description": "Determines if the comment is resolved in Optimizely CMP",
            "example": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the task substep comment,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last modification date and time of the task substep comment,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T14:15:30Z"
          },
          "attachments": {
            "description": "List of attachments of the comment",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentResponse"
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "sample.png",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the substep comment",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/steps/6d7f910551b00a722e0418830cee5564/sub-steps/9c7f910551b00a722e0418830cee2564"
              },
              "comment_by": {
                "type": "string",
                "description": "Creator of the substep comment",
                "example": "https://api.cmp.optimizely.com/v3/users/5fe38eea574b52a62a08923a"
              },
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534"
              },
              "sub_step": {
                "type": "string",
                "description": "URL of the substep",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/steps/6d7f910551b00a722e0418830cee5564/sub-steps/9c7f910551b00a722e0418830cee2564"
              }
            },
            "required": [
              "self",
              "comment_by",
              "task",
              "sub_step"
            ]
          }
        },
        "required": [
          "id",
          "value",
          "is_resolved",
          "created_at",
          "modified_at",
          "attachments"
        ]
      },
      "AttachmentRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint.",
            "example": "ce8995aea58b11ea8cd90242ac120005"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filename of the attachment",
            "example": "sample_image.png"
          }
        },
        "required": [
          "key",
          "name"
        ]
      },
      "CommentWithReplyCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "minLength": 1,
            "description": "Content of the comment. Markdown is supported. To mention a user belonging to the organization, use the `@[name](openapi-user-link)` format.",
            "example": "Comment mentioning @[Organization User](https://api.cmp.optimizely.com/v3/users/5fe38aeb574b52a62a089238)"
          },
          "attachments": {
            "description": "List of comment attachments.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            }
          },
          "parent_comment_id": {
            "type": "string",
            "description": "Parent comment id to reply.",
            "example": "da80cfd7bbf84959a8a981acbad996b3"
          }
        },
        "required": [
          "value"
        ]
      },
      "TaskSubStepCommentUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "minLength": 1,
            "description": "Updated comment value. Markdown is supported. To mention a user belonging to the organization, use `@[name](openapi-user-link)` format.",
            "example": "Updated comment mentioning @[Organization User](https://api.cmp.optimizely.com/v3/users/5fe38aeb574b52a62a089238)"
          }
        },
        "required": [
          "value"
        ]
      },
      "TaskAssetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the asset",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "article",
              "image",
              "video",
              "raw_file",
              "structured_content",
              "compose_content"
            ],
            "description": "Type of the asset",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the asset",
            "example": "image/png"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the asset was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the asset, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "content": {
            "$ref": "#/components/schemas/AssetContent"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the asset",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the asset",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/image/5d7f910551b00a722e0418830cee6631"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the asset is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              },
              "drafts": {
                "type": "string",
                "nullable": true,
                "description": "URL to POST draft to the asset - null for `article` - non-null for `image`, `video`, and `raw file`.",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets/5d7f910551b00a722e0418830cee6631/drafts"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the asset",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9?contentTabGuid=5d7f910551b00a722e0418830cee6631"
                  },
                  "task": {
                    "type": "string",
                    "description": "Web URL of the task that the asset is associated with",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9"
                  },
                  "drafts": {
                    "type": "string",
                    "nullable": true,
                    "description": "Web URL of the drafts of the asset - null for `article` - non-null for `image`, `video`, and `raw file`.",
                    "example": "https://cmp.optimizely.com/cloud/task/5f857f30e1c4a2038d6179e9/image/5d7f910551b00a722e0418830cee6631"
                  }
                },
                "required": [
                  "self",
                  "task",
                  "drafts"
                ]
              }
            },
            "required": [
              "self",
              "task",
              "drafts",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "mime_type",
          "created_at",
          "modified_at",
          "content",
          "labels",
          "links"
        ]
      },
      "TaskAssetRequestForDirectUpload": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "The mechanism for adding the asset to the task",
            "example": "direct_upload"
          },
          "key": {
            "type": "string",
            "maxLength": 100,
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Title of the asset",
            "example": "sample_image.png"
          }
        },
        "required": [
          "key",
          "title"
        ]
      },
      "TaskAssetRequestForLibrary": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "The mechanism for adding the asset to the task",
            "example": "fork_from_library"
          },
          "content_id": {
            "type": "string",
            "format": "uuid",
            "description": "Unique identifier of the asset",
            "example": "d1efd3c4625111f0baa002420ac8001d"
          },
          "content_type": {
            "type": "string",
            "enum": [
              "article",
              "image",
              "raw_file",
              "structured_content",
              "video"
            ],
            "description": "The type of asset",
            "example": "image"
          }
        },
        "required": [
          "type",
          "content_id",
          "content_type"
        ]
      },
      "TaskAssetRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/TaskAssetRequestForDirectUpload"
          },
          {
            "$ref": "#/components/schemas/TaskAssetRequestForLibrary"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "direct_upload": "#/components/schemas/TaskAssetRequestForDirectUpload",
            "fork_from_library": "#/components/schemas/TaskAssetRequestForLibrary"
          }
        }
      },
      "TaskAssetDraftListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the draft",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "draft_number": {
            "type": "integer",
            "description": "The serial number of the draft",
            "example": 2
          },
          "title": {
            "type": "string",
            "description": "Title of the draft",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "image",
              "video",
              "raw_file"
            ],
            "description": "Type of the draft",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the draft",
            "example": "image/png"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the draft was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "content": {
            "description": "Content of the draft",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of the content",
                "enum": [
                  "url"
                ],
                "example": "url"
              },
              "value": {
                "type": "string",
                "description": "Content of the draft; download URL for `image`, `raw file`, and `video`",
                "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==S"
              }
            },
            "required": [
              "type",
              "value"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "asset": {
                "type": "string",
                "description": "URL of the asset that the draft is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/images/5d7f910551b00a722e0418830cee6631"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the asset is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "asset",
              "task"
            ]
          }
        },
        "required": [
          "id",
          "draft_number",
          "title",
          "type",
          "mime_type",
          "created_at",
          "content",
          "links"
        ]
      },
      "TaskAssetDraftResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "draft_number": {
            "type": "integer",
            "description": "The serial number of the draft",
            "example": 2
          },
          "asset_id": {
            "type": "string",
            "description": "Unique identifier of the asset",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the draft",
            "example": "sample_image.png"
          },
          "type": {
            "type": "string",
            "enum": [
              "image",
              "video",
              "raw_file"
            ],
            "description": "Type of the draft",
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the draft",
            "example": "image/png"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the draft was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "content": {
            "description": "Content of the draft",
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of the content",
                "enum": [
                  "url"
                ],
                "example": "url"
              },
              "value": {
                "type": "string",
                "description": "Content of the draft; download URL for `image`, `raw file`, and `video`",
                "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==S"
              }
            },
            "required": [
              "type",
              "value"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "asset": {
                "type": "string",
                "description": "URL of the asset that the draft is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/images/5d7f910551b00a722e0418830cee6631"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the asset is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "asset",
              "task"
            ]
          }
        },
        "required": [
          "draft_number",
          "asset_id",
          "title",
          "type",
          "mime_type",
          "created_at",
          "content",
          "links"
        ]
      },
      "TaskAssetDraftBrandComplianceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "description": "Brand compliance status of the draft",
            "example": "approved",
            "enum": [
              "approved",
              "declined",
              "not_reviewed"
            ]
          },
          "reviewed_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of when the draft was reviewed, in ISO 8601 UTC format",
            "example": "2020-10-06T13:15:30Z",
            "nullable": true
          },
          "reviewed_by": {
            "type": "string",
            "description": "Unique identifier of the user who reviewed the draft",
            "example": "66d837c62373533177b59db3",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "description": "List of compliance categories",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the category",
                  "example": "66dd74f41a335b59cd98915b"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the category",
                  "example": "Category-1"
                },
                "status": {
                  "type": "string",
                  "description": "Brand compliance status of the category",
                  "example": "compliant",
                  "enum": [
                    "compliant",
                    "not compliant",
                    "not applicable",
                    null
                  ],
                  "nullable": true
                },
                "notes": {
                  "type": "string",
                  "description": "Notes left by the reviewer for the category",
                  "example": "Look's good",
                  "nullable": true
                },
                "criteria": {
                  "type": "array",
                  "description": "List of criteria",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Unique identifier of the criterion",
                        "example": "66dd74f41a335b59cd98915c"
                      },
                      "name": {
                        "type": "string",
                        "description": "Name of the criterion",
                        "example": "Sub-category-1A"
                      },
                      "description": {
                        "type": "string",
                        "description": "Description of the criterion",
                        "nullable": true,
                        "example": "For all CMYK, RGB and HTML breakdowns, please refer to the full Colour Policy guideline"
                      },
                      "selected": {
                        "type": "boolean",
                        "description": "Whether the criterion is selected or not",
                        "example": true,
                        "nullable": true
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "description",
                      "selected"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "name",
                "status",
                "notes",
                "criteria"
              ]
            }
          }
        },
        "required": [
          "status",
          "reviewed_at",
          "reviewed_by",
          "categories"
        ]
      },
      "TaskAssetDraftBrandComplianceRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "description": "Brand compliance status of the draft",
            "example": "approved",
            "enum": [
              "approved",
              "declined",
              "not_reviewed"
            ]
          },
          "categories": {
            "type": "array",
            "description": "List of compliance categories",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the category",
                  "example": "66dd74f41a335b59cd98915b"
                },
                "status": {
                  "type": "string",
                  "description": "Brand compliance status of the category",
                  "example": "compliant",
                  "enum": [
                    "compliant",
                    "not compliant",
                    "not applicable",
                    null
                  ],
                  "nullable": true
                },
                "notes": {
                  "type": "string",
                  "description": "Notes left by the reviewer for the category",
                  "example": "Look's good",
                  "nullable": true
                },
                "criteria": {
                  "type": "array",
                  "description": "List of criteria",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Unique identifier of the criterion",
                        "example": "66dd74f41a335b59cd98915c"
                      },
                      "description": {
                        "type": "string",
                        "description": "Description of the criterion",
                        "nullable": true,
                        "example": "For all CMYK, RGB and HTML breakdowns, please refer to the full Colour Policy guideline"
                      },
                      "selected": {
                        "type": "boolean",
                        "description": "Whether the criterion is selected or not",
                        "example": true,
                        "nullable": true
                      }
                    },
                    "required": [
                      "id",
                      "description",
                      "selected"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "status",
                "notes",
                "criteria"
              ]
            }
          }
        },
        "required": [
          "status",
          "categories"
        ]
      },
      "TaskAssetCommentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the comment",
            "example": "5fe38c39574b52a62a089239"
          },
          "value": {
            "type": "string",
            "description": "Content of the comment",
            "example": "Well done!"
          },
          "is_resolved": {
            "type": "boolean",
            "description": "Determines if the comment is resolved in Optimizely CMP",
            "example": false
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last modification date and time of the comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T14:15:30Z"
          },
          "attachments": {
            "description": "List of attachments of the comment",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentResponse"
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "sample.png",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534"
              },
              "asset": {
                "type": "string",
                "description": "URL of the asset",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5d7f910551b00a722e0418830cee5534/images/6d7f910551b00a722e0418830cee5564"
              }
            },
            "required": [
              "task",
              "asset"
            ]
          }
        },
        "required": [
          "id",
          "value",
          "is_resolved",
          "created_at",
          "modified_at",
          "attachments",
          "links"
        ]
      },
      "CommentCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "value": {
            "type": "string",
            "minLength": 1,
            "description": "Content of the comment. Markdown is supported. To mention a user belonging to the organization, use the `@[name](openapi-user-link)` format.",
            "example": "Comment mentioning @[Organization User](https://api.cmp.optimizely.com/v3/users/5fe38aeb574b52a62a089238)"
          },
          "attachments": {
            "description": "List of comment attachments.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            }
          }
        },
        "required": [
          "value"
        ]
      },
      "TaskAssetFieldsUpdateRequest": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "oneOf": [
            {
              "$ref": "#/components/schemas/StringTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/MultiChoiceTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DropdownTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/RadioButtonTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/NumberTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DateTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/AssetTypeObjectField"
            }
          ],
          "discriminator": {
            "propertyName": "type",
            "mapping": {
              "checkbox": "#/components/schemas/MultiChoiceTypeObjectField",
              "currency_number": "#/components/schemas/NumberTypeObjectField",
              "date": "#/components/schemas/DateTypeObjectField",
              "dropdown": "#/components/schemas/DropdownTypeObjectField",
              "label": "#/components/schemas/MultiChoiceTypeObjectField",
              "radio_button": "#/components/schemas/RadioButtonTypeObjectField",
              "percentage_number": "#/components/schemas/NumberTypeObjectField",
              "simple_number": "#/components/schemas/NumberTypeObjectField",
              "text": "#/components/schemas/StringTypeObjectField",
              "text_area": "#/components/schemas/StringTypeObjectField",
              "rich_text": "#/components/schemas/StringTypeObjectField",
              "image": "#/components/schemas/AssetTypeObjectField",
              "video": "#/components/schemas/AssetTypeObjectField"
            }
          }
        }
      },
      "TaskArticle": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the article",
            "example": "5d7f910551b00a722e0418830cee6631"
          },
          "title": {
            "type": "string",
            "description": "Title of the article",
            "example": "3 Ways Influencer Marketing Will Further Mature in 2020"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the article was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the article, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "html_body": {
            "type": "string",
            "description": "Content of the article",
            "example": "<p>Article text</p>"
          },
          "url": {
            "type": "string",
            "nullable": true,
            "description": "Public URL of the article",
            "example": "https://cmp.optimizely.com/new-article-published.html"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the article",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "library_asset_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the corresponding library asset — the library asset this task asset was forked from, or the one it was released to.",
            "example": "6a8b2c3d4e5f6071829a3b4c"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the article",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/articles/5d7f910551b00a722e0418830cee6631"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the article is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              },
              "drafts": {
                "type": "string",
                "nullable": true,
                "description": "URL to POST draft to a task asset – not supported for `article` so the value will be `null`",
                "example": null
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the article",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9?contentTabGuid=5d7f910551b00a722e0418830cee6631"
                  },
                  "task": {
                    "type": "string",
                    "description": "Web URL of the task that the article is associated with",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9"
                  },
                  "drafts": {
                    "type": "string",
                    "nullable": true,
                    "description": "Web URL of the drafts of the article – not supported for `article` so the value will be `null`",
                    "example": null
                  }
                },
                "required": [
                  "self",
                  "task",
                  "drafts"
                ]
              }
            },
            "required": [
              "self",
              "task",
              "drafts",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "created_at",
          "modified_at",
          "html_body",
          "url",
          "labels",
          "links"
        ]
      },
      "TaskImage": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the image",
            "example": "5d7f910551b00a722e0418830cee6632"
          },
          "title": {
            "type": "string",
            "description": "Title of the image",
            "example": "cat.jpeg"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the image",
            "example": "image/jpeg"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the image was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the image, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the image in bytes",
            "example": 11244
          },
          "image_resolution": {
            "type": "object",
            "additionalProperties": false,
            "description": "Width and height of the image in pixels",
            "properties": {
              "height": {
                "type": "integer",
                "description": "Height of the image in pixels",
                "example": 800
              },
              "width": {
                "type": "integer",
                "description": "Width of the image in pixels",
                "example": 700
              }
            },
            "required": [
              "height",
              "width"
            ]
          },
          "url": {
            "type": "string",
            "description": "Download the URL of the image",
            "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA=="
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the image",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "library_asset_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the corresponding library asset — the library asset this task asset was forked from, or the one it was released to.",
            "example": "6a8b2c3d4e5f6071829a3b4c"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the image",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/images/5d7f910551b00a722e0418830cee6632"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the image is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              },
              "drafts": {
                "type": "string",
                "description": "URL to POST draft to the image",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets/5d7f910551b00a722e0418830cee6632/drafts"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the image",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9?contentTabGuid=5d7f910551b00a722e0418830cee6632"
                  },
                  "task": {
                    "type": "string",
                    "description": "Web URL of the task that the image is associated with",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9"
                  },
                  "drafts": {
                    "type": "string",
                    "description": "Web URL of the drafts of the image",
                    "example": "https://cmp.optimizely.com/cloud/task/5f857f30e1c4a2038d6179e9/image/5d7f910551b00a722e0418830cee6632"
                  }
                },
                "required": [
                  "self",
                  "task",
                  "drafts"
                ]
              }
            },
            "required": [
              "self",
              "task",
              "drafts",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "mime_type",
          "created_at",
          "modified_at",
          "file_size",
          "image_resolution",
          "url",
          "labels",
          "links"
        ]
      },
      "TaskVideo": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the video",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "title": {
            "type": "string",
            "description": "Title of the video",
            "example": "product.mp4"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the video",
            "example": "video/mp4"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the video was created,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the video, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the video in bytes",
            "example": 11244
          },
          "url": {
            "type": "string",
            "description": "Download URL of the video",
            "example": "https://videos.cmp.optimizely.com/03a747babe81ceb55763fa085bqa20dc"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated with the video",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "library_asset_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the corresponding library asset — the library asset this task asset was forked from, or the one it was released to.",
            "example": "6a8b2c3d4e5f6071829a3b4c"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the video",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/videos/5d7f910551b00a722e0418830cee6633"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the video is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              },
              "drafts": {
                "type": "string",
                "description": "URL to POST draft to the video",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets/5d7f910551b00a722e0418830cee6633/drafts"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the video",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9?contentTabGuid=5d7f910551b00a722e0418830cee6633"
                  },
                  "task": {
                    "type": "string",
                    "description": "Web URL of the task that the video is associated with",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9"
                  },
                  "drafts": {
                    "type": "string",
                    "description": "Web URL of the drafts of the video",
                    "example": "https://cmp.optimizely.com/cloud/task/5f857f30e1c4a2038d6179e9/video/5d7f910551b00a722e0418830cee6633"
                  }
                },
                "required": [
                  "self",
                  "task",
                  "drafts"
                ]
              }
            },
            "required": [
              "self",
              "task",
              "drafts",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "mime_type",
          "created_at",
          "modified_at",
          "file_size",
          "url",
          "labels",
          "links"
        ]
      },
      "TaskRawFile": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the raw file",
            "example": "5d7f910551b00a722e0418830cee6634"
          },
          "title": {
            "type": "string",
            "description": "Title of the raw file",
            "example": "documents.zip"
          },
          "mime_type": {
            "type": "string",
            "description": "MIME type of the raw file",
            "example": "application/zip"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the raw file was created, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent modification of the raw file,  in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2019-10-07T13:15:30Z"
          },
          "file_size": {
            "type": "integer",
            "description": "Size of the raw file in bytes",
            "example": 11244
          },
          "url": {
            "type": "string",
            "description": "Download the URL of the raw file",
            "example": "https://files.cmp.optimizely.com/171451644651701b96f1122009f026bc"
          },
          "labels": {
            "type": "array",
            "description": "Labels associated to the raw file",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "library_asset_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the corresponding library asset — the library asset this task asset was forked from, or the one it was released to.",
            "example": "6a8b2c3d4e5f6071829a3b4c"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the raw file",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/raw-files/5d7f910551b00a722e0418830cee6634"
              },
              "task": {
                "type": "string",
                "description": "URL of the task that the raw file is associated with",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9"
              },
              "drafts": {
                "type": "string",
                "description": "URL to POST draft to the raw file",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5f857f30e1c4a2038d6179e9/assets/5d7f910551b00a722e0418830cee6634/drafts"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the raw file",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9?contentTabGuid=5d7f910551b00a722e0418830cee6634"
                  },
                  "task": {
                    "type": "string",
                    "description": "Web URL of the task that the raw file is associated with",
                    "example": "https://cmp.optimizely.com/cloud/taskv3/5f857f30e1c4a2038d6179e9"
                  },
                  "drafts": {
                    "type": "string",
                    "description": "Web URL of the drafts of the raw file",
                    "example": "https://cmp.optimizely.com/cloud/task/5f857f30e1c4a2038d6179e9/raw_file/5d7f910551b00a722e0418830cee6634"
                  }
                },
                "required": [
                  "self",
                  "task",
                  "drafts"
                ]
              }
            },
            "required": [
              "self",
              "task",
              "drafts",
              "web_urls"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "mime_type",
          "created_at",
          "modified_at",
          "file_size",
          "url",
          "labels",
          "links"
        ]
      },
      "TaskCommentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the task comment",
            "example": "5fe38c39574b52a62a089239"
          },
          "value": {
            "type": "string",
            "description": "Content of the comment",
            "example": "Well done!"
          },
          "is_resolved": {
            "type": "boolean",
            "description": "Determines if the comment is resolved in Optimizely CMP",
            "example": false
          },
          "parent_comment_id": {
            "type": "string",
            "description": "Unique identifier of the parent comment",
            "nullable": true,
            "example": "5fe38c39574b52a62a089238"
          },
          "comment_by": {
            "type": "string",
            "description": "Unique identifier of the user who posted the comment",
            "example": "62a8455e29fed3045d9c7a8b"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the task comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last modification date and time of the task comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T14:15:30Z"
          },
          "attachments": {
            "description": "List of attachments of the comment",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentResponse"
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "sample.png",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/5fe38c39574b52a62a089239"
              },
              "comment_by": {
                "type": "string",
                "description": "URL of the user who posted the comment",
                "example": "https://api.cmp.optimizely.com/v3/users/62a8455e29fed3045d9c7a8b"
              }
            },
            "required": [
              "task",
              "comment_by"
            ]
          }
        },
        "required": [
          "id",
          "value",
          "is_resolved",
          "parent_comment_id",
          "comment_by",
          "created_at",
          "modified_at",
          "attachments",
          "links"
        ]
      },
      "TaskPublishingIntentCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "channel_id": {
            "type": "string",
            "description": "Unique identifier of the target publishing channel",
            "example": "6a2fd16faec3bed9c72f7d4f"
          }
        },
        "required": [
          "channel_id"
        ]
      },
      "TaskPublishingIntentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the publishing intent",
            "example": "6a3a61f8c201c660b84bbfff"
          }
        },
        "required": [
          "id"
        ]
      },
      "TaskStructuredContentCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "content_type_guid": {
            "type": "string",
            "description": "Unique identifier of the content type",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "template_guid": {
            "type": "string",
            "description": "Unique identifier of the template",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "fields": {
            "title": "fields",
            "nullable": true,
            "type": "object",
            "$ref": "#/components/schemas/StructuredContentBody"
          },
          "root_content": {
            "title": "Rootcontent",
            "type": "boolean",
            "description": "Set to `false` for content embedded via a reference field; `true` for root content."
          },
          "title": {
            "type": "string",
            "description": "Title of the structured content",
            "example": "Some webpage"
          },
          "primary_locale": {
            "type": "string",
            "description": "The primary locale of the content",
            "example": "en_US"
          },
          "expired": {
            "title": "Expired",
            "type": "boolean",
            "description": "Expired status of the content"
          },
          "expiry_datetime": {
            "title": "Expirydatetime",
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Date and time on which the content will expire, in ISO 8601 UTC format",
            "example": "2019-10-07T13:15:30Z"
          },
          "source": {
            "title": "Source",
            "type": "string",
            "nullable": true,
            "description": "Source of the content"
          },
          "source_id": {
            "title": "Sourceid",
            "type": "string",
            "nullable": true,
            "description": "Source id of the content"
          },
          "source_metadata": {
            "title": "Sourcemetadata",
            "type": "string",
            "nullable": true,
            "description": "Source metadata of the content"
          }
        },
        "required": [
          "content_type_guid"
        ]
      },
      "TaskStructuredContentUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the structured content",
            "example": "Some webpage"
          },
          "primary_locale": {
            "type": "string",
            "description": "The primary locale of the content",
            "example": "en_US"
          },
          "expired": {
            "title": "Expired",
            "type": "boolean",
            "description": "Expired status of the content"
          },
          "expiry_datetime": {
            "title": "Expirydatetime",
            "type": "string",
            "nullable": true,
            "format": "date-time",
            "description": "Date and time on which the content will expire, in ISO 8601 UTC format",
            "example": "2019-10-07T13:15:30Z"
          },
          "source": {
            "title": "Source",
            "type": "string",
            "nullable": true,
            "description": "Source of the content"
          },
          "source_id": {
            "title": "Sourceid",
            "type": "string",
            "nullable": true,
            "description": "Source id of the content"
          },
          "source_metadata": {
            "title": "Sourcemetadata",
            "type": "string",
            "nullable": true,
            "description": "Source metadata of the content"
          },
          "fields": {
            "title": "fields",
            "nullable": false,
            "type": "object",
            "description": "The fields of structured content",
            "$ref": "#/components/schemas/StructuredContentFields"
          }
        }
      },
      "TaskStructuredContentDraftRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "content_body": {
            "title": "contentbody",
            "nullable": false,
            "type": "object",
            "description": "The fields of structured content",
            "$ref": "#/components/schemas/LocalizedFieldValues"
          }
        },
        "required": [
          "content_body"
        ]
      },
      "TaskStructuredContentPreviewCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "nullable": false,
            "description": "URL where the latest version of the structured content can be previewed. CMP must be able to reach this URL.",
            "example": "https://example.com/preview/my-landing-page"
          }
        },
        "required": [
          "url"
        ]
      },
      "TaskStructuredContentVersion": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "version_guid": {
            "type": "string",
            "description": "Unique identifier of the version, as CMP lists it. A version is created when the content or any of its nested contents changes. This identifier is not the same as the `version_guid` of `latest_fields_version` or the `version_id` of the `/structured-content` endpoints, and those endpoints do not accept it.",
            "example": "31a6d15b09c54a04935203eb958ae058"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the version was created, in ISO 8601 UTC format",
            "example": "2026-10-02T09:15:00Z"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the version",
            "example": "5c52cc153db27d0e5141146f"
          },
          "source_metadata": {
            "type": "string",
            "nullable": true,
            "description": "Source metadata of the version",
            "example": null
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "structured_content": {
                "type": "string",
                "description": "URL of the task structured content",
                "example": "https://api.cmp.optimizely.com/v3/tasks/645cb61c966d0c591320f636/structured-contents/a24b834428a043ab8caed1ded4606f7d"
              },
              "web_urls": {
                "type": "object",
                "additionalProperties": false,
                "description": "Web URLs",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "Web URL of the version of the structured content in the task",
                    "example": "https://cmp.optimizely.com/go/5c52cc153db27d0e5141146f/tasks/645cb61c966d0c591320f636/structured-contents/a24b834428a043ab8caed1ded4606f7d/versions/31a6d15b09c54a04935203eb958ae058"
                  }
                },
                "required": [
                  "self"
                ]
              }
            },
            "required": [
              "structured_content",
              "web_urls"
            ]
          }
        },
        "required": [
          "version_guid",
          "created_at",
          "created_by",
          "source_metadata",
          "links"
        ]
      },
      "TaskStructuredContentVersionListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of versions of the task structured content, newest first",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskStructuredContentVersion"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/tasks/645cb61c966d0c591320f636/structured-contents/a24b834428a043ab8caed1ded4606f7d/versions?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "TaskComposeContentCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "schema_id": {
            "type": "string",
            "description": "Content schema of the new compose content. Accepts the schema `api_id` or its internal `id`.",
            "example": "blog_post"
          }
        },
        "required": [
          "schema_id"
        ]
      },
      "TaskComposeContentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the compose content",
            "example": "db5lh0dh7f0s1otndpp0"
          },
          "content_schema_id": {
            "type": "string",
            "description": "Internal identifier of the content schema of the compose content",
            "example": "db5lfu5h7f0s1otndoug"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "enum": [
              "draft",
              "changed",
              "published",
              "archived",
              null
            ],
            "description": "Status of the compose content",
            "example": "draft"
          },
          "version": {
            "type": "integer",
            "description": "Current version number of the compose content",
            "example": 1
          },
          "published_version": {
            "type": "integer",
            "nullable": true,
            "description": "Version number that is currently published. `null` if the content was never published.",
            "example": null
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the compose content was created, in ISO 8601 UTC format",
            "example": "2026-10-11T09:36:01Z"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the most recent update of the compose content, in ISO 8601 UTC format",
            "example": "2026-10-11T09:36:11Z"
          },
          "fields": {
            "$ref": "#/components/schemas/ComposeContentFields"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the compose content",
                "example": "https://api.cmp.optimizely.com/v3/tasks/645cb61c966d0c591320f636/compose-contents/db5lh0dh7f0s1otndpp0"
              },
              "task": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/645cb61c966d0c591320f636"
              },
              "content_schema": {
                "type": "string",
                "nullable": true,
                "description": "URL of the content schema",
                "example": "https://api.cmp.optimizely.com/v3/compose/content-schemas/db5lfu5h7f0s1otndoug"
              }
            },
            "required": [
              "self",
              "task",
              "content_schema"
            ]
          }
        },
        "required": [
          "id",
          "content_schema_id",
          "status",
          "version",
          "published_version",
          "created_at",
          "updated_at",
          "fields",
          "links"
        ]
      },
      "TaskComposeContentUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "fields": {
            "type": "object",
            "description": "Field values to set. The values are merged into the existing fields: fields that are not in the request keep their values. Each field must exist in the content schema, and each locale code must be active. A `null` value is not supported and does not clear a field.",
            "minProperties": 1,
            "allOf": [
              {
                "$ref": "#/components/schemas/ComposeContentFields"
              }
            ]
          }
        },
        "required": [
          "fields"
        ]
      },
      "MilestoneResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the milestone",
            "example": "63f1c2b675be4132854d2741"
          },
          "title": {
            "type": "string",
            "description": "Title of the milestone",
            "example": "Sample Milestone"
          },
          "color": {
            "type": "string",
            "description": "Color of the milestone label",
            "example": "#4ECFD5"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the milestone",
            "example": "This is a milestone"
          },
          "due_date": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the milestone will expire, in ISO 8601 UTC format",
            "example": "2023-10-07T13:15:30Z"
          },
          "campaign": {
            "type": "object",
            "nullable": true,
            "description": "Campaign associated with the milestone",
            "additionalProperties": false,
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the campaign",
                "example": "63f1c2b675be4132854d2742"
              }
            },
            "required": [
              "id"
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the milestone",
                "example": "https://api.cmp.optimizely.com/v3/milestones/63f1c2b675be4132854d2741"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "color",
          "description",
          "due_date",
          "campaign",
          "links"
        ]
      },
      "MilestoneCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the milestone. This should be between 1 and 80 characters.",
            "example": "Q1 Product Launch",
            "minLength": 1,
            "maxLength": 80
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the milestone. If provided, this should be between 1 and 250 characters.",
            "example": "Complete all tasks for the Q1 product launch",
            "minLength": 1,
            "maxLength": 250
          },
          "campaign_id": {
            "type": "string",
            "nullable": false,
            "description": "Id of the campaign to be associated with the milestone",
            "example": "63f1c2b675be4132854d2741"
          },
          "due_date": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Date and time on which the milestone will expire, in ISO 8601 UTC format",
            "example": "2023-10-07T13:15:30Z"
          },
          "hex_color": {
            "type": "string",
            "nullable": false,
            "description": "Hex color code for the milestone label",
            "example": "#4ECFD5"
          },
          "tasks": {
            "type": "array",
            "nullable": false,
            "description": "List of tasks to be associated with the milestone",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Task ID"
                }
              },
              "required": [
                "id"
              ]
            },
            "example": [
              {
                "id": "63f1c2b675be4132854d2741"
              },
              {
                "id": "63f1c2b675be4132854d2742"
              }
            ]
          }
        },
        "required": [
          "title",
          "due_date",
          "hex_color"
        ]
      },
      "MilestoneUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the milestone. This should be between 1 and 80 characters.",
            "example": "Q1 Product Launch",
            "minLength": 1,
            "maxLength": 80
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the milestone. If provided, this should be between 1 and 250 characters.",
            "example": "Complete all tasks for the Q1 product launch",
            "minLength": 1,
            "maxLength": 250
          },
          "campaign_id": {
            "type": "string",
            "nullable": false,
            "description": "Id of the campaign to be associated with the milestone",
            "example": "63f1c2b675be4132854d2741"
          },
          "due_date": {
            "type": "string",
            "nullable": false,
            "format": "date-time",
            "description": "Date and time on which the milestone will expire, in ISO 8601 UTC format",
            "example": "2023-10-07T13:15:30Z"
          },
          "hex_color": {
            "type": "string",
            "nullable": false,
            "description": "Hex color code for the milestone label",
            "example": "#4ECFD5"
          },
          "tasks": {
            "type": "array",
            "nullable": false,
            "description": "List of tasks to be associated with the milestone. This can be an empty array, but in that case it will remove all task associations for that milestone.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Task ID"
                }
              },
              "required": [
                "id"
              ]
            },
            "example": [
              {
                "id": "63f1c2b675be4132854d2741"
              },
              {
                "id": "63f1c2b675be4132854d2742"
              }
            ]
          }
        }
      },
      "CampaignListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the campaign",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "title": {
            "type": "string",
            "description": "Title of the campaign",
            "example": "The awesome campaign"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the campaign",
            "example": "The awesome campaign's description"
          },
          "start_date": {
            "type": "string",
            "nullable": true,
            "description": "Start date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2019-10-06"
          },
          "end_date": {
            "type": "string",
            "nullable": true,
            "description": "End date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2019-10-16"
          },
          "is_hidden": {
            "type": "boolean",
            "description": "Whether the campaign is hidden or not",
            "example": false
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier of the campaign",
            "example": "CPN-1589"
          },
          "owner": {
            "type": "object",
            "additionalProperties": false,
            "description": "Owner information of the campaign",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the owner of the campaign",
                "example": "8q7f910551b00a722e0418830cee8211"
              }
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/8q7f910551b00a722e0418830cee6612"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "start_date",
          "end_date",
          "is_hidden",
          "reference_id",
          "owner",
          "links"
        ]
      },
      "CampaignCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "nullable": false,
            "description": "Title of the campaign",
            "example": "Sample Title"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the campaign",
            "example": "Sample Description"
          },
          "parent_campaign": {
            "type": "string",
            "nullable": true,
            "description": "ID of the parent campaign",
            "example": "665d5717c8ba0201647a0992"
          },
          "start_date": {
            "type": "string",
            "nullable": false,
            "format": "date",
            "description": "Start date of the campaign, in ISO 8601 UTC format (2025-02-10).",
            "example": "2025-10-01"
          },
          "end_date": {
            "type": "string",
            "nullable": false,
            "format": "date",
            "description": "End date of the campaign, in ISO 8601 UTC format (2026-02-10).",
            "example": "2026-10-06"
          },
          "owner_id": {
            "type": "string",
            "nullable": false,
            "description": "ID of the owner of the campaign",
            "example": "665d5717c8ba0201647a0991"
          },
          "color": {
            "type": "string",
            "nullable": false,
            "enum": [
              "#333",
              "#ec2e3b",
              "#fc594b",
              "#e2575b",
              "#f45097",
              "#de55a9",
              "#bd417f",
              "#a959cc",
              "#6456b7",
              "#4db2fc",
              "#3a97be",
              "#36c5a3",
              "#9bc94e",
              "#fdad3c",
              "#ef803c",
              "#fd8876",
              "#ea868a",
              "#f781b5",
              "#e785c1",
              "#cf69a3",
              "#c187db",
              "#9086cc",
              "#79c8fd",
              "#5ab5d0",
              "#4fd5bd",
              "#b8d877",
              "#fec454",
              "#f3a35a",
              "#d3998f",
              "#c79697",
              "#d096af",
              "#c897b4",
              "#ae7c98",
              "#b094be",
              "#908bae",
              "#97bed8",
              "#7aa8b6",
              "#7abeb2",
              "#bece9d",
              "#e3c68d",
              "#d3ac85",
              "#b9a29e",
              "#b29f9f",
              "#b9a1ac",
              "#b5a1ae",
              "#9a8692",
              "#a89bac",
              "#908e9b",
              "#a8b9c3",
              "#8ea1a7",
              "#96b1ac",
              "#c1c8b5",
              "#d4c8b0",
              "#c0b0a1",
              "#212121",
              "#CE515B",
              "#F16281",
              "#EB7777",
              "#A25555",
              "#B05F8C",
              "#AF8EC3",
              "#21B7EC",
              "#3AB0C9",
              "#669BA8",
              "#7ABEB2",
              "#5F9DCE",
              "#717CB9",
              "#4C557E",
              "#449C6C",
              "#63B05F",
              "#4D9B93",
              "#ACC050",
              "#A29F55",
              "#8AA872",
              "#E4844C",
              "#EE9808",
              "#DE7009",
              "#FCD404",
              "#CBB039",
              "#99896A",
              "#2e2a26",
              "#ccccdc"
            ],
            "description": "Color of the campaign",
            "example": "#ec2e3b"
          }
        },
        "required": [
          "title"
        ]
      },
      "BudgetResponse": {
        "type": "object",
        "additionalProperties": false,
        "description": "Budget of the campaign",
        "properties": {
          "currency_code": {
            "type": "string",
            "description": "Currency code of the budget",
            "example": "USD"
          },
          "budgeted_amount": {
            "type": "string",
            "description": "Planned amount for the campaign",
            "example": "1000.50"
          }
        },
        "required": [
          "currency_code",
          "budgeted_amount"
        ]
      },
      "CampaignResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the campaign",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "title": {
            "type": "string",
            "description": "Title of the campaign",
            "example": "The awesome campaign"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the campaign",
            "example": "The awesome campaign's description"
          },
          "start_date": {
            "type": "string",
            "nullable": true,
            "description": "Start date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2019-10-06"
          },
          "end_date": {
            "type": "string",
            "nullable": true,
            "description": "End date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2019-10-16"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the campaign,  in ISO 8601 UTC format (`2035-02-10T10:40:45Z`)",
            "example": "2035-10-06T13:15:30Z"
          },
          "is_hidden": {
            "type": "boolean",
            "description": "Whether the campaign is hidden or not",
            "example": false
          },
          "status": {
            "type": "string",
            "description": "Status of the campaign",
            "enum": [
              "Not Started",
              "Off Track",
              "On Track",
              "Complete",
              "At Risk"
            ],
            "example": "On Track"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier of the campaign",
            "example": "CPN-1589"
          },
          "budget": {
            "type": "object",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BudgetResponse"
              }
            ]
          },
          "labels": {
            "type": "array",
            "description": "Labels associated to the campaign",
            "items": {
              "$ref": "#/components/schemas/ResourceLabelResponse"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/8q7f910551b00a722e0418830cee6612"
              },
              "brief": {
                "type": "string",
                "nullable": true,
                "description": "URL of the campaign brief",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/8q7f910551b00a722e0418830cee6612/brief"
              },
              "owner": {
                "type": "string",
                "nullable": true,
                "description": "URL of the campaign owner",
                "example": "https://api.cmp.optimizely.com/v3/users/6ea1bf781398c3147393arr1"
              },
              "parent_campaign": {
                "type": "string",
                "nullable": true,
                "description": "URL of the parent campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/7u7f910551b00a722e0418830cee6643"
              },
              "child_campaigns": {
                "type": "array",
                "description": "URLs of the child campaigns",
                "items": {
                  "type": "string",
                  "example": "https://api.cmp.optimizely.com/v3/campaigns/6fb21acf987094513ecb4b58"
                }
              }
            },
            "required": [
              "self",
              "brief",
              "owner",
              "parent_campaign",
              "child_campaigns"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "start_date",
          "end_date",
          "created_at",
          "is_hidden",
          "status",
          "reference_id",
          "budget",
          "labels",
          "links"
        ]
      },
      "CampaignUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the campaign",
            "example": "The awesome campaign"
          },
          "start_date": {
            "type": "string",
            "nullable": true,
            "description": "Start date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2022-09-06"
          },
          "end_date": {
            "type": "string",
            "nullable": true,
            "description": "End date of the campaign in ISO 8601 format: `YYYY-MM-DD`",
            "example": "2022-09-06"
          },
          "owner_id": {
            "type": "string",
            "description": "Unique identifier of the campaign owner",
            "example": "8q7f910551b00a722e0418830cee6612"
          }
        }
      },
      "CampaignCommentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the campaign comment",
            "example": "5fe38c39574b52a62a089239"
          },
          "value": {
            "type": "string",
            "description": "Content of the comment",
            "example": "Well done!"
          },
          "is_resolved": {
            "type": "boolean",
            "description": "Determines if the comment is resolved in Optimizely CMP",
            "example": false
          },
          "parent_comment_id": {
            "type": "string",
            "description": "Unique identifier of the parent comment",
            "nullable": true,
            "example": "5fe38c39574b52a62a089238"
          },
          "comment_by": {
            "type": "string",
            "description": "Unique identifier of the user who posted the comment",
            "nullable": false,
            "example": "62a8455e29fed3045d9c7a8b"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the campaign comment in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last modification date and time of the campaign comment in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T14:15:30Z"
          },
          "attachments": {
            "description": "List of attachments of the comment",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentResponse"
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "sample.png",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "campaign": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/5fe38c39574b52a62a089239"
              },
              "comment_by": {
                "type": "string",
                "description": "URL of the user who posted the comment",
                "example": "https://api.cmp.optimizely.com/v3/users/62a8455e29fed3045d9c7a8b"
              }
            },
            "required": [
              "campaign",
              "comment_by"
            ]
          }
        },
        "required": [
          "id",
          "value",
          "is_resolved",
          "parent_comment_id",
          "comment_by",
          "created_at",
          "modified_at",
          "attachments",
          "links"
        ]
      },
      "CampaignBriefTemplateValue": {
        "type": "object",
        "description": "Template info of the brief if the brief is of template type",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the template",
            "example": "9nu8ue9wf8u9nusd9f"
          },
          "name": {
            "type": "string",
            "description": "Name of the template",
            "example": "My Template"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "CampaignBriefResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the campaign brief",
            "example": "template",
            "enum": [
              "template",
              "attachment",
              "text"
            ]
          },
          "title": {
            "type": "string",
            "description": "Title of the campaign brief",
            "example": "Awesome Campaign Brief",
            "nullable": false
          },
          "template": {
            "type": "object",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CampaignBriefTemplateValue"
              }
            ]
          },
          "fields": {
            "description": "List of fields of the brief",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the brief field",
                  "example": "My Dropdown"
                },
                "value": {
                  "type": "array",
                  "description": "List of values set for the brief field",
                  "items": {
                    "type": "string",
                    "description": "value set in the brief field",
                    "example": "option 1"
                  }
                }
              },
              "required": [
                "name",
                "value"
              ]
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the brief",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9/brief"
              },
              "campaign": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "self",
              "campaign"
            ]
          }
        },
        "required": [
          "type",
          "title",
          "fields",
          "links"
        ]
      },
      "CampaignFieldUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/StringTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/NumberTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/DateTypeObjectFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "currency_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "date": "#/components/schemas/DateTypeObjectFieldUpdatePayload",
            "dropdown": "#/components/schemas/DropdownTypeObjectFieldUpdatePayload",
            "label": "#/components/schemas/MultiChoiceTypeObjectFieldUpdatePayload",
            "radio_button": "#/components/schemas/RadioButtonTypeObjectFieldUpdatePayload",
            "percentage_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "simple_number": "#/components/schemas/NumberTypeObjectFieldUpdatePayload",
            "text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "text_area": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "rich_text": "#/components/schemas/StringTypeObjectFieldUpdatePayload",
            "image": "#/components/schemas/AssetTypeObjectFieldUpdatePayload",
            "video": "#/components/schemas/AssetTypeObjectFieldUpdatePayload"
          }
        }
      },
      "CampaignFieldTypes": {
        "type": "string",
        "description": "Type of the field",
        "example": "image",
        "enum": [
          "checkbox",
          "currency_number",
          "date",
          "dropdown",
          "label",
          "radio_button",
          "text_area",
          "percentage_number",
          "rich_text",
          "simple_number",
          "text",
          "image",
          "video"
        ]
      },
      "CampaignFieldUpdateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the field",
            "example": "5a7f910511b0a72230ce6631"
          },
          "name": {
            "type": "string",
            "description": "Name of the field",
            "example": "Image Field"
          },
          "type": {
            "$ref": "#/components/schemas/CampaignFieldTypes"
          },
          "values": {
            "type": "array",
            "description": "List of values selected or from user input",
            "items": {
              "type": "string",
              "example": "1nu8ue9wf8u9nusd9u"
            }
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "campaign_fields": {
                "type": "string",
                "description": "URL of the campaign fields",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9/fields"
              },
              "campaign": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/5f857f30e1c4a2038d6179e9"
              }
            },
            "required": [
              "campaign_fields",
              "campaign"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "values",
          "links"
        ]
      },
      "PublishingChannelResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the publishing channel",
            "example": "6a2fd16faec3bed9c72f7d4f"
          },
          "name": {
            "type": "string",
            "nullable": true,
            "description": "Human-readable name of the publishing channel",
            "example": "My Drupal"
          },
          "disabled": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether the publishing channel is currently disabled",
            "example": false
          }
        },
        "required": [
          "id",
          "name",
          "disabled"
        ]
      },
      "PublishingChannelListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of publishing channels",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishingChannelResponse"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/publishing-channels?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "PublishingEventAssets": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of the asset",
            "example": "5d7f910551b00a722e0418830cee2212"
          },
          "type": {
            "type": "string",
            "nullable": false,
            "description": "Type of the asset: `article`, `image`, `video`, `raw_file`, `structured_content`",
            "example": "article"
          },
          "publishing_metadata": {
            "type": "array",
            "nullable": false,
            "description": "List of information related to publishing metadata for the asset",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": false,
                  "description": "Unique identifier of the publishing metadata",
                  "example": "5e46745616s564s4564964"
                },
                "links": {
                  "type": "object",
                  "description": "Meta links",
                  "nullable": false,
                  "properties": {
                    "self": {
                      "type": "string",
                      "description": "URL of the publishing metadata of the asset",
                      "example": "https://api.cmp.optimizely.com/v3/publishing-events/5d7f910551b00a722e0418830cee5534/assets/5d7f910551b00a722e0418830cee2212/publishing-metadata/5e46745616s564s4564964"
                    }
                  },
                  "required": [
                    "self"
                  ]
                }
              },
              "required": [
                "id",
                "links"
              ]
            }
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "additionalProperties": false,
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of asset",
                "example": "https://api.cmp.optimizely.com/v3/articles/5d7f910551b00a722e0418830cee2212"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "publishing_metadata",
          "type",
          "links"
        ]
      },
      "PublishingEventResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of the publishing event",
            "example": "5d7f910551b00a722e0418830cee5534"
          },
          "assets": {
            "type": "array",
            "description": "List of assets associated with the publishing event.",
            "items": {
              "$ref": "#/components/schemas/PublishingEventAssets"
            }
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "additionalProperties": false,
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the publishing event",
                "example": "https://api.cmp.optimizely.com/v3/publishing-events/5d7f910551b00a722e0418830cee2212"
              },
              "publishing_metadata": {
                "type": "string",
                "description": "URL of list of publishing metadata",
                "example": "https://api.cmp.optimizely.com/v3/publishing-events/5d7f910551b00a722e0418830cee5534/publishing-metadata"
              },
              "progress_updates": {
                "type": "string",
                "description": "URL of the list of progress updates posted for this publishing event",
                "example": "https://api.cmp.optimizely.com/v3/publishing-events/5d7f910551b00a722e0418830cee5534/progress-updates"
              }
            },
            "required": [
              "self",
              "publishing_metadata",
              "progress_updates"
            ]
          }
        },
        "required": [
          "id",
          "assets",
          "links"
        ]
      },
      "PublishingEventProgressUpdateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of the progress update",
            "example": "5ebcd5644967474414564"
          },
          "level": {
            "type": "string",
            "nullable": false,
            "description": "Severity of the progress update",
            "example": "info",
            "enum": [
              "info",
              "error"
            ]
          },
          "message": {
            "type": "string",
            "nullable": false,
            "description": "Human-readable description of what happened",
            "example": "All assets are ready. Waiting for the destination to confirm publishing."
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "When the progress update was posted",
            "example": "2026-10-01T13:15:30Z"
          }
        },
        "required": [
          "id",
          "level",
          "message",
          "created_at"
        ]
      },
      "PublishingEventProgressUpdateListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "Progress updates posted for the publishing event, newest first",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishingEventProgressUpdateResponse"
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/publishing-events/1d9d8aeca10811ebbc640242ac12001b/progress-updates?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "PublishingEventProgressUpdateCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "level": {
            "type": "string",
            "nullable": false,
            "description": "Severity of the progress update. Defaults to `info` when omitted.",
            "example": "info",
            "default": "info",
            "enum": [
              "info",
              "error"
            ]
          },
          "message": {
            "type": "string",
            "nullable": false,
            "minLength": 1,
            "maxLength": 500,
            "description": "Human-readable description of what happened, shown to the user. Must not be empty or whitespace only. Keep it free of internal identifiers — job keys, instance ids, stack traces and the like belong in your own logs.",
            "example": "All assets are ready. Waiting for the destination to confirm publishing."
          }
        },
        "required": [
          "message"
        ]
      },
      "PublishingEventMetadataResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of publishing metadata",
            "example": "5ebcd5644967474414564"
          },
          "asset_id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of asset",
            "example": "4567m74974987479856456456"
          },
          "asset_type": {
            "type": "string",
            "enum": [
              "article",
              "image",
              "video",
              "raw_file",
              "structured_content"
            ],
            "nullable": false,
            "description": "Type of the asset",
            "example": "article"
          },
          "status": {
            "type": "string",
            "nullable": true,
            "description": "Publishing status of the asset",
            "example": "published",
            "enum": [
              "published",
              "unpublished",
              "synced",
              "failed",
              null
            ]
          },
          "status_message": {
            "type": "string",
            "nullable": true,
            "description": "Any message patched by the integrator about the asset's status",
            "example": "This asset is in review"
          },
          "locale": {
            "type": "string",
            "nullable": true,
            "description": "The locale to which the asset is being published.",
            "example": "en"
          },
          "public_url": {
            "type": "string",
            "nullable": true,
            "description": "Public URL of the asset",
            "example": "https://example.com/test"
          },
          "publishing_destination_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Timestamp of when the publishing destination of the asset was updated",
            "example": "2019-10-06T13:15:30Z"
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "additionalProperties": false,
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the publishing metadata",
                "example": "https://api.cmp.optimizely.com/v3/publishing-events/1d9d8aeca10811ebbc640242ac12001b/assets/1d9d8aeca10811ebbc640242ac12003c/publishing-metadata/5ebcd5644967474414564"
              },
              "publishing_event": {
                "type": "string",
                "description": "URL of the publishing event",
                "example": "https://api.cmp.optimizely.com/v3/publishing-events/1d9d8aeca10811ebbc640242ac12001b"
              },
              "asset": {
                "type": "string",
                "description": "URL of the asset",
                "example": "https://api.cmp.optimizely.com/v3/articles/4567m474974987479856456456"
              }
            },
            "required": [
              "self",
              "publishing_event",
              "asset"
            ]
          }
        },
        "required": [
          "id",
          "asset_id",
          "asset_type",
          "status",
          "status_message",
          "locale",
          "public_url",
          "publishing_destination_updated_at",
          "links"
        ]
      },
      "PublishingEventMetadataListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "description": "List of successfully posted publishing metadata",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishingEventMetadataResponse"
            }
          }
        }
      },
      "PublishingEventMetadataCreateRequest": {
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "nullable": false,
            "description": "Unique identifier of the asset",
            "example": "4567m474974987479856456457"
          },
          "status": {
            "type": "string",
            "nullable": false,
            "description": "Publishing status of the asset",
            "example": "published",
            "enum": [
              "published",
              "unpublished",
              "synced",
              "failed"
            ]
          },
          "status_message": {
            "type": "string",
            "nullable": false,
            "description": "Any message patched by the integrator about the asset's status",
            "example": "This asset is in review"
          },
          "locale": {
            "type": "string",
            "nullable": false,
            "description": "The locale to which the asset is being published",
            "example": "en"
          },
          "public_url": {
            "type": "string",
            "nullable": false,
            "description": "public url of asset",
            "example": "https://example.com/test"
          },
          "publishing_destination_updated_at": {
            "type": "string",
            "format": "date-time",
            "nullable": false,
            "description": "Timestamp of when the publishing destination of the asset was updated",
            "example": "2019-10-06T13:15:30Z"
          }
        },
        "required": [
          "asset_id",
          "status"
        ]
      },
      "PublishingEventMetadataBulkCreateRequest": {
        "type": "object",
        "properties": {
          "data": {
            "description": "List publishing metadata to be posted",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishingEventMetadataCreateRequest"
            }
          }
        },
        "required": [
          "data"
        ]
      },
      "PublishingEventMetadataBulkCreateResponse": {
        "type": "object",
        "properties": {
          "data": {
            "description": "List of successfully posted publishing metadata",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublishingEventMetadataResponse"
            }
          },
          "errors": {
            "type": "array",
            "description": "List of errors of assets for which publishing metadata failed to post",
            "items": {
              "type": "object",
              "properties": {
                "error_code": {
                  "type": "string",
                  "nullable": false,
                  "description": "Custom error code",
                  "enum": [
                    "canonical-link-error",
                    "unknown-asset",
                    "metadata-exists",
                    "duplicate-metadata",
                    "invalid-status",
                    "missing-public-url",
                    "public-url-not-allowed",
                    "domain-not-whitelisted",
                    "missing-publishing-destination-updated-at",
                    "publishing-destination-updated-at-not-allowed",
                    "missing-locale",
                    "locale-not-allowed"
                  ],
                  "example": "canonical-link-error"
                },
                "asset_id": {
                  "type": "string",
                  "nullable": false,
                  "description": "Unique identifier of the asset that failed to update its publishing metadata",
                  "example": "4567m474974987479856456457"
                },
                "locale": {
                  "type": "string",
                  "nullable": true,
                  "description": "locale of the asset",
                  "example": "en"
                },
                "message": {
                  "type": "string",
                  "description": "Description of the error",
                  "example": "A canonical URL already exists for the task article '5e46456144645674564456'"
                }
              },
              "required": [
                "error_code",
                "status message",
                "asset_id",
                "locale",
                "type",
                "message"
              ]
            }
          }
        },
        "required": [
          "data",
          "errors"
        ]
      },
      "BaseTemplateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "description": "Unique identifier of the template",
            "type": "string",
            "example": "9119a313057e401189407116fcd3aa24"
          },
          "is_active": {
            "description": "Active status of the template",
            "type": "boolean",
            "example": true
          },
          "title": {
            "description": "Title of the template",
            "type": "string",
            "example": "Sample Template Title"
          },
          "description": {
            "description": "Description of the template",
            "type": "string",
            "example": "Sample Desciption"
          },
          "applicable_to": {
            "description": "List of resources the template is applicable to",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "work_request",
                "task_brief",
                "campaign_brief"
              ],
              "example": "work_request"
            }
          }
        },
        "required": [
          "id",
          "is_active",
          "title",
          "description",
          "applicable_to"
        ]
      },
      "TemplateListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of templates",
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/BaseTemplateResponse"
                },
                {
                  "type": "object",
                  "properties": {
                    "links": {
                      "type": "object",
                      "description": "Meta links",
                      "properties": {
                        "self": {
                          "type": "string",
                          "description": "URL of the template",
                          "example": "https://api.cmp.optimizely.com/v3/templates/9119a313057e401189407116fcd3aa24"
                        }
                      },
                      "required": [
                        "self"
                      ]
                    }
                  },
                  "required": [
                    "links"
                  ]
                }
              ]
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/templates?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "BaseTemplateFormField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Identifier of the field",
            "example": "attachment"
          },
          "label": {
            "type": "string",
            "nullable": true,
            "description": "Label of the field",
            "example": "Attach a file..."
          },
          "helper_text": {
            "type": "string",
            "nullable": true,
            "description": "Helper text of the field",
            "example": "Sample helper text"
          },
          "is_required": {
            "type": "boolean",
            "description": "Required status of the field",
            "example": false
          },
          "is_readonly": {
            "type": "boolean",
            "description": "Specify if the field can be used to create any resource",
            "example": false
          },
          "is_protected": {
            "type": "boolean",
            "description": "True when this form field is read-only and only organization admins can modify it. Absent or false for editable fields.",
            "example": false
          },
          "sort_order": {
            "type": "integer",
            "description": "Sort order of the field",
            "example": 0
          },
          "type": {
            "type": "string",
            "description": "Type of the field",
            "enum": [
              "brief",
              "checkbox",
              "currency_number",
              "date",
              "dropdown",
              "file",
              "instruction",
              "label",
              "percentage_number",
              "radio_button",
              "richtext",
              "section",
              "simple_number",
              "text",
              "text_area"
            ],
            "example": "label"
          }
        },
        "required": [
          "identifier",
          "label",
          "helper_text",
          "is_required",
          "is_readonly",
          "sort_order",
          "type"
        ]
      },
      "TemplateLogicRuleCondition": {
        "type": "object",
        "additionalProperties": false,
        "description": "Condition of the rule",
        "properties": {
          "operator": {
            "type": "string",
            "description": "Operator of the condition",
            "enum": [
              "any_of",
              "equal",
              "not_equal"
            ],
            "example": "any_of"
          },
          "values": {
            "type": "array",
            "description": "Values of the condition",
            "items": {
              "type": "string",
              "example": "4a8b901e9fd911ecbefa0242ac160019"
            }
          }
        },
        "required": [
          "operator",
          "values"
        ]
      },
      "TemplateLogicRuleAction": {
        "type": "object",
        "additionalProperties": false,
        "description": "Action to perform for the rule",
        "properties": {
          "target_field": {
            "type": "object",
            "description": "Target field for the action",
            "properties": {
              "identifier": {
                "type": "string",
                "description": "Identifier of the target field",
                "example": "70ca0e8a954911ecb4be0242ac160014"
              }
            },
            "required": [
              "identifier"
            ]
          },
          "type": {
            "type": "string",
            "description": "Type of the action",
            "enum": [
              "jump_to",
              "show_values"
            ],
            "example": "show_values"
          },
          "values": {
            "type": "array",
            "description": "Values for the action",
            "items": {
              "type": "string",
              "example": "73e05aa2b5d311eca17f0242ac160019"
            }
          }
        },
        "required": [
          "target_field",
          "type",
          "values"
        ]
      },
      "TemplateLogicRule": {
        "type": "array",
        "description": "List of logic rules",
        "items": {
          "type": "object",
          "properties": {
            "condition": {
              "$ref": "#/components/schemas/TemplateLogicRuleCondition"
            },
            "action": {
              "$ref": "#/components/schemas/TemplateLogicRuleAction"
            }
          },
          "required": [
            "condition",
            "action"
          ]
        }
      },
      "TemplateDefaultFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "nullable": true,
                "enum": [
                  null
                ],
                "description": "Type-specific meta-information",
                "example": null
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "ResourceChoiceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the choice",
            "example": "9119a313057e401189407116fcd3"
          },
          "name": {
            "type": "string",
            "description": "Name of the choice",
            "example": "Some choice"
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "TemplateChoiceFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "description": "Type-specific meta-information",
                "properties": {
                  "is_multi_select": {
                    "type": "boolean",
                    "description": "Whether multiple selection is allowed",
                    "example": true
                  },
                  "choices": {
                    "type": "array",
                    "description": "Choices for the field",
                    "items": {
                      "$ref": "#/components/schemas/ResourceChoiceResponse"
                    }
                  }
                },
                "required": [
                  "is_multi_select",
                  "choices"
                ]
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "TemplateCurrencyNumberFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "description": "Type-specific meta-information",
                "properties": {
                  "decimal_places": {
                    "type": "integer",
                    "description": "Decimal places allowed for the field",
                    "nullable": true,
                    "example": 2
                  },
                  "currency_code": {
                    "type": "string",
                    "description": "Currency code of the field",
                    "example": "USD"
                  },
                  "has_thousand_separator": {
                    "type": "boolean",
                    "description": "Whether the field has thousand separators",
                    "example": true
                  }
                },
                "required": [
                  "decimal_places",
                  "currency_code",
                  "has_thousand_separator"
                ]
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "TemplateInstructionFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "description": "Type-specific meta-information",
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Description of the field",
                    "example": "just a message to inform something"
                  }
                },
                "required": [
                  "description"
                ]
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "TemplatePercentageNumberFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "description": "Type-specific meta-information",
                "properties": {
                  "decimal_places": {
                    "type": "integer",
                    "description": "Decimal places allowed for the field",
                    "nullable": true,
                    "example": 2
                  }
                },
                "required": [
                  "decimal_places"
                ]
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "TemplateSimpleNumberFormField": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateFormField"
          },
          {
            "type": "object",
            "properties": {
              "type_specific_meta": {
                "type": "object",
                "description": "Type-specific meta-information",
                "properties": {
                  "decimal_places": {
                    "type": "integer",
                    "description": "Decimal places allowed for the field",
                    "nullable": true,
                    "example": 2
                  },
                  "has_thousand_separator": {
                    "type": "boolean",
                    "description": "Whether the field has thousand separators",
                    "example": true
                  }
                },
                "required": [
                  "decimal_places",
                  "has_thousand_separator"
                ]
              },
              "logic_rules": {
                "$ref": "#/components/schemas/TemplateLogicRule"
              }
            },
            "required": [
              "type_specific_meta",
              "logic_rules"
            ]
          }
        ]
      },
      "TemplateResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseTemplateResponse"
          },
          {
            "type": "object",
            "properties": {
              "form_fields": {
                "type": "array",
                "description": "List of form fields",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/TemplateDefaultFormField"
                    },
                    {
                      "$ref": "#/components/schemas/TemplateCurrencyNumberFormField"
                    },
                    {
                      "$ref": "#/components/schemas/TemplateSimpleNumberFormField"
                    },
                    {
                      "$ref": "#/components/schemas/TemplatePercentageNumberFormField"
                    },
                    {
                      "$ref": "#/components/schemas/TemplateChoiceFormField"
                    },
                    {
                      "$ref": "#/components/schemas/TemplateInstructionFormField"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "type",
                    "mapping": {
                      "brief": "#/components/schemas/TemplateDefaultFormField",
                      "checkbox": "#/components/schemas/TemplateChoiceFormField",
                      "currency_number": "#/components/schemas/TemplateCurrencyNumberFormField",
                      "date": "#/components/schemas/TemplateDefaultFormField",
                      "dropdown": "#/components/schemas/TemplateChoiceFormField",
                      "file": "#/components/schemas/TemplateDefaultFormField",
                      "instruction": "#/components/schemas/TemplateInstructionFormField",
                      "label": "#/components/schemas/TemplateChoiceFormField",
                      "radio_button": "#/components/schemas/TemplateChoiceFormField",
                      "text_area": "#/components/schemas/TemplateDefaultFormField",
                      "percentage_number": "#/components/schemas/TemplatePercentageNumberFormField",
                      "richtext": "#/components/schemas/TemplateDefaultFormField",
                      "section": "#/components/schemas/TemplateDefaultFormField",
                      "simple_number": "#/components/schemas/TemplateSimpleNumberFormField",
                      "text": "#/components/schemas/TemplateDefaultFormField"
                    }
                  }
                }
              },
              "links": {
                "type": "object",
                "description": "Meta links",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "URL of the template",
                    "example": "https://api.cmp.optimizely.com/v3/templates/9119a313057e401189407116fcd3aa24"
                  }
                },
                "required": [
                  "self"
                ]
              }
            },
            "required": [
              "form_fields",
              "links"
            ]
          }
        ]
      },
      "UserListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the user",
            "example": "5fe4925ef8a9378056bf4e37"
          },
          "first_name": {
            "type": "string",
            "description": "First name of the user",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "Last name of the user",
            "example": "Doe"
          },
          "full_name": {
            "type": "string",
            "description": "Full name of the user",
            "example": "John Doe"
          },
          "image_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the profile picture of the user - null if the user has not provided an image",
            "example": "https://images.cmp.optimizely.com/6a485f72ba424f9397c71ddf0cfb8f59"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the user",
                "example": "https://api.cmp.optimizely.com/v3/users/5fe4925ef8a9378056bf4e37"
              }
            },
            "required": [
              "self"
            ]
          },
          "roles": {
            "type": "array",
            "description": "List of roles assigned to the user",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Name of the role",
                  "example": "Creator"
                }
              },
              "required": [
                "name"
              ]
            }
          }
        },
        "required": [
          "id",
          "roles",
          "first_name",
          "last_name",
          "full_name",
          "image_url",
          "links"
        ]
      },
      "UserListResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "data": {
            "description": "List of users",
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/UserListResponseItem"
                },
                {
                  "type": "object",
                  "properties": {
                    "links": {
                      "type": "object",
                      "description": "Meta links",
                      "properties": {
                        "self": {
                          "type": "string",
                          "description": "URL of the user",
                          "example": "https://api.cmp.optimizely.com/v3/users/9119a313057e401189407116fcd3aa24"
                        }
                      },
                      "required": [
                        "self"
                      ]
                    }
                  },
                  "required": [
                    "links"
                  ]
                }
              ]
            }
          },
          "pagination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "next": {
                    "type": "string",
                    "nullable": true,
                    "example": "https://api.cmp.optimizely.com/v3/users?offset=10&page_size=10"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "UserResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the user",
            "example": "5fe4925ef8a9378056bf4e37"
          },
          "first_name": {
            "type": "string",
            "description": "First name of the user",
            "example": "John"
          },
          "last_name": {
            "type": "string",
            "description": "Last name of the user",
            "example": "Doe"
          },
          "full_name": {
            "type": "string",
            "description": "Full name of the user",
            "example": "John Doe"
          },
          "email": {
            "type": "string",
            "nullable": true,
            "description": "Email of the user – null unless the application is configured to expose the user email",
            "example": "john.doe@example.com"
          },
          "image_url": {
            "type": "string",
            "nullable": true,
            "description": "URL of the profile picture of the user – null if the user has not provided an image",
            "example": "https://images.cmp.optimizely.com/6a485f72ba424f9397c71ddf0cfb8f59"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the user",
                "example": "https://api.cmp.optimizely.com/v3/users/5fe4925ef8a9378056bf4e37"
              }
            }
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "full_name",
          "email",
          "image_url"
        ]
      },
      "BaseFormFieldResponse": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Identifier of the form field collected from the template form field",
            "example": "brief"
          },
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "brief"
          },
          "values": {
            "type": "array",
            "description": "Values of the form field"
          },
          "is_protected": {
            "type": "boolean",
            "description": "True when this form field is read-only and only organization admins can modify it. Absent or false for editable fields.",
            "example": false
          }
        },
        "required": [
          "identifier",
          "type",
          "values"
        ]
      },
      "WorkRequestTextBriefResponse": {
        "type": "object",
        "description": "Written brief",
        "properties": {
          "type": {
            "type": "string",
            "example": "text_brief",
            "enum": [
              "text_brief"
            ]
          },
          "value": {
            "type": "string",
            "example": "<p>Hello</p>"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "WorkRequestAttachmentBriefResponse": {
        "type": "object",
        "description": "Brief from uploaded attachment",
        "properties": {
          "type": {
            "type": "string",
            "example": "attachment_brief",
            "enum": [
              "attachment_brief"
            ]
          },
          "value": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the attachment brief",
                "example": "6dzf4ds4fds4f4564dzsfd"
              },
              "name": {
                "type": "string",
                "description": "Name of the attachment brief",
                "example": "Sample-name"
              },
              "url": {
                "type": "string",
                "description": "URL of the attachment brief",
                "example": "https://files.cmp.optimizely.com/download/8nv8svsdnivjusdijuvisdv?token=token"
              }
            },
            "required": [
              "id",
              "name",
              "url"
            ]
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "BriefTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of brief values",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/WorkRequestTextBriefResponse"
                    },
                    {
                      "$ref": "#/components/schemas/WorkRequestAttachmentBriefResponse"
                    }
                  ]
                }
              }
            }
          }
        ]
      },
      "MultiChoiceTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choices",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier of the choice",
                      "example": "9119a313057e401189407116fcd3"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            }
          }
        ]
      },
      "NumberTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of numeric strings",
                "items": {
                  "type": "string",
                  "description": "A numberic string",
                  "example": "123.5"
                }
              }
            }
          }
        ]
      },
      "DateTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of date-time values, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                "items": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Date and time, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                  "example": "2020-02-10T10:40:45Z"
                }
              }
            }
          }
        ]
      },
      "FileTypeFormFieldValueResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the file",
            "example": "6dzf4ds4fds4f4564dzsfd"
          },
          "name": {
            "type": "string",
            "description": "Name of the file",
            "example": "Sample Name"
          },
          "url": {
            "type": "string",
            "description": "URL of the file",
            "example": "https://files.cmp.optimizely.com/download/8nv8svsdnivjusdijuvisdv?token=token"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ]
      },
      "FileTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of files",
                "items": {
                  "$ref": "#/components/schemas/FileTypeFormFieldValueResponse"
                }
              }
            }
          }
        ]
      },
      "RadioButtonTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MultiChoiceTypeFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choices",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Unique identifier of the choice",
                      "example": "9119a313057e401189407116fcd3"
                    },
                    "name": {
                      "type": "string",
                      "description": "Name of the choice",
                      "example": "Choice 1"
                    }
                  },
                  "required": [
                    "id",
                    "name"
                  ]
                }
              }
            }
          }
        ]
      },
      "TextTypeFormFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Any string value",
                  "example": "Sample text"
                }
              }
            }
          }
        ]
      },
      "WorkRequestResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the work request",
            "example": "5fe4925ef8a9378056bf4e37"
          },
          "template": {
            "type": "object",
            "description": "The template, based on the work request that was created",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the template",
                "example": "1265ca474ba987cc925164aa7"
              },
              "title": {
                "type": "string",
                "description": "Title of the template",
                "example": "Sample template title"
              },
              "links": {
                "type": "object",
                "description": "Meta links",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "URL of the template",
                    "example": "https://api.cmp.optimizely.com/v3/templates/9119a313057e401189407116fcd3aa24"
                  }
                },
                "required": [
                  "self"
                ]
              }
            },
            "required": [
              "id",
              "title",
              "links"
            ]
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier of the work request",
            "example": "WRQ-23"
          },
          "assignees": {
            "type": "array",
            "description": "List of assigned users to the work request",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the assignee",
                  "example": "6asdcnfnfdsfdsfd54sgfd54sf"
                },
                "type": {
                  "type": "string",
                  "description": "Type of the assignee",
                  "example": "user",
                  "enum": [
                    "user",
                    "team"
                  ]
                },
                "full_name": {
                  "type": "string",
                  "description": "Full name of the assignee",
                  "example": "John Doe"
                },
                "image_url": {
                  "type": "string",
                  "nullable": true,
                  "description": "URL of the profile picture of the assignee. `null` if the assignee has not provided an image",
                  "example": "https://images.cmp.optimizely.com/6a485f72ba424f9397c71ddf0cfb8f59"
                },
                "links": {
                  "type": "object",
                  "description": "Meta links",
                  "properties": {
                    "self": {
                      "type": "string",
                      "description": "URL of the assigned user",
                      "example": "https://api.cmp.optimizely.com/v3/users/6asdcnfnfdsfdsfd54sgfd54sf"
                    }
                  },
                  "required": [
                    "self"
                  ]
                }
              },
              "required": [
                "id",
                "full_name",
                "image_url",
                "links",
                "type"
              ]
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "Accepted",
              "Declined",
              "Submitted",
              "Completed"
            ],
            "description": "Current status of the work request",
            "example": "Accepted"
          },
          "priority": {
            "type": "string",
            "enum": [
              "Low",
              "Medium",
              "High"
            ],
            "description": "Priority of the work request",
            "example": "Medium"
          },
          "created_by": {
            "type": "object",
            "additionalProperties": false,
            "description": "Creator of the work request",
            "properties": {
              "id": {
                "type": "string",
                "description": "Unique identifier of the creator of the work request",
                "example": "6asdcnfnfdsfdsfd54sgfd54sf"
              },
              "links": {
                "type": "object",
                "additionalProperties": false,
                "description": "Meta links",
                "properties": {
                  "self": {
                    "type": "string",
                    "description": "URL of the creator",
                    "example": "https://api.cmp.optimizely.com/v3/users/6asdcnfnfdsfdsfd54sgfd54sf"
                  }
                },
                "required": [
                  "self"
                ]
              }
            },
            "required": [
              "id",
              "links"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the work request was created, in ISO 8601 UTC format (2022-04-30T06:00:00.000Z)",
            "example": "2022-04-30T06:00:00.000Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the work request was last modified, in ISO 8601 UTC format (2022-04-30T08:00:00.000Z)",
            "example": "2022-04-30T08:00:00.000Z"
          },
          "form_fields": {
            "type": "array",
            "description": "Populated form fields following the template",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/BriefTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/DateTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/FileTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/MultiChoiceTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/NumberTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/RadioButtonTypeFormFieldResponse"
                },
                {
                  "$ref": "#/components/schemas/TextTypeFormFieldResponse"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "brief": "#/components/schemas/BriefTypeFormFieldResponse",
                  "checkbox": "#/components/schemas/MultiChoiceTypeFormFieldResponse",
                  "currency_number": "#/components/schemas/NumberTypeFormFieldResponse",
                  "date": "#/components/schemas/DateTypeFormFieldResponse",
                  "dropdown": "#/components/schemas/MultiChoiceTypeFormFieldResponse",
                  "file": "#/components/schemas/FileTypeFormFieldResponse",
                  "label": "#/components/schemas/MultiChoiceTypeFormFieldResponse",
                  "radio_button": "#/components/schemas/RadioButtonTypeFormFieldResponse",
                  "percentage_number": "#/components/schemas/NumberTypeFormFieldResponse",
                  "richtext": "#/components/schemas/TextTypeFormFieldResponse",
                  "simple_number": "#/components/schemas/NumberTypeFormFieldResponse",
                  "text": "#/components/schemas/TextTypeFormFieldResponse",
                  "text_area": "#/components/schemas/TextTypeFormFieldResponse"
                }
              }
            },
            "example": [
              {
                "identifier": "title",
                "type": "text",
                "values": [
                  "Some title"
                ]
              },
              {
                "identifier": "brief",
                "type": "brief",
                "values": [
                  {
                    "type": "attachment_brief",
                    "value": {
                      "id": "attachment-1",
                      "name": "Attachment",
                      "url": "http://images.cmp.optimizely.com/attachment-1?token=jwt.auth.token"
                    }
                  }
                ]
              },
              {
                "identifier": "630c486a90546926f034ea28",
                "type": "richtext",
                "values": [
                  "<b>rich</b> text"
                ]
              },
              {
                "identifier": "630c479690546926f034ea13",
                "type": "label",
                "values": [
                  {
                    "id": "630c479690546926f034ea15",
                    "name": "value-1"
                  }
                ]
              },
              {
                "identifier": "630c47be90546926f034ea17",
                "type": "dropdown",
                "values": [
                  {
                    "id": "630c47be90546926f034ea18",
                    "name": "option 1"
                  },
                  {
                    "id": "630c47be90546926f034ea20",
                    "name": "option 3"
                  }
                ]
              },
              {
                "identifier": "630c482b90546926f034ea22",
                "type": "simple_number",
                "values": [
                  "1234.345678"
                ]
              },
              {
                "identifier": "630c484b90546926f034ea23",
                "type": "percentage_number",
                "values": [
                  "23"
                ]
              },
              {
                "identifier": "630c481b90546926f034ea21",
                "type": "currency_number",
                "values": [
                  "123.56"
                ]
              },
              {
                "identifier": "630c485e90546926f034ea24",
                "type": "checkbox",
                "values": [
                  {
                    "id": "630c485e90546926f034ea25",
                    "name": "choice 1"
                  },
                  {
                    "id": "630c485e90546926f034ea26",
                    "name": "choice 6"
                  }
                ]
              },
              {
                "identifier": "630c47d290546926f034ea1b",
                "type": "radio_button",
                "values": [
                  {
                    "id": "630c47d290546926f034ea1c",
                    "name": "choice 2"
                  }
                ]
              },
              {
                "identifier": "creative_assets",
                "type": "file",
                "values": [
                  {
                    "id": "creative-asset-1",
                    "name": "Creative Asset 1",
                    "url": "http://images.cmp.optimizely.com/creative-asset-1?token=jwt.auth.token"
                  },
                  {
                    "id": "creative-asset-2",
                    "name": "Creative Asset 2",
                    "url": "http://images.cmp.optimizely.com/creative-asset-2?token=jwt.auth.token"
                  }
                ]
              },
              {
                "identifier": "due_date",
                "type": "date",
                "values": [
                  "2022-02-20T12:02:03Z"
                ]
              },
              {
                "identifier": "media_links",
                "type": "text_area",
                "values": [
                  "some text\nmore text"
                ]
              }
            ]
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37"
              },
              "comments": {
                "type": "string",
                "description": "URL to create or get work request comments",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/comments"
              },
              "attachments": {
                "type": "string",
                "description": "URL to add attachments to work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/attachments"
              },
              "campaigns": {
                "type": "string",
                "description": "URL to create a campaign from the work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/campaigns"
              },
              "tasks": {
                "type": "string",
                "description": "URL to create a task from the work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/tasks"
              },
              "creative_assets": {
                "type": "string",
                "description": "URL to add creative assets to the work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/creative-assets"
              },
              "related_resources": {
                "type": "string",
                "description": "URL to get related resources",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/related-resources"
              }
            },
            "required": [
              "self",
              "comments",
              "attachments",
              "campaigns",
              "tasks",
              "creative_assets",
              "related_resources"
            ]
          }
        },
        "required": [
          "id",
          "template",
          "reference_id",
          "assignees",
          "status",
          "priority",
          "created_by",
          "created_at",
          "modified_at",
          "form_fields",
          "links"
        ]
      },
      "BaseFormFieldRequest": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Identifier of the form field collected from the template form field",
            "example": "brief"
          },
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "brief"
          },
          "values": {
            "type": "array",
            "description": "Values for the form field to populate in the work request"
          }
        },
        "required": [
          "identifier",
          "type",
          "values"
        ]
      },
      "WorkRequestTextBriefRequest": {
        "type": "object",
        "description": "Written brief",
        "properties": {
          "type": {
            "type": "string",
            "example": "text_brief",
            "enum": [
              "text_brief"
            ]
          },
          "value": {
            "type": "string",
            "example": "<p>Hello</p>"
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "WorkRequestAttachmentBriefRequest": {
        "type": "object",
        "description": "Brief from uploaded attachment",
        "properties": {
          "type": {
            "type": "string",
            "example": "attachment_brief",
            "enum": [
              "attachment_brief"
            ]
          },
          "value": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string",
                "description": "Unique identifier of the file upload session. This should be the value of `upload_meta_fields.key` retrieved using the `/v3/upload-url` endpoint",
                "example": "6dzf4ds4fds4f4564dzsfd"
              },
              "name": {
                "type": "string",
                "description": "Name of the attachment brief",
                "example": "Sample-name"
              }
            },
            "required": [
              "key",
              "name"
            ]
          }
        },
        "required": [
          "type",
          "value"
        ]
      },
      "BriefTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of brief values",
                "items": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/WorkRequestTextBriefRequest"
                    },
                    {
                      "$ref": "#/components/schemas/WorkRequestAttachmentBriefRequest"
                    }
                  ]
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "MultiChoiceTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choice IDs",
                "items": {
                  "type": "string",
                  "description": "Unique identifier of the choice",
                  "example": "9119a313057e401189407116fcd3"
                }
              }
            }
          }
        ]
      },
      "NumberTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of numbers",
                "items": {
                  "type": "number",
                  "minimum": 0,
                  "description": "A number",
                  "example": 123.5
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "DateTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of date-time values, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                "items": {
                  "type": "string",
                  "format": "date-time",
                  "description": "Date and time, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
                  "example": "2020-02-10T10:40:45Z"
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "FileTypeFormFieldValueRequest": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint.",
            "example": "ce8995aea58b11ea8cd90242ac120005"
          },
          "name": {
            "type": "string",
            "description": "Name of the file"
          }
        },
        "required": [
          "key",
          "name"
        ]
      },
      "FileTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of file inputs to add a file",
                "items": {
                  "$ref": "#/components/schemas/FileTypeFormFieldValueRequest"
                }
              }
            }
          }
        ]
      },
      "RadioButtonTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "description": "Array of choice IDs",
                "items": {
                  "type": "string",
                  "description": "Unique identifier of the choice",
                  "example": "9119a313057e401189407116fcd3"
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "TextTypeFormFieldRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseFormFieldRequest"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Any string value",
                  "example": "Sample text"
                },
                "maxItems": 1
              }
            }
          }
        ]
      },
      "WorkRequestCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "template_id": {
            "type": "string",
            "description": "The template on which the work request should be created",
            "example": "1265ca474ba987cc925164aa7"
          },
          "assignees": {
            "type": "array",
            "description": "List of assigned users to the work request",
            "minItems": 1,
            "items": {
              "type": "string",
              "description": "Unique identifier of the assignee",
              "example": "74ba987cc9251689abc123"
            }
          },
          "form_fields": {
            "type": "array",
            "description": "Form fields from the work request template to populate in the work request. **NOTE** You must provide values for all the required form fields.",
            "minItems": 1,
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/BriefTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/DateTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/FileTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/MultiChoiceTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/NumberTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/RadioButtonTypeFormFieldRequest"
                },
                {
                  "$ref": "#/components/schemas/TextTypeFormFieldRequest"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "brief": "#/components/schemas/BriefTypeFormFieldRequest",
                  "checkbox": "#/components/schemas/MultiChoiceTypeFormFieldRequest",
                  "currency_number": "#/components/schemas/NumberTypeFormFieldRequest",
                  "date": "#/components/schemas/DateTypeFormFieldRequest",
                  "dropdown": "#/components/schemas/MultiChoiceTypeFormFieldRequest",
                  "file": "#/components/schemas/FileTypeFormFieldRequest",
                  "label": "#/components/schemas/MultiChoiceTypeFormFieldRequest",
                  "radio_button": "#/components/schemas/RadioButtonTypeFormFieldRequest",
                  "percentage_number": "#/components/schemas/NumberTypeFormFieldRequest",
                  "richtext": "#/components/schemas/TextTypeFormFieldRequest",
                  "simple_number": "#/components/schemas/NumberTypeFormFieldRequest",
                  "text": "#/components/schemas/TextTypeFormFieldRequest",
                  "text_area": "#/components/schemas/TextTypeFormFieldRequest"
                }
              }
            }
          }
        },
        "required": [
          "template_id",
          "form_fields"
        ]
      },
      "WorkRequestUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "status": {
            "type": "string",
            "description": "Update the status of the work request",
            "enum": [
              "Accepted",
              "Declined",
              "Submitted",
              "Completed"
            ],
            "example": "Submitted"
          },
          "priority": {
            "type": "string",
            "description": "Update the priority of the work request",
            "enum": [
              "Low",
              "Medium",
              "High"
            ],
            "example": "Low"
          },
          "assignees": {
            "type": "array",
            "description": "List of users assigned to the work request",
            "minItems": 0,
            "items": {
              "type": "string",
              "description": "Unique identifier of the assignee",
              "example": "6asdcnfnfdsfdsfd54sgfd54sf"
            }
          }
        }
      },
      "WorkRequestCommentResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the work request comment",
            "example": "5fe38c39574b52a62a089239"
          },
          "value": {
            "type": "string",
            "description": "Content of the comment",
            "example": "Well done!"
          },
          "is_resolved": {
            "type": "boolean",
            "description": "Determines if the comment is resolved",
            "example": false
          },
          "parent_comment_id": {
            "type": "string",
            "description": "Unique identifier of the parent comment",
            "nullable": true,
            "example": "5fe38c39574b52a62a089238"
          },
          "comment_by": {
            "type": "string",
            "description": "Unique identifier of the user who posted the comment",
            "nullable": false,
            "example": "62a8455e29fed3045d9c7a8b"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date and time of the work request comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T13:15:30Z"
          },
          "modified_at": {
            "type": "string",
            "format": "date-time",
            "description": "Last modification date and time of the work request comment, in ISO 8601 UTC format (2020-02-10T10:40:45Z)",
            "example": "2020-10-06T14:15:30Z"
          },
          "attachments": {
            "description": "List of attachments of the comment",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttachmentResponse"
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "sample.png",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "work_request": {
                "type": "string",
                "description": "URL of the work request",
                "example": "https://api.cmp.optimizely.com/v3/work-requests/da80cfd7bbf84959a8a981acbad996b3"
              },
              "comment_by": {
                "type": "string",
                "description": "URL of the user who posted the comment",
                "example": "https://api.cmp.optimizely.com/v3/users/62a8455e29fed3045d9c7a8b"
              }
            },
            "required": [
              "work_request",
              "comment_by"
            ]
          }
        },
        "required": [
          "id",
          "value",
          "is_resolved",
          "parent_comment_id",
          "comment_by",
          "created_at",
          "modified_at",
          "attachments",
          "links"
        ]
      },
      "CreativeAssetRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-url` endpoint.",
            "example": "ce8995aea58b11ea8cd90242ac120005"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filename of the creative asset",
            "example": "sample_image.png"
          }
        },
        "required": [
          "key",
          "name"
        ]
      },
      "CreativeAssetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier for the creative asset",
            "example": "5a7f910511b0a72230ce6631"
          },
          "name": {
            "type": "string",
            "description": "Filename of the creative asset",
            "example": "sample_image.png"
          },
          "url": {
            "type": "string",
            "description": "Download URL of the creative asset",
            "example": "https://files.cmp.optimizely.com/download/2115bfe4450c11ebaae8000c291b51d4"
          }
        },
        "required": [
          "id",
          "name",
          "url"
        ]
      },
      "WorkRequestApprovedAssetResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the work request's approved asset",
            "example": "74f12a064b1611eda2fe02420ac8001d"
          },
          "title": {
            "type": "string",
            "description": "Title of the work request's approved asset",
            "example": "Nature.png"
          },
          "type": {
            "type": "string",
            "description": "Type of the work request's approved asset",
            "enum": [
              "article",
              "image",
              "video",
              "raw_file"
            ],
            "nullable": false,
            "example": "image"
          },
          "mime_type": {
            "type": "string",
            "description": "Mime type of the work request's approved asset",
            "example": "image/png"
          },
          "content_type": {
            "type": "object",
            "description": "Content of the approved asset",
            "properties": {
              "type": {
                "type": "string",
                "description": "Type of the content. 'html_body for 'article' and 'url' for `image`, `raw file`, and `video`",
                "enum": [
                  "html_body",
                  "url"
                ],
                "example": "url"
              },
              "value": {
                "type": "string",
                "description": "Content of the asset. 'html_body for 'article' and 'url' for `image`, `raw file`, and `video`",
                "example": "http://images.cmp.optimizely.com/Zz0xODQ3NDU3Y2Y2YmYzOTlmNjkyOTgyZDY3Y2I3YWM2OA==S"
              }
            },
            "required": [
              "type",
              "value"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "mime_type",
          "content_type"
        ]
      },
      "WorkRequestCampaignRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the campaign",
            "example": "The awesome campaign"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the campaign",
            "example": "The awesome campaign's description"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the campaign, in ISO 8601 UTC format (2022-08-31T06:00:00Z)",
            "example": "2022-08-31T06:00:00Z"
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the campaign, in ISO 8601 UTC format (2022-08-31T06:00:00Z)",
            "example": "2022-08-31T06:00:00Z"
          },
          "owner_id": {
            "type": "string",
            "description": "Unique identifier of the campaign owner",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "parent_campaign_id": {
            "type": "string",
            "description": "Unique identifier of a campaign",
            "example": "6679686ade80bdf1dfda5ec3ab32ddf"
          },
          "exclude_empty_fields": {
            "type": "boolean",
            "default": true,
            "description": "If `true`, work request custom fields and labels that have no value (for example, fields hidden by form logic) are not copied to the campaign. Set to `false` to copy every work request field, including empty ones.",
            "example": true
          }
        },
        "required": [
          "title"
        ]
      },
      "WorkRequestCampaignResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the campaign",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "title": {
            "type": "string",
            "description": "Title of the campaign",
            "example": "The awesome campaign"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the campaign",
            "example": "The awesome campaign's description"
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the campaign, in ISO 8601 UTC format (2022-08-31T06:00:00Z)",
            "example": "2022-08-31T06:00:00Z"
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "End date of the campaign, in ISO 8601 UTC format (2022-08-31T06:00:00Z)",
            "example": "2022-08-31T06:00:00Z"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference identifier of the campaign",
            "example": "CPN-1589"
          },
          "owner_id": {
            "type": "string",
            "description": "Unique identifier of the campaign owner",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "parent_campaign_id": {
            "type": "string",
            "description": "Unique identifier of the parent campaign",
            "example": "6679686ade80bdf1dfda5ec3ab32ddf"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/8q7f910551b00a722e0418830cee6612"
              },
              "brief": {
                "type": "string",
                "nullable": true,
                "description": "URL of the campaign brief",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/8q7f910551b00a722e0418830cee6612/brief"
              },
              "parent_campaign": {
                "type": "string",
                "nullable": true,
                "description": "URL of the parent campaign",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/6679686ade80bdf1dfda5ec3ab32ddf"
              }
            },
            "required": [
              "self",
              "brief",
              "parent_campaign"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "start_date",
          "end_date",
          "reference_id",
          "owner_id",
          "parent_campaign_id",
          "links"
        ]
      },
      "WorkRequestTaskRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the task. If not provided. it will be populated by the work request title.",
            "example": "The awesome task"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z). If `workflow_id` is present and the workflow has step duration, then either `start_at` or `due_at` is required. If both `start_at` and `due_at` is provided with a `workflow_id` that has step duration, then the `start_at` field will be ignored.",
            "example": "2022-12-01T06:00:00Z"
          },
          "due_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Due date and time of the task, in ISO 8601 UTC format (2020-02-10T10:40:45Z). The `due_at` field is required if `workflow_id` is present and the workflow does not have step duration. If `workflow_id` is present and the workflow has step duration, then either `start_at` or `due_at` is required.",
            "example": "2022-12-31T06:00:00Z"
          },
          "campaign_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of parent campaign",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "workflow_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of workflow",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "owner_id": {
            "type": "string",
            "nullable": true,
            "description": "Unique identifier of the task owner. If passed as null, then the owner will be the token user.",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "asset_ids_without_field_inheritance": {
            "type": "array",
            "description": "List of asset ids which will not inherit any fields.",
            "items": {
              "type": "string"
            },
            "example": [
              "74f12a064b1611eda2fe02420ac8001d"
            ]
          },
          "inherit_fields_from": {
            "type": "string",
            "default": "work_request",
            "description": "Specifies the source from which to inherit fields.\n\nSupported values:\n- `work_request` (default) : Fields are created from the work request\n- `workflow` : Fields are inherited from the workflow specified by `workflow_id`",
            "example": "work_request"
          },
          "exclude_empty_fields": {
            "type": "boolean",
            "default": true,
            "description": "If `true`, work request custom fields and labels that have no value (for example, fields hidden by form logic) are not copied to the task. When `inherit_fields_from` is `workflow`, an empty work request value falls back to the workflow field's default value instead. Set to `false` to copy every work request field, including empty ones.",
            "example": true
          }
        }
      },
      "WorkRequestTaskResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the task",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "title": {
            "type": "string",
            "description": "Title of the task",
            "example": "The awesome task"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference Id of the task",
            "example": "TSK-1111"
          },
          "start_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Start date of the task, in ISO 8601 UTC format (2022-12-01T06:00:00Z)",
            "example": "2022-12-01T06:00:00Z"
          },
          "due_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "description": "Due date of the task, in ISO 8601 UTC format (2022-12-31T06:00:00Z)",
            "example": "2022-12-31T06:00:00Z"
          },
          "owner_id": {
            "type": "string",
            "description": "Unique identifier of the owner",
            "example": "8q7f910551b00a722e0418830cee6612"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the task",
                "example": "https://api.cmp.optimizely.com/v3/tasks/8q7f910551b00a722e0418830cee6612"
              },
              "owner": {
                "type": "string",
                "nullable": true,
                "description": "URL of the task owner",
                "example": "https://api.cmp.optimizely.com/v3/users/8q7f910551b00a722e0418830cee6612"
              }
            },
            "required": [
              "self",
              "brief"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "start_at",
          "due_at",
          "owner_id",
          "links"
        ]
      },
      "WorkRequestRelatedResourceResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the related resource",
            "example": "5fe4925ef8a9378056bf4e37"
          },
          "resource_type": {
            "type": "string",
            "description": "Related resource type. task/campaign/event etc",
            "example": "task"
          },
          "relation_type": {
            "type": "string",
            "description": "Related resource relation type",
            "enum": [
              "started",
              "linked"
            ],
            "example": "started"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the work request related resource was created, in ISO 8601 UTC format (2022-04-30T06:00:00.000Z)",
            "example": "2022-04-30T06:00:00.000Z"
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the related resource",
                "nullable": true,
                "example": "https://api.cmp.optimizely.com/v3/tasks/5fe4925ef8a9378056bf4e37"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "resource_type",
          "relation_type",
          "created_at",
          "links"
        ]
      },
      "WorkRequestRequestFormFieldBriefTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "brief",
            "enum": [
              "brief"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Brief value payload",
            "maxItems": 1,
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/WorkRequestTextBriefRequest"
                },
                {
                  "$ref": "#/components/schemas/WorkRequestAttachmentBriefRequest"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "text_brief": "#/components/schemas/WorkRequestTextBriefRequest",
                  "attachment_brief": "#/components/schemas/WorkRequestAttachmentBriefRequest"
                }
              }
            }
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldCheckboxTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "checkbox",
            "enum": [
              "checkbox"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Unique identifiers of the choices",
            "items": {
              "type": "string"
            },
            "example": [
              "63342902e84c7544973c07ce",
              "633429b2e84c7544973c07e7"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldCurrencyNumberTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "currency_number",
            "enum": [
              "currency_number"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Currency amount for the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "123.45"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldDateTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "date",
            "enum": [
              "date"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "format": "date-time",
            "description": "Date and time, in ISO 8601 UTC format",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "2022-04-30T06:00:00.00Z"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldDropdownTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "dropdown",
            "enum": [
              "dropdown"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Unique identifier of the choice for the form field",
            "items": {
              "type": "string"
            },
            "example": [
              "63342902e84c7544973c07ce"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldFileTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "file",
            "enum": [
              "file"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "uploaded file values",
            "items": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "nullable": false,
                  "description": "Unique identifier of the file upload session. This is the `upload_meta_fields.key` field was retrieved from the `/v3/upload-url` endpoint."
                },
                "name": {
                  "type": "string",
                  "nullable": false,
                  "description": "Name for the file",
                  "minLength": 1
                }
              },
              "required": [
                "key",
                "name"
              ]
            },
            "example": [
              {
                "key": "123456/789654",
                "name": "My File"
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldLabelTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "label",
            "enum": [
              "label"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Unique identifiers of label values for the form field",
            "items": {
              "type": "string"
            },
            "example": [
              "63342902e84c7544973c07ce"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldPercentageNumberTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "percentage_number",
            "enum": [
              "percentage_number"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value for the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "123.456"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldRadioButtonTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "radio_button",
            "enum": [
              "radio_button"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Unique identifier of the choice for the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "63342902e84c7544973c07ce"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldRichtextTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "richtext",
            "enum": [
              "richtext"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value of the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "<h1>hello world</h1>"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldSimpleNumberTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "simple_number",
            "enum": [
              "simple_number"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value of the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "123.456"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldTextAreaTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "text_area",
            "enum": [
              "text_area"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value of the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "Hello world"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldTextTypePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "text",
            "enum": [
              "text"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value of the form field",
            "maxItems": 1,
            "items": {
              "type": "string"
            },
            "example": [
              "Hello world"
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestFormFieldUpdateRequest": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldBriefTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldCheckboxTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldCurrencyNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldDateTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldDropdownTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldFileTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldLabelTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldPercentageNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldRadioButtonTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldRichtextTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldSimpleNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldTextAreaTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldTextTypePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "brief": "#/components/schemas/WorkRequestRequestFormFieldBriefTypePayload",
            "checkbox": "#/components/schemas/WorkRequestRequestFormFieldCheckboxTypePayload",
            "currency_number": "#/components/schemas/WorkRequestRequestFormFieldCurrencyNumberTypePayload",
            "date": "#/components/schemas/WorkRequestRequestFormFieldDateTypePayload",
            "dropdown": "#/components/schemas/WorkRequestRequestFormFieldDropdownTypePayload",
            "file": "#/components/schemas/WorkRequestRequestFormFieldFileTypePayload",
            "label": "#/components/schemas/WorkRequestRequestFormFieldLabelTypePayload",
            "percentage_number": "#/components/schemas/WorkRequestRequestFormFieldPercentageNumberTypePayload",
            "radio_button": "#/components/schemas/WorkRequestRequestFormFieldRadioButtonTypePayload",
            "richtext": "#/components/schemas/WorkRequestRequestFormFieldRichtextTypePayload",
            "simple_number": "#/components/schemas/WorkRequestRequestFormFieldSimpleNumberTypePayload",
            "text_area": "#/components/schemas/WorkRequestRequestFormFieldTextAreaTypePayload",
            "text": "#/components/schemas/WorkRequestRequestFormFieldTextTypePayload"
          }
        }
      },
      "WorkRequestRequestFormFieldBriefTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "brief",
            "enum": [
              "brief"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Brief value payload",
            "maxItems": 1,
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/WorkRequestTextBriefResponse"
                },
                {
                  "$ref": "#/components/schemas/WorkRequestAttachmentBriefResponse"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "text_brief": "#/components/schemas/WorkRequestTextBriefResponse",
                  "attachment_brief": "#/components/schemas/WorkRequestAttachmentBriefResponse"
                }
              }
            }
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldCheckboxTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "checkbox",
            "enum": [
              "checkbox"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Values for the form field",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the choice"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the choice"
                }
              },
              "required": [
                "id",
                "name"
              ]
            },
            "example": [
              {
                "id": "63342902e84c7544973c07ce",
                "name": "Option 1"
              },
              {
                "id": "633429b2e84c7544973c07e7",
                "name": "Option 2"
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldDropdownTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "dropdown",
            "enum": [
              "dropdown"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value for the form field",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the choice"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the choice"
                }
              },
              "required": [
                "id",
                "name"
              ]
            },
            "example": [
              {
                "id": "63342902e84c7544973c07ce",
                "name": "Option 1"
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldFileTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "file",
            "enum": [
              "file"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Values for the form field",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": false,
                  "description": "Unique identifier of the file"
                },
                "name": {
                  "type": "string",
                  "nullable": false,
                  "description": "Name for the file",
                  "minLength": 1
                },
                "url": {
                  "type": "string",
                  "nullable": false,
                  "description": "Download URL of the file"
                }
              },
              "required": [
                "id",
                "name",
                "url"
              ]
            },
            "example": [
              {
                "id": "a113667245d111eb8945000c",
                "name": "My File",
                "url": "https://files.cmp.optimizely.com/download/96c314a645d111eb8945000c291b51d4?token="
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldLabelTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "label",
            "enum": [
              "label"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Values for the form field",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifiers of label value"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the label value"
                }
              },
              "required": [
                "id",
                "name"
              ]
            },
            "example": [
              {
                "id": "63342902e84c7544973c07ce",
                "name": "Label 1"
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldRadioButtonTypeResponse": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the form field",
            "example": "radio_button",
            "enum": [
              "radio_button"
            ]
          },
          "values": {
            "type": "array",
            "nullable": false,
            "description": "Value for the form field",
            "maxItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the choice"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the choice value"
                }
              }
            },
            "example": [
              {
                "id": "63342902e84c7544973c07ce",
                "name": "Choice 1"
              }
            ]
          }
        },
        "required": [
          "type",
          "values"
        ]
      },
      "WorkRequestRequestFormFieldUpdateResponse": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldBriefTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldCheckboxTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldCurrencyNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldDateTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldDropdownTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldFileTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldLabelTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldPercentageNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldRadioButtonTypeResponse"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldRichtextTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldSimpleNumberTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldTextAreaTypePayload"
          },
          {
            "$ref": "#/components/schemas/WorkRequestRequestFormFieldTextTypePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "brief": "#/components/schemas/WorkRequestRequestFormFieldBriefTypeResponse",
            "checkbox": "#/components/schemas/WorkRequestRequestFormFieldCheckboxTypeResponse",
            "currency_number": "#/components/schemas/WorkRequestRequestFormFieldCurrencyNumberTypePayload",
            "date": "#/components/schemas/WorkRequestRequestFormFieldDateTypePayload",
            "dropdown": "#/components/schemas/WorkRequestRequestFormFieldDropdownTypeResponse",
            "file": "#/components/schemas/WorkRequestRequestFormFieldFileTypeResponse",
            "label": "#/components/schemas/WorkRequestRequestFormFieldLabelTypeResponse",
            "percentage_number": "#/components/schemas/WorkRequestRequestFormFieldPercentageNumberTypePayload",
            "radio_button": "#/components/schemas/WorkRequestRequestFormFieldRadioButtonTypeResponse",
            "richtext": "#/components/schemas/WorkRequestRequestFormFieldRichtextTypePayload",
            "simple_number": "#/components/schemas/WorkRequestRequestFormFieldSimpleNumberTypePayload",
            "text_area": "#/components/schemas/WorkRequestRequestFormFieldTextAreaTypePayload",
            "text": "#/components/schemas/WorkRequestRequestFormFieldTextTypePayload"
          }
        }
      },
      "ContentTypeListingOption": {
        "enum": [
          "1",
          "2",
          "3"
        ],
        "type": "string",
        "description": "List Type:\n  * `1` - Component only\n  * `2` - Content only\n  * `3` - Component and Content only\n"
      },
      "BaseContentTypeModel": {
        "required": [
          "name",
          "component",
          "content_type_guid",
          "created_by",
          "updated_by",
          "created_at",
          "updated_at",
          "links"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the content type"
          },
          "description": {
            "type": "string",
            "description": "Description of the content type"
          },
          "component": {
            "type": "boolean",
            "description": "Status determining whether the content type is a component"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disabled status of the content type"
          },
          "source": {
            "type": "string",
            "description": "Source of the content type"
          },
          "thumbnail_guid": {
            "type": "string",
            "description": "Thumbnail GUID of the content type"
          },
          "content_type_guid": {
            "type": "string",
            "description": "Unique identifier of the content type"
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the content type"
          },
          "updated_by": {
            "type": "string",
            "description": "Unique identifier of the user who last updated the content type"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content type was created, in ISO 8601 UTC format"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the content type was last updated, in ISO 8601 UTC format"
          },
          "source_id": {
            "type": "string",
            "description": "Source of the content type"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the content type"
          },
          "links": {
            "type": "object",
            "description": "Meta Links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the content type",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b"
              },
              "versions": {
                "type": "string",
                "description": "URL of the content type versions",
                "example": "https://api.cmp.optimizely.com/v3/structured-content/content-types/9fda53cf66a14fd487251480ca695c7b/versions"
              }
            }
          }
        }
      },
      "ValidationError": {
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "type": "object",
        "properties": {
          "loc": {
            "type": "array",
            "description": "Locations where the error occurred",
            "items": {
              "type": "string"
            }
          },
          "msg": {
            "type": "string",
            "description": "Message describing the error"
          },
          "type": {
            "title": "Error Type",
            "type": "string",
            "description": "Type of the error"
          }
        }
      },
      "HTTPValidationError": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "array",
            "description": "Details of the error",
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            }
          }
        }
      },
      "CoreContentType": {
        "required": [
          "name",
          "component"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the content type"
          },
          "description": {
            "type": "string",
            "description": "Description of the content type"
          },
          "component": {
            "type": "boolean",
            "description": "Indicates whether the content type is a component"
          },
          "disabled": {
            "type": "boolean",
            "description": "Disabled status of the content type"
          },
          "thumbnail_guid": {
            "type": "string",
            "description": "Thumbnail GUID of the content type"
          }
        }
      },
      "SCContentTypeCreateRequest": {
        "required": [
          "field_definitions",
          "created_by",
          "details"
        ],
        "type": "object",
        "properties": {
          "details": {
            "$ref": "#/components/schemas/CoreContentType"
          },
          "source": {
            "type": "string",
            "description": "Source for the content type"
          },
          "field_definitions": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ContentTypeFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/LibraryAssetFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/TextFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/BaseFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/DatetimeFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/RichTextFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/ChoiceFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/NumberFieldDefinition"
                }
              ]
            }
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who is creating the content type"
          },
          "expected_locales": {
            "type": "array",
            "description": "Expected locales for the content type",
            "items": {
              "type": "string"
            }
          },
          "source_id": {
            "type": "string",
            "description": "Source ID for the content type"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata for the content type"
          }
        }
      },
      "SCContentTypeCreateResponse": {
        "required": [
          "created"
        ],
        "type": "object",
        "properties": {
          "created": {
            "type": "boolean",
            "description": "Created status of the requested content type"
          },
          "content_type_guid": {
            "type": "string",
            "description": "Unique identifier of the content type"
          },
          "content_type_version_guid": {
            "type": "string",
            "description": "Unique identifier of the content type version"
          }
        }
      },
      "SCContentType": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseContentTypeModel"
          },
          {
            "type": "object",
            "properties": {
              "latest_version": {
                "$ref": "#/components/schemas/SCContentTypeVersion"
              }
            },
            "required": [
              "latest_version"
            ]
          }
        ]
      },
      "SCContentTypeUpdateRequest": {
        "required": [
          "details",
          "updated_by"
        ],
        "type": "object",
        "properties": {
          "details": {
            "$ref": "#/components/schemas/CoreContentType"
          },
          "source_metadata": {
            "type": "string",
            "description": "Source metadata of the content type"
          },
          "updated_by": {
            "type": "string",
            "description": "Unique identifier of the user who updated the content type"
          }
        }
      },
      "SCContentTypeUpdateResponse": {
        "required": [
          "updated"
        ],
        "type": "object",
        "properties": {
          "updated": {
            "type": "boolean",
            "description": "Updated status of the request"
          }
        }
      },
      "SCContentTypeVersionCreateRequest": {
        "required": [
          "field_definitions",
          "created_by"
        ],
        "type": "object",
        "properties": {
          "field_definitions": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ContentTypeFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/LibraryAssetFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/TextFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/BaseFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/DatetimeFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/RichTextFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/ChoiceFieldDefinition"
                },
                {
                  "$ref": "#/components/schemas/NumberFieldDefinition"
                }
              ]
            }
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the version"
          },
          "expected_locales": {
            "type": "array",
            "description": "Expected locales of the version",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SCContentMigrationCreateRequest": {
        "required": [
          "created_by",
          "content_hash"
        ],
        "type": "object",
        "properties": {
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who migrated the content"
          },
          "source": {
            "title": "Source",
            "type": "string",
            "nullable": true,
            "description": "Source of the content"
          },
          "source_id": {
            "title": "Sourceid",
            "type": "string",
            "nullable": true,
            "description": "Source id of the content"
          },
          "new_content_type_version_id": {
            "type": "string",
            "description": "Unique identifier of the content type version to migrate the content to"
          },
          "fields": {
            "type": "object",
            "description": "List of fields",
            "additionalProperties": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/LocalizedFieldValues"
              }
            }
          }
        }
      },
      "SCContentPreviewAcknowledgeRequest": {
        "required": [
          "acknowledged_by",
          "content_hash"
        ],
        "type": "object",
        "properties": {
          "acknowledged_by": {
            "type": "string",
            "description": "Unique identifier of the user who acknowledged the preview request"
          },
          "content_hash": {
            "type": "string",
            "description": "Content hash of the preview request"
          }
        }
      },
      "KeyedPreviewCompletedModel": {
        "required": [
          "completed"
        ],
        "type": "object",
        "properties": {
          "completed": {
            "maxLength": 65536,
            "minLength": 1,
            "type": "string",
            "format": "uri",
            "description": "URL for completed preview."
          },
          "name": {
            "type": "string",
            "default": "",
            "description": "Human readable preview name to distinguish between generated preview outcomes."
          },
          "orderIndex": {
            "type": "number",
            "default": 0,
            "description": "Priority of a preview. For multiple previews, this will be used to sort the previews."
          },
          "mimeType": {
            "type": "string",
            "default": "text/html",
            "description": "If not specified, the `mimeType` will be inferred from the `Content-Type` header from the `completed` URL.\n If the `mimeType` is not specified and there is no `Content-Type` header, this will default to `text/html`."
          },
          "locale": {
            "type": "string",
            "default": "en_US",
            "description": "If not specified, the `locale` will be infered from the `Content-Language` header from the `completed` URL.\n In case of multiple locales, only the first one will be considered and it will be converted to snake case.\n For example, if the `Content-Language` header from the `completed` URL returns `en-US, de, bn`, it will be inferred as `en_US`.\n If the `locale` is not specified and there is no `Content-Language` header, this will default to `en_US`."
          }
        }
      },
      "KeyedPreviewErrorModel": {
        "required": [
          "error"
        ],
        "type": "object",
        "properties": {
          "error": {
            "maxLength": 65536,
            "minLength": 1,
            "type": "string",
            "format": "uri",
            "description": "URL for error preview."
          },
          "name": {
            "type": "string",
            "default": "",
            "description": "Human readable preview name to distinguish between generated preview outcomes."
          },
          "orderIndex": {
            "type": "number",
            "default": 0,
            "description": "Priority of a preview. For multiple previews, this will be used to sort the previews."
          },
          "mimeType": {
            "type": "string",
            "default": "text/html",
            "description": "If not specified, the `mimeType` will be inferred from the `Content-Type` header from the `error` URL.\n If the `mimeType` is not specified and there is no `Content-Type` header, this will default to `text/html`."
          },
          "locale": {
            "type": "string",
            "default": "en_US",
            "description": "If not specified, the `locale` will be infered from the `Content-Language` header from the `error` URL.\n In case of multiple locales, only the first one will be considered and it will be converted to snake case.\n For example, if the `Content-Language` header from the `completed` URL returns `en-US, de, bn`, it will be inferred as `en_US`.\n If the `locale` is not specified and there is no `Content-Language` header, this will default to `en_US`."
          }
        }
      },
      "SCContentPreviewCompleteRequest": {
        "required": [
          "keyed_previews"
        ],
        "type": "object",
        "properties": {
          "keyed_previews": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "maxLength": 65536,
                  "minLength": 1,
                  "type": "string",
                  "format": "uri"
                },
                {
                  "$ref": "#/components/schemas/KeyedPreviewCompletedModel"
                },
                {
                  "$ref": "#/components/schemas/KeyedPreviewErrorModel"
                }
              ]
            }
          }
        }
      },
      "ContentMigrationSummary": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "description": "The total number of content items."
          },
          "not_started": {
            "type": "integer",
            "description": "The number of content items that haven't started migrating."
          },
          "succeeded": {
            "type": "integer",
            "description": "The number of content items that migrated successfully."
          },
          "errored": {
            "type": "integer",
            "description": "The number of content items that failed to migrate."
          },
          "skipped": {
            "type": "integer",
            "description": "The number of content items that are skipped due to content type version ID mismatch."
          }
        }
      },
      "SCContentTypeManagedMigrationResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the managed migration job."
          },
          "instance_id": {
            "type": "string",
            "description": "The ID of the instance."
          },
          "content_type_id": {
            "type": "string",
            "description": "The ID of the content type."
          },
          "source_content_type_version_id": {
            "type": "string",
            "description": "The ID of the source content type version."
          },
          "target_content_type_version_id": {
            "type": "string",
            "description": "The ID of the target content type version."
          },
          "default_values": {
            "type": "object",
            "description": "The default values for the content type."
          },
          "status": {
            "type": "string",
            "description": "The status of the managed migration job.",
            "enum": [
              "not_started",
              "in_progress",
              "success",
              "error"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time on which the managed migration job was created,  in ISO 8601 UTC format (2020-02-10T10:40:45Z).",
            "example": "2019-10-06T13:15:30Z"
          },
          "updated_at": {
            "type": "string",
            "description": "Date and time on which the managed migration job was last updated,  in ISO 8601 UTC format (2020-02-10T10:40:45Z).",
            "example": "2019-10-06T13:15:30Z"
          },
          "content_migration_summary": {
            "type": "object",
            "$ref": "#/components/schemas/ContentMigrationSummary"
          }
        }
      },
      "SCContentTypeManagedMigrationCreateRequest": {
        "type": "object",
        "properties": {
          "source_content_type_version_id": {
            "type": "string",
            "description": "The ID of the source content type version to migrate from."
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the job."
          },
          "default_values": {
            "type": "object",
            "description": "Default values for the migration job, if any.",
            "$ref": "#/components/schemas/LocalizedFieldValues"
          }
        },
        "required": [
          "source_content_type_version_id",
          "created_by"
        ]
      },
      "SCContentTypeManagedMigrationStartResponse": {
        "type": "object",
        "properties": {
          "started": {
            "type": "boolean",
            "description": "True if job started, otherwise false."
          },
          "job_id": {
            "type": "string",
            "description": "The unique identifier of job."
          }
        }
      },
      "HTTPException": {
        "type": "object",
        "properties": {
          "detail": {
            "type": "string",
            "description": "Error message details."
          }
        }
      },
      "SCContentTypeManagedMigrationValidateRequest": {
        "type": "object",
        "properties": {
          "source_content_type_version_id": {
            "type": "string",
            "description": "The ID of the source content type version to migrate from."
          },
          "default_values": {
            "type": "object",
            "description": "Default values for the migration, if any.",
            "$ref": "#/components/schemas/LocalizedFieldValues"
          }
        },
        "required": [
          "source_content_type_version_id"
        ]
      },
      "Team": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the team",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "name": {
            "type": "string",
            "description": "Name of the team",
            "example": "Sample Team"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the team",
                "example": "https://api.cmp.optimizely.com/v3/teams/5d7f910551b00a722e0418830cee6633"
              }
            },
            "required": [
              "self"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "links"
        ]
      },
      "TeamWithUsers": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the team",
            "example": "5d7f910551b00a722e0418830cee6633"
          },
          "name": {
            "type": "string",
            "description": "Name of the team",
            "example": "Sample Team"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the team",
                "example": "https://api.cmp.optimizely.com/v3/teams/5d7f910551b00a722e0418830cee6633"
              }
            },
            "required": [
              "self"
            ]
          },
          "users": {
            "type": "array",
            "description": "List of users in the team",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the user",
                  "example": "5d7f910551b00a722e0418830cee6633"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the user",
                  "example": "John Doe"
                },
                "email": {
                  "type": "string",
                  "description": "Email address of the user",
                  "example": "john.doe@example.com"
                }
              },
              "required": [
                "id",
                "name",
                "email"
              ]
            }
          }
        },
        "required": [
          "id",
          "name",
          "links",
          "users"
        ]
      },
      "SettingsLabelGroupLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the label",
            "example": "Pillar1"
          },
          "color": {
            "type": "string",
            "description": "Color of the label",
            "nullable": true,
            "example": "#4ECFD5",
            "default": null
          }
        },
        "required": [
          "name",
          "color"
        ]
      },
      "SettingsLabelGroup": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "has_single_value": {
            "type": "boolean",
            "description": "Single or multiple value support indicator for the label group",
            "example": true
          },
          "label_type": {
            "type": "string",
            "description": "Name of the label group",
            "example": "Content Pillar"
          },
          "labels": {
            "description": "List of labels of the label group",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SettingsLabelGroupLabel"
            }
          }
        },
        "required": [
          "has_single_value",
          "label_type",
          "labels"
        ]
      },
      "CurrencyCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "A Currency Custom Field"
          },
          "decimal_places": {
            "type": "integer",
            "description": "Value of decimal places",
            "nullable": true,
            "example": 1,
            "default": null
          },
          "currency_code": {
            "type": "string",
            "description": "Curency code of custom field",
            "example": "USD",
            "default": "USD"
          },
          "has_thousand_separator": {
            "type": "boolean",
            "description": "Indicator of thousand separator",
            "example": false,
            "default": false
          }
        },
        "required": [
          "label",
          "decimal_places",
          "currency_code",
          "has_thousand_separator"
        ]
      },
      "NumberCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "A Number Custom Field"
          },
          "decimal_places": {
            "type": "integer",
            "description": "Value of decimal places",
            "nullable": true,
            "example": 1
          },
          "has_thousand_separator": {
            "type": "boolean",
            "description": "Indicator of thousand separator",
            "example": false,
            "default": false
          }
        },
        "required": [
          "label",
          "decimal_places",
          "has_thousand_separator"
        ]
      },
      "PercentageCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "A Percentage Custom Field"
          },
          "decimal_places": {
            "type": "integer",
            "description": "Value of decimal places",
            "nullable": true,
            "example": 1,
            "default": null
          }
        },
        "required": [
          "label",
          "decimal_places"
        ]
      },
      "MultipleOptionCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "A custom field with choice"
          },
          "choices": {
            "type": "array",
            "description": "Custom field choices",
            "items": {
              "type": "string",
              "example": "choice1"
            },
            "example": [
              "choice1",
              "choice2"
            ]
          }
        },
        "required": [
          "label",
          "choices"
        ]
      },
      "LabelOnlyCustomField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "A Custom Field"
          }
        },
        "required": [
          "label"
        ]
      },
      "SettingsCustomField": {
        "type": "object",
        "description": "Settings for custom fields",
        "additionalProperties": false,
        "properties": {
          "currency": {
            "description": "List of currency custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CurrencyCustomField"
            }
          },
          "number": {
            "description": "List of number custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NumberCustomField"
            }
          },
          "percentage": {
            "description": "List of percentage custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PercentageCustomField"
            }
          },
          "checkbox": {
            "description": "List of checkbox custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultipleOptionCustomField"
            }
          },
          "dropdown": {
            "description": "List of dropdown custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultipleOptionCustomField"
            }
          },
          "multichoice": {
            "description": "List of multichoice custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultipleOptionCustomField"
            }
          },
          "multi_select_dropdown": {
            "description": "List of multi-select dropdown custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultipleOptionCustomField"
            }
          },
          "date": {
            "description": "List of date custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          },
          "image": {
            "description": "List of image custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          },
          "richtext": {
            "description": "List of rich text custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          },
          "string": {
            "description": "List of string custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          },
          "textarea": {
            "description": "List of textarea custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          },
          "video": {
            "description": "List of video custom fields",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LabelOnlyCustomField"
            }
          }
        },
        "required": [
          "currency",
          "number",
          "percentage",
          "checkbox",
          "dropdown",
          "multichoice",
          "multi_select_dropdown",
          "date",
          "image",
          "richtext",
          "string",
          "textarea",
          "video"
        ]
      },
      "WorkflowLabel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "default_value": {
            "type": "array",
            "description": "List of label names",
            "items": {
              "type": "string",
              "example": "label1"
            },
            "example": [
              "label1",
              "label2"
            ]
          },
          "is_required": {
            "type": "boolean",
            "description": "Indicates whether a label is required",
            "example": true
          },
          "label_type": {
            "type": "string",
            "description": "Name of the Label Group",
            "example": "Content Pillar"
          },
          "is_required_at_task_creation": {
            "type": "boolean",
            "description": "Indicates whether a label is required at task creation",
            "example": false
          }
        },
        "required": [
          "default_value",
          "is_required",
          "label_type",
          "is_required_at_task_creation"
        ]
      },
      "WorkflowCustomfield": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "is_required": {
            "type": "boolean",
            "description": "Indicates whether a custom field is required",
            "example": false
          },
          "field": {
            "type": "string",
            "description": "Name of the custom field",
            "example": "exampleCustomField"
          },
          "default_value": {
            "type": "array",
            "description": "List of the custom field choices",
            "items": {
              "type": "string",
              "example": "choice1"
            },
            "example": [
              "choice1",
              "choice2"
            ],
            "default": []
          },
          "type": {
            "type": "string",
            "description": "Type of custom field",
            "example": "equal"
          }
        },
        "required": [
          "is_required",
          "field",
          "default_value",
          "type"
        ]
      },
      "WorkflowChannel": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "display_name": {
            "type": "string",
            "description": "Name of the channel",
            "example": "exampleChannel"
          },
          "type": {
            "type": "string",
            "description": "Type of channel",
            "example": "twitter"
          }
        },
        "required": [
          "display_name",
          "type"
        ]
      },
      "WorkflowSubStep": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "actions": {
            "type": "array",
            "description": "List of actions",
            "items": {
              "type": "string",
              "example": "findContent"
            },
            "example": [
              "findContent",
              "writeEditSocialPost"
            ]
          },
          "label": {
            "type": "string",
            "description": "Name of the substep",
            "nullable": true,
            "example": "Substep 1",
            "default": null
          },
          "external_sub_step_config": {
            "type": "object",
            "description": "External substep configuration",
            "additionalProperties": false,
            "properties": {
              "is_user_interaction_allowed": {
                "description": "Indicates whether the user interaction is allowed",
                "type": "boolean",
                "example": false,
                "default": false
              }
            }
          },
          "is_external": {
            "type": "boolean",
            "description": "Indicates whether a substep is external",
            "nullable": true,
            "example": false,
            "default": false
          },
          "external_system": {
            "type": "string",
            "description": "Name of the external system if the substep is external",
            "nullable": true,
            "example": null,
            "default": null
          },
          "description": {
            "type": "string",
            "description": "Description of the substep",
            "nullable": true,
            "example": "This is a substep description",
            "default": null
          }
        },
        "required": [
          "actions",
          "label",
          "is_external",
          "external_system",
          "description"
        ]
      },
      "WorkflowStep": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the workflow step",
            "example": "Step 1"
          },
          "substeps": {
            "type": "array",
            "description": "List of the substeps",
            "items": {
              "$ref": "#/components/schemas/WorkflowSubStep"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the workflow step",
            "nullable": true,
            "example": "This is a dummy example",
            "default": null
          },
          "duration": {
            "type": "integer",
            "description": "Duration of the workflow step",
            "nullable": true,
            "example": 1,
            "default": null
          }
        },
        "required": [
          "label",
          "substeps",
          "description",
          "duration"
        ]
      },
      "SettingsWorkflow": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "is_flexible_workflow": {
            "type": "boolean",
            "description": "Indicates whether the workflow is flexible",
            "example": false
          },
          "is_not_pushed_to_library_by_default": {
            "type": "boolean",
            "description": "Indicates whether the contents of the task created from this workflow are not pushed to the library by default",
            "example": false
          },
          "is_released_as_asset": {
            "type": "boolean",
            "description": "Indicates whether the contents of the task created from this workflow are released as an asset",
            "example": false
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow",
            "example": "A Workflow"
          },
          "labels": {
            "description": "List of the associated labels",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowLabel"
            }
          },
          "custom_fields": {
            "description": "List of the associated custom field",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowCustomfield"
            }
          },
          "default_channels": {
            "description": "List of the associated channels",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowChannel"
            }
          },
          "blacklisted_channels": {
            "description": "List of the disallowed channels",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowChannel"
            }
          },
          "steps": {
            "description": "List of the workflow steps",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStep"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the workflow",
            "nullable": true,
            "example": "Sample description",
            "default": null
          }
        },
        "required": [
          "is_flexible_workflow",
          "is_not_pushed_to_library_by_default",
          "is_released_as_asset",
          "name",
          "labels",
          "custom_fields",
          "default_channels",
          "blacklisted_channels",
          "steps",
          "description"
        ]
      },
      "LogicRuleTargetField": {
        "type": "object",
        "description": "Template logic rule action's target field",
        "additionalProperties": false,
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Name of the target field identifier",
            "example": "end_of_form"
          },
          "custom_field_type": {
            "type": "string",
            "description": "Type of custom field if the target field is a custom field",
            "example": null,
            "default": null,
            "nullable": true
          },
          "type": {
            "type": "string",
            "description": "Type of the target field identifier",
            "example": "end_of_form"
          }
        },
        "required": [
          "identifier",
          "custom_field_type",
          "type"
        ]
      },
      "LogicRuleAction": {
        "type": "object",
        "description": "Template logic rule action",
        "additionalProperties": false,
        "properties": {
          "target_field": {
            "type": "object",
            "$ref": "#/components/schemas/LogicRuleTargetField"
          },
          "type": {
            "type": "string",
            "description": "Type of logic rule action",
            "example": "jump_to"
          },
          "values": {
            "type": "array",
            "description": "Values to consider on logic rule action",
            "items": {
              "type": "string",
              "example": "a choice"
            },
            "example": []
          }
        },
        "required": [
          "target_field",
          "type",
          "values"
        ]
      },
      "LogicRuleCondition": {
        "type": "object",
        "additionalProperties": false,
        "description": "Logic rule action associated condition",
        "properties": {
          "operator": {
            "type": "string",
            "description": "The operator for logic rule action",
            "example": "equal"
          },
          "values": {
            "type": "array",
            "description": "List of labels or custom field choices",
            "items": {
              "type": "string",
              "example": "choice1"
            },
            "example": [
              "choice1"
            ]
          }
        },
        "required": [
          "operator",
          "values"
        ]
      },
      "LogicRule": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "action": {
            "type": "object",
            "description": "Template logic rule action",
            "$ref": "#/components/schemas/LogicRuleAction"
          },
          "condition": {
            "type": "object",
            "description": "Logic rule action associated condition",
            "$ref": "#/components/schemas/LogicRuleCondition"
          }
        },
        "required": [
          "action",
          "condition"
        ]
      },
      "FormField": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "field_type": {
            "type": "string",
            "description": "Type of template form field",
            "example": "custom_field"
          },
          "help": {
            "type": "string",
            "description": "Helper text for form field",
            "example": "This is a helper text"
          },
          "is_required": {
            "type": "boolean",
            "description": "Indicates whether the form field is required",
            "example": false
          },
          "logic_rules": {
            "type": "array",
            "description": "List of the template logic rules",
            "items": {
              "$ref": "#/components/schemas/LogicRule"
            }
          },
          "sort_order": {
            "type": "integer",
            "description": "Sort order of the form field",
            "example": 0
          },
          "identifier": {
            "type": "string",
            "description": "Identifier of the form field",
            "example": "SingleChoice1"
          },
          "custom_field_type": {
            "type": "string",
            "description": "Type of the custom field when the form field is a custom field",
            "nullable": true,
            "example": "multichoice"
          }
        },
        "required": [
          "field_type",
          "help",
          "is_required",
          "logic_rules",
          "sort_order",
          "identifier",
          "custom_field_type"
        ]
      },
      "Section": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "description": "Name of the template section",
            "example": "Test section"
          },
          "id": {
            "type": "string",
            "description": "Id of the template section",
            "example": "9ec506f480dbc2d5f6919168ae448c41"
          }
        },
        "required": [
          "label",
          "id"
        ]
      },
      "Instruction": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the template instruction",
            "example": "Test instruction description"
          },
          "id": {
            "type": "string",
            "description": "Id of the template instruction",
            "example": "9ec506f480dbc2d5f6919168ae448c40"
          }
        },
        "required": [
          "description",
          "id"
        ]
      },
      "SettingsTemplate": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the template",
            "example": "Template 1"
          },
          "description": {
            "type": "string",
            "description": "Description of the template",
            "example": "Template description"
          },
          "public_description": {
            "type": "string",
            "description": "Public description of the template",
            "example": "Template public description"
          },
          "form_fields": {
            "type": "array",
            "description": "List of the template form_fields",
            "items": {
              "$ref": "#/components/schemas/FormField"
            }
          },
          "sections": {
            "type": "array",
            "description": "List of the template sections",
            "items": {
              "$ref": "#/components/schemas/Section"
            }
          },
          "instructions": {
            "type": "array",
            "description": "List of the template instructions",
            "items": {
              "$ref": "#/components/schemas/Instruction"
            }
          },
          "types": {
            "type": "array",
            "description": "List of areas where you can use the template",
            "items": {
              "type": "string",
              "example": "campaign_brief"
            },
            "example": [
              "campaign_brief",
              "task_brief",
              "work_request"
            ]
          }
        },
        "required": [
          "name",
          "description",
          "public_description",
          "form_fields",
          "sections",
          "instructions",
          "types"
        ]
      },
      "SettingsApp": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the app",
            "example": "App 1"
          },
          "description": {
            "type": "string",
            "description": "Description of the app",
            "example": "Sample description"
          },
          "homepage_url": {
            "type": "string",
            "description": "Home page URL for app",
            "example": "https://example1.com"
          },
          "authorization_callback_urls": {
            "type": "array",
            "description": "List of the authorization callback URLs",
            "items": {
              "type": "string",
              "example": "https://example1.com"
            },
            "example": [
              "https://example1.com",
              "https://example2.com"
            ]
          },
          "expose_email": {
            "type": "boolean",
            "description": "Indicates whether an email should be exposed in an API response",
            "example": true
          },
          "env": {
            "type": "string",
            "description": "Environment of the app",
            "example": "production"
          }
        },
        "required": [
          "name",
          "description",
          "homepage_url",
          "authorization_callback_urls",
          "expose_email",
          "env"
        ]
      },
      "SettingsWebhook": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the webhook",
            "example": "Webhook 1"
          },
          "description": {
            "type": "string",
            "description": "Description of the webhook",
            "example": "Sample description"
          },
          "callback_url": {
            "type": "string",
            "description": "Callback URL of the webhook",
            "example": "https://exampledomain.com"
          },
          "secret": {
            "type": "string",
            "description": "Webhook callback URL secret",
            "example": "secret121"
          },
          "event_names": {
            "type": "array",
            "description": "List of the subscribed event names for the webhook",
            "items": {
              "type": "string",
              "example": "asset_added"
            },
            "example": [
              "asset_added",
              "asset_removed"
            ]
          }
        },
        "required": [
          "name",
          "description",
          "callback_url",
          "secret",
          "event_names"
        ]
      },
      "SettingsRoutingRule": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the routing rule",
            "example": "example Routing Rule"
          },
          "rules": {
            "description": "List of the associated rules",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "field_type": {
                  "type": "string",
                  "description": "Name of the rule field type",
                  "example": "customField"
                },
                "identifier": {
                  "type": "string",
                  "description": "Name of the rule identifier",
                  "nullable": true,
                  "example": "exampleCustomField1"
                },
                "operator": {
                  "type": "string",
                  "description": "Name of the rule operator",
                  "example": "equal"
                },
                "value": {
                  "type": "array",
                  "description": "List of the associated label, custom field, or due date choice",
                  "items": {
                    "type": "string",
                    "example": "value1"
                  },
                  "example": [
                    "value1",
                    "value2"
                  ]
                },
                "unit": {
                  "type": "string",
                  "description": "Unit of rule's field. Not null when the rule's `field_type` value is `dueDate`",
                  "nullable": true,
                  "enum": [
                    "days",
                    "weeks",
                    "months",
                    "years",
                    null
                  ],
                  "example": "days"
                },
                "custom_field_type": {
                  "type": "string",
                  "description": "Associated custom field type",
                  "nullable": true,
                  "example": "multichoice"
                }
              },
              "required": [
                "field_type",
                "identifier",
                "operator",
                "value",
                "unit",
                "custom_field_type"
              ]
            }
          },
          "watchers": {
            "type": "array",
            "description": "List of the routing rule watchers email",
            "items": {
              "type": "string",
              "example": "examplewatcher@gmail.com"
            },
            "example": [
              "examplewatcher@gmail.com"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description of the routing rule",
            "example": "Sample routing rule description"
          },
          "template_name": {
            "type": "string",
            "description": "Name of the associated template",
            "nullable": true,
            "example": "Sample template name"
          }
        },
        "required": [
          "name",
          "rules",
          "watchers",
          "description",
          "template_name"
        ]
      },
      "SettingsResources": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "labels": {
            "type": "array",
            "description": "Settings labels",
            "items": {
              "$ref": "#/components/schemas/SettingsLabelGroup"
            }
          },
          "custom_fields": {
            "type": "object",
            "$ref": "#/components/schemas/SettingsCustomField"
          },
          "workflows": {
            "type": "array",
            "description": "Settings workflows",
            "items": {
              "$ref": "#/components/schemas/SettingsWorkflow"
            }
          },
          "templates": {
            "type": "array",
            "description": "Settings templates",
            "items": {
              "$ref": "#/components/schemas/SettingsTemplate"
            }
          },
          "apps": {
            "type": "array",
            "description": "Settings apps",
            "items": {
              "$ref": "#/components/schemas/SettingsApp"
            }
          },
          "webhooks": {
            "type": "array",
            "description": "Settings webhooks",
            "items": {
              "$ref": "#/components/schemas/SettingsWebhook"
            }
          },
          "routing_rules": {
            "type": "array",
            "description": "Settings routing rules",
            "items": {
              "$ref": "#/components/schemas/SettingsRoutingRule"
            }
          }
        },
        "required": [
          "labels",
          "custom_fields",
          "workflows",
          "templates",
          "apps",
          "webhooks",
          "routing_rules"
        ]
      },
      "Settings": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "resources": {
            "type": "object",
            "description": "Fetched settings",
            "$ref": "#/components/schemas/SettingsResources"
          }
        },
        "required": [
          "resources"
        ]
      },
      "SettingsChangesetBase": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "labels": {
            "type": "array",
            "description": "List of the label names",
            "items": {
              "type": "string",
              "example": "A LabelGroup"
            },
            "example": [
              "A LabelGroup"
            ]
          },
          "custom_fields": {
            "type": "array",
            "description": "List of the custom field names",
            "items": {
              "type": "string",
              "example": "A Custom Field"
            },
            "example": [
              "A Custom Field"
            ]
          },
          "workflows": {
            "type": "array",
            "description": "List of the workflow names",
            "items": {
              "type": "string",
              "example": "A WorkFlow"
            },
            "example": [
              "A WorkFlow"
            ]
          },
          "webhooks": {
            "type": "array",
            "description": "List of the webhook names",
            "items": {
              "type": "string",
              "example": "A Webhook"
            },
            "example": [
              "A Webhook"
            ]
          },
          "apps": {
            "type": "array",
            "description": "List of the app names",
            "items": {
              "type": "string",
              "example": "A App"
            },
            "example": [
              "A App"
            ]
          },
          "templates": {
            "type": "array",
            "description": "List of the template names",
            "items": {
              "type": "string",
              "example": "A Template"
            },
            "example": [
              "A Template"
            ]
          },
          "routing_rules": {
            "type": "array",
            "description": "List of the routing rule names",
            "items": {
              "type": "string",
              "example": "A routing Rule"
            },
            "example": [
              "A routing Rule"
            ]
          }
        },
        "required": [
          "labels",
          "custom_fields",
          "workflows",
          "webhooks",
          "apps",
          "templates",
          "routing_rules"
        ]
      },
      "SettingsChangeset": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "create": {
            "type": "object",
            "description": "Created settings",
            "$ref": "#/components/schemas/SettingsChangesetBase"
          },
          "update": {
            "type": "object",
            "description": "Updated settings",
            "$ref": "#/components/schemas/SettingsChangesetBase"
          }
        },
        "required": [
          "create",
          "update"
        ]
      },
      "SettingsUpdateResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "resources": {
            "type": "object",
            "description": "Created or updated settings",
            "$ref": "#/components/schemas/SettingsResources"
          },
          "changeset": {
            "type": "object",
            "description": "Changeset of created or updated settings",
            "$ref": "#/components/schemas/SettingsChangeset"
          }
        },
        "required": [
          "resources",
          "changeset"
        ]
      },
      "WorkflowListResponseItem": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the workflow",
            "example": "6e7f910551b00a722e04188"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow",
            "example": "The awesome workflow"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the workflow",
            "example": "Nice description"
          },
          "is_flexible": {
            "type": "boolean",
            "description": "Indicates whether the workflow is flexible",
            "example": true
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "is_flexible"
        ]
      },
      "WorkflowResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the workflow",
            "example": "6e7f910551b00a722e04188"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow",
            "example": "The awesome workflow"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the workflow",
            "example": "Nice description"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates whether the workflow is active",
            "example": true
          },
          "is_flexible": {
            "type": "boolean",
            "description": "Indicates whether the workflow is flexible",
            "example": true
          },
          "is_smart_duration_enabled": {
            "type": "boolean",
            "description": "Indicates whether the smart duration of a workflow is enabled",
            "example": true
          },
          "is_asset_approval_enabled": {
            "type": "boolean",
            "description": "Indicates whether the asset approval of a workflow is enabled",
            "example": true
          },
          "is_resource_management_enabled": {
            "type": "boolean",
            "description": "Indicates whether the resource management of a workflow is enabled",
            "example": true
          },
          "steps": {
            "type": "array",
            "description": "List of steps",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Identifier of the step",
                  "example": "6e7f910551b00a722e04181"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the step",
                  "example": "Step 1"
                },
                "sub_steps": {
                  "type": "array",
                  "description": "List of sub-steps",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Identifier of the sub-step",
                        "example": "6e7f910551b00a722e04182"
                      },
                      "name": {
                        "type": "string",
                        "description": "Name of the sub-step",
                        "example": "Step 1 Substep 1"
                      },
                      "actions": {
                        "type": "array",
                        "description": "List of actions of a sub-step",
                        "example": [
                          {
                            "name": "Approve"
                          },
                          {
                            "name": "Find Content"
                          },
                          {
                            "name": "Write/Edit Content"
                          },
                          {
                            "name": "Publish"
                          },
                          {
                            "name": "Set Publish Destination"
                          },
                          {
                            "name": "Edit Fields"
                          },
                          {
                            "name": "Set Publish Date"
                          },
                          {
                            "name": "Write/Edit Share"
                          },
                          {
                            "name": "Select Image"
                          }
                        ],
                        "items": {
                          "type": "object",
                          "properties": {
                            "name": {
                              "type": "string",
                              "description": "Name of the action",
                              "example": "Approve"
                            }
                          },
                          "required": [
                            "name"
                          ]
                        }
                      },
                      "type": {
                        "type": "string",
                        "description": "Type of the sub-step",
                        "enum": [
                          "default",
                          "external"
                        ],
                        "example": "default"
                      },
                      "assignees": {
                        "type": "array",
                        "description": "List of assignees of a sub-step",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "type": "string",
                              "description": "Identifier of the sub-step assignee",
                              "example": "6e7f910551b00a722e04182"
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of the assignee",
                              "example": "Ned Stark"
                            },
                            "type": {
                              "type": "string",
                              "description": "Type of the assignee",
                              "enum": [
                                "user",
                                "team"
                              ],
                              "example": "user"
                            },
                            "links": {
                              "type": "object",
                              "description": "Meta links",
                              "properties": {
                                "self": {
                                  "type": "string",
                                  "description": "URL of the assignee",
                                  "example": "https://api.cmp.optimizely.com/v3/users/6e7f910551b00a722e04182"
                                }
                              },
                              "required": [
                                "self"
                              ]
                            }
                          },
                          "required": [
                            "id",
                            "name",
                            "type",
                            "links"
                          ]
                        }
                      }
                    },
                    "required": [
                      "id",
                      "name",
                      "actions",
                      "type",
                      "assignees"
                    ]
                  }
                }
              },
              "required": [
                "id",
                "name",
                "sub_steps"
              ]
            }
          },
          "fields": {
            "type": "array",
            "description": "List of fields",
            "items": {
              "$ref": "#/components/schemas/ObjectFieldCreateResponse"
            }
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "is_active",
          "is_flexible",
          "is_smart_duration_enabled",
          "is_asset_approval_enabled",
          "is_resource_management_enabled",
          "steps",
          "fields"
        ]
      },
      "BaseSettingsFieldsResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the field",
            "example": "6ceee2f4fa3411ecb37802420ac8001b"
          },
          "name": {
            "type": "string",
            "description": "Name of the field",
            "example": "Sample Checkbox"
          },
          "helper_text": {
            "type": "string",
            "description": "Used to help understand functionality of field",
            "example": "This field is used to check options"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of field. Inactive fields cannot be accessed in tasks, campaigns or workflows.",
            "example": true
          },
          "type": {
            "type": "string",
            "description": "Type of the field",
            "example": "checkbox"
          },
          "links": {
            "type": "object",
            "additionalProperties": false,
            "description": "Meta links",
            "properties": {
              "source": {
                "type": "string",
                "description": "URL of the list of fields filtered only with the field",
                "example": "https://api.cmp.optimizely.com/v3/fields?ids=8p7f910551i00722y0418830aee6612"
              }
            },
            "required": [
              "source"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "helper_text",
          "is_active",
          "type",
          "links"
        ]
      },
      "SettingsFieldChoiceResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the choice",
            "example": "6ceee2f4fa3411ecb37802420ac8001b"
          },
          "name": {
            "type": "string",
            "description": "Name of the choice",
            "example": "Choice 1"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of the choice. Inactive choices stay on the field. In the app, users cannot select them.",
            "example": true
          }
        },
        "required": [
          "id",
          "name",
          "is_active"
        ]
      },
      "CheckboxAndRadioTypeSettingsFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldsResponse"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the field",
                "items": {
                  "$ref": "#/components/schemas/SettingsFieldChoiceResponse"
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "GenericNumberTypeSettingsFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldsResponse"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true
              },
              "decimal_places": {
                "type": "integer",
                "description": "Decimal place of the numerical field",
                "example": 2
              }
            },
            "required": [
              "has_thousand_separator",
              "decimal_places"
            ]
          }
        ]
      },
      "CurrencyNumberTypeSettingsFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldResponse"
          },
          {
            "type": "object",
            "properties": {
              "currency_code": {
                "type": "string",
                "description": "Currency code of the numerical field",
                "example": "USD"
              }
            },
            "required": [
              "currency_code"
            ]
          }
        ]
      },
      "DropdownTypeSettingsFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldsResponse"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the field",
                "items": {
                  "$ref": "#/components/schemas/SettingsFieldChoiceResponse"
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "LabelTypeSettingsFieldChoiceResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SettingsFieldChoiceResponse"
          },
          {
            "type": "object",
            "properties": {
              "color": {
                "type": "string",
                "example": "#4ECFD5",
                "nullable": true,
                "description": "Code of choice color. Colors are limited to the following:\n- Electric Blue (#4ECFD5)\n- Golden Rod (#FFC700)\n- Salmon Pink (#FF98A7)\n- Blue Violet (#702BD5)\n- Spring Green (#5FEEAD)\n- Lavender Blue (#D6C4F2)\n- Sky (#5F9FF6)\n- Persian blue (#CB5DEB)\n- Cool Gray (#9694B3)\n"
              }
            },
            "required": [
              "color"
            ]
          }
        ]
      },
      "LabelTypeSettingsFieldResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldsResponse"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values"
              },
              "choices": {
                "type": "array",
                "description": "Choices of the field",
                "items": {
                  "$ref": "#/components/schemas/LabelTypeSettingsFieldChoiceResponse"
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "BaseSettingsFieldCreatePayload": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the field",
            "example": "Sample Checkbox"
          },
          "helper_text": {
            "type": "string",
            "maxLength": 120,
            "description": "Used to help understand the functionality of the field.",
            "example": "This field is used to check options"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of field. Inactive fields cannot be accessed in tasks, campaigns or workflows.",
            "example": true
          },
          "type": {
            "type": "string",
            "description": "Type of the field",
            "example": "checkbox"
          }
        },
        "required": [
          "name",
          "is_active",
          "type"
        ]
      },
      "CheckboxAndRadioTypeSettingsFieldCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldCreatePayload"
          },
          {
            "type": "object",
            "properties": {
              "choices": {
                "type": "array",
                "description": "Choices of the field",
                "minItems": 1,
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Name of the choice",
                      "example": "Choice 1"
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              }
            },
            "required": [
              "choices"
            ]
          }
        ]
      },
      "GenericNumberTypeSettingsFieldCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldCreatePayload"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true,
                "default": false
              },
              "decimal_places": {
                "type": "integer",
                "description": "Decimal place of the numerical field. This must be greather than 0. If this field is empty, 2 is set as the default.",
                "example": 2,
                "default": 2
              }
            }
          }
        ]
      },
      "CurrencyNumberTypeSettingsFieldCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldCreatePayload"
          },
          {
            "type": "object",
            "properties": {
              "currency_code": {
                "type": "string",
                "description": "Currency code of the numerical field. This must be a valid currency code. If this field is empty, `USD` is set as the default.",
                "default": "USD",
                "example": "USD"
              }
            }
          }
        ]
      },
      "DropdownTypeSettingsFieldCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldCreatePayload"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values"
              },
              "choices": {
                "type": "array",
                "minItems": 1,
                "description": "Choices of the field",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Name of the choice",
                      "example": "Choice 1"
                    }
                  },
                  "required": [
                    "name"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "LabelTypeSettingsFieldCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldCreatePayload"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values"
              },
              "choices": {
                "type": "array",
                "minItems": 1,
                "description": "Choices of the field",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Name of the choice",
                      "example": "Choice 1"
                    },
                    "color": {
                      "type": "string",
                      "example": "#FFC700",
                      "description": "Code of choice color. Colors are limited to the following:\n- Electric Blue (#4ECFD5)\n- Golden Rod (#FFC700)\n- Salmon Pink (#FF98A7)\n- Blue Violet (#702BD5)\n- Spring Green (#5FEEAD)\n- Lavender Blue (#D6C4F2)\n- Sky (#5F9FF6)\n- Persian blue (#CB5DEB)\n- Cool Gray (#9694B3)\n"
                    }
                  },
                  "required": [
                    "name",
                    "color"
                  ]
                }
              }
            },
            "required": [
              "is_multi_select",
              "choices"
            ]
          }
        ]
      },
      "SettingsFieldCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldCreatePayload"
          },
          {
            "$ref": "#/components/schemas/LabelTypeSettingsFieldCreatePayload"
          },
          {
            "$ref": "#/components/schemas/DropdownTypeSettingsFieldCreatePayload"
          },
          {
            "$ref": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldCreatePayload"
          },
          {
            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldCreatePayload"
          },
          {
            "$ref": "#/components/schemas/CurrencyNumberTypeSettingsFieldCreatePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldCreatePayload",
            "currency_number": "#/components/schemas/CurrencyNumberTypeSettingsFieldCreatePayload",
            "date": "#/components/schemas/BaseSettingsFieldCreatePayload",
            "dropdown": "#/components/schemas/DropdownTypeSettingsFieldCreatePayload",
            "image": "#/components/schemas/BaseSettingsFieldCreatePayload",
            "label": "#/components/schemas/LabelTypeSettingsFieldCreatePayload",
            "percentage_number": "#/components/schemas/GenericNumberTypeSettingsFieldCreatePayload",
            "radio_button": "#/components/schemas/CheckboxAndRadioTypeSettingsFieldCreatePayload",
            "rich_text": "#/components/schemas/BaseSettingsFieldCreatePayload",
            "simple_number": "#/components/schemas/GenericNumberTypeSettingsFieldCreatePayload",
            "text": "#/components/schemas/BaseSettingsFieldCreatePayload",
            "text_area": "#/components/schemas/BaseSettingsFieldCreatePayload",
            "video": "#/components/schemas/BaseSettingsFieldCreatePayload"
          }
        }
      },
      "BaseSettingsFieldUpdatePayload": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the field. This field is required but not updateable. Type of a field will always stay the same. Update request body must contain atleast one other updateable field."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the field",
            "example": "Sample Field"
          },
          "helper_text": {
            "type": "string",
            "maxLength": 120,
            "description": "Used to help understand the functionality of the field.",
            "example": "This is a helper text"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of field. Inactive fields cannot be accessed in tasks, campaigns or workflows.",
            "example": true
          }
        },
        "required": [
          "type"
        ]
      },
      "GenericNumberTypeSettingsFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "has_thousand_separator": {
                "type": "boolean",
                "description": "Whether the numerical field has a thousand separator",
                "example": true,
                "default": false
              },
              "decimal_places": {
                "type": "integer",
                "description": "Decimal place of the numerical field. This must be greather than 0. If this field is empty, 2 is set as the default.",
                "example": 2,
                "default": 2
              }
            }
          }
        ]
      },
      "CurrencyNumberTypeSettingsFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "currency_code": {
                "type": "string",
                "description": "Currency code of the numerical field. This must be a valid currency code. If this field is empty, `USD` is set as the default.",
                "default": "USD",
                "example": "USD"
              }
            }
          }
        ]
      },
      "LabelAndDropdownTypeSettingsFieldUpdatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldUpdatePayload"
          },
          {
            "type": "object",
            "properties": {
              "is_multi_select": {
                "type": "boolean",
                "description": "Allow users to select multiple values"
              }
            }
          }
        ]
      },
      "SettingsFieldUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/BaseSettingsFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/LabelAndDropdownTypeSettingsFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/GenericNumberTypeSettingsFieldUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/CurrencyNumberTypeSettingsFieldUpdatePayload"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "checkbox": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "currency_number": "#/components/schemas/CurrencyNumberTypeSettingsFieldUpdatePayload",
            "date": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "dropdown": "#/components/schemas/LabelAndDropdownTypeSettingsFieldUpdatePayload",
            "image": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "label": "#/components/schemas/LabelAndDropdownTypeSettingsFieldUpdatePayload",
            "percentage_number": "#/components/schemas/GenericNumberTypeSettingsFieldUpdatePayload",
            "radio_button": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "rich_text": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "simple_number": "#/components/schemas/GenericNumberTypeSettingsFieldUpdatePayload",
            "text": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "text_area": "#/components/schemas/BaseSettingsFieldUpdatePayload",
            "video": "#/components/schemas/BaseSettingsFieldUpdatePayload"
          }
        }
      },
      "GenericSettingsFieldChoiceCreatePayload": {
        "type": "object",
        "description": "Choice for field types other than `label`",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the choice",
            "example": "Choice 1"
          }
        },
        "required": [
          "name"
        ]
      },
      "LabelTypeSettingsFieldChoiceCreatePayload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GenericSettingsFieldChoiceCreatePayload"
          },
          {
            "type": "object",
            "description": "Choice for field type of `label`",
            "properties": {
              "color": {
                "type": "string",
                "example": "#FFC700",
                "description": "Code of choice color. Colors are limited to the following:\n- Electric Blue (#4ECFD5)\n- Golden Rod (#FFC700)\n- Salmon Pink (#FF98A7)\n- Blue Violet (#702BD5)\n- Spring Green (#5FEEAD)\n- Lavender Blue (#D6C4F2)\n- Sky (#5F9FF6)\n- Persian blue (#CB5DEB)\n- Cool Gray (#9694B3)\n"
              }
            },
            "required": [
              "color"
            ]
          }
        ]
      },
      "SettingsFieldChoiceCreateRequest": {
        "type": "array",
        "minItems": 1,
        "description": "Choices of the field",
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/GenericSettingsFieldChoiceCreatePayload"
            },
            {
              "$ref": "#/components/schemas/LabelTypeSettingsFieldChoiceCreatePayload"
            }
          ]
        }
      },
      "SettingsFieldChoiceCreateResponse": {
        "type": "array",
        "description": "Choices of the field",
        "minItems": 1,
        "items": {
          "$ref": "#/components/schemas/SettingsFieldChoiceResponse"
        }
      },
      "GenericSettingsFieldChoiceUpdatePayload": {
        "type": "object",
        "description": "Choice for field types other than `label`",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the choice",
            "example": "Choice 1"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of the choice. Inactive choices stay on the field. In the app, users cannot select them.\nA request that makes the last active choice of a field inactive fails with a `400` error.\n",
            "example": false
          }
        }
      },
      "LabelTypeSettingsFieldChoiceUpdatePayload": {
        "type": "object",
        "description": "Choice for field type of `label`",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Name of the choice",
            "example": "Choice 1"
          },
          "color": {
            "type": "string",
            "example": "#FFC700",
            "description": "Code of choice color. Colors are limited to the following:\n- Electric Blue (#4ECFD5)\n- Golden Rod (#FFC700)\n- Salmon Pink (#FF98A7)\n- Blue Violet (#702BD5)\n- Spring Green (#5FEEAD)\n- Lavender Blue (#D6C4F2)\n- Sky (#5F9FF6)\n- Persian blue (#CB5DEB)\n- Cool Gray (#9694B3)\n"
          },
          "is_active": {
            "type": "boolean",
            "description": "Indicates active status of the choice. Inactive choices stay on the field. In the app, users cannot select them.\nA request that makes the last active choice of a field inactive fails with a `400` error.\n",
            "example": false
          }
        }
      },
      "SettingsFieldChoiceUpdateRequest": {
        "type": "object",
        "description": "Payload for updating choice",
        "additionalProperties": false,
        "oneOf": [
          {
            "$ref": "#/components/schemas/GenericSettingsFieldChoiceUpdatePayload"
          },
          {
            "$ref": "#/components/schemas/LabelTypeSettingsFieldChoiceUpdatePayload"
          }
        ]
      },
      "BrandComplianceCategoriesResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the category",
            "example": "66cebe190bc97e0151eecdda"
          },
          "name": {
            "type": "string",
            "description": "Name of the category",
            "example": "Category-1"
          },
          "criteria": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier of the criteria",
                  "example": "66cebe190bc97e0151eecddb"
                },
                "name": {
                  "type": "string",
                  "description": "Name of the criteria",
                  "example": "Sub-category-1A"
                },
                "description": {
                  "type": "string",
                  "description": "Details about the criteria",
                  "example": "Description-1A"
                }
              },
              "required": [
                "id"
              ]
            }
          }
        },
        "required": [
          "id",
          "criteria"
        ]
      },
      "EventResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the event",
            "example": "674ea40a7a9cac80ff78c95c"
          },
          "title": {
            "type": "string",
            "description": "Title of the event",
            "example": "The awesome event"
          },
          "description": {
            "type": "string",
            "nullable": true,
            "description": "Description of the event",
            "example": "The awesome event's description"
          },
          "campaign_id": {
            "type": "string",
            "description": "Unique identifier of the campaign associated with the event",
            "nullable": true,
            "example": "66d953340019d7b86833ac6dg"
          },
          "start_date": {
            "type": "string",
            "description": "Start date of the event in ISO 8601 UTC format",
            "example": "2024-11-26T11:00:34Z"
          },
          "end_date": {
            "type": "string",
            "description": "End date of the event in ISO 8601 UTC format",
            "example": "2024-11-26T11:30:34Z"
          },
          "is_all_day": {
            "type": "boolean",
            "description": "Whether the event is a day long event or not",
            "example": false
          },
          "is_archived": {
            "type": "boolean",
            "description": "Whether the event is archived or not",
            "example": false
          },
          "created_by": {
            "type": "string",
            "description": "Unique identifier of the user who created the event",
            "example": "66d837c62373533177b59db3"
          },
          "reference_id": {
            "type": "string",
            "description": "Reference ID of the event",
            "example": "EVT-3"
          },
          "links": {
            "type": "object",
            "description": "Meta links",
            "properties": {
              "self": {
                "type": "string",
                "description": "URL of the event",
                "example": "https://api.cmp.optimizely.com/v3/events/674ea40a7a9cac80ff78c95c"
              },
              "campaign": {
                "type": "string",
                "nullable": true,
                "description": "URL of the campaign associated with the event",
                "example": "https://api.cmp.optimizely.com/v3/campaigns/66d953340019d7b86833ac6d"
              }
            },
            "required": [
              "self",
              "campaign"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "description",
          "campaign_id",
          "start_date",
          "end_date",
          "is_archived",
          "is_all_day",
          "reference_id",
          "created_by",
          "links"
        ]
      },
      "EventCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the event",
            "example": "The awesome event"
          },
          "description": {
            "type": "string",
            "description": "Description of the event",
            "example": "This awesome event is created to celebrate our clients"
          },
          "campaign_id": {
            "type": "string",
            "description": "ID of the campaign under which the event is to be created",
            "example": "8p7f91i55722y04188a30cee6612"
          },
          "is_all_day": {
            "type": "boolean",
            "description": "Indicate if the event is all day long",
            "example": false
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Start date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`",
            "example": "1996-09-09T12:18:00Z"
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "description": "End date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`",
            "example": "2024-12-24T12:18:00Z"
          },
          "fields": {
            "type": "array",
            "minItems": 0,
            "description": "List of fields to be associated with the event",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "oneOf": [
                {
                  "$ref": "#/components/schemas/StringTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/MultiChoiceTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/DropdownTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/RadioButtonTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/NumberTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/DateTypeObjectField"
                },
                {
                  "$ref": "#/components/schemas/AssetTypeObjectField"
                }
              ],
              "discriminator": {
                "propertyName": "type",
                "mapping": {
                  "checkbox": "#/components/schemas/MultiChoiceTypeObjectField",
                  "currency_number": "#/components/schemas/NumberTypeObjectField",
                  "date": "#/components/schemas/DateTypeObjectField",
                  "dropdown": "#/components/schemas/DropdownTypeObjectField",
                  "label": "#/components/schemas/MultiChoiceTypeObjectField",
                  "radio_button": "#/components/schemas/RadioButtonTypeObjectField",
                  "percentage_number": "#/components/schemas/NumberTypeObjectField",
                  "simple_number": "#/components/schemas/NumberTypeObjectField",
                  "text": "#/components/schemas/StringTypeObjectField",
                  "text_area": "#/components/schemas/StringTypeObjectField",
                  "rich_text": "#/components/schemas/StringTypeObjectField",
                  "image": "#/components/schemas/AssetTypeObjectField",
                  "video": "#/components/schemas/AssetTypeObjectField"
                }
              }
            }
          }
        },
        "required": [
          "title",
          "is_all_day",
          "start_date",
          "end_date"
        ]
      },
      "EventUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "description": "Title of the event",
            "example": "The awesome event"
          },
          "description": {
            "type": "string",
            "description": "Description of the event",
            "example": "This awesome event is created to celebrate our clients"
          },
          "is_all_day": {
            "type": "boolean",
            "description": "Indicate if the event is all day long",
            "example": false
          },
          "start_date": {
            "type": "string",
            "format": "date-time",
            "description": "Start date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`",
            "example": "1996-09-09T12:18:00Z"
          },
          "end_date": {
            "type": "string",
            "format": "date-time",
            "description": "End date and time of the event in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`",
            "example": "2024-12-24T12:18:00Z"
          }
        }
      },
      "EventFieldsUpdateRequest": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "oneOf": [
            {
              "$ref": "#/components/schemas/MultiChoiceTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/StringTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DropdownTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/RadioButtonTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/NumberTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/DateTypeObjectField"
            },
            {
              "$ref": "#/components/schemas/AssetTypeObjectField"
            }
          ],
          "discriminator": {
            "propertyName": "type",
            "mapping": {
              "checkbox": "#/components/schemas/MultiChoiceTypeObjectField",
              "currency_number": "#/components/schemas/NumberTypeObjectField",
              "date": "#/components/schemas/DateTypeObjectField",
              "dropdown": "#/components/schemas/DropdownTypeObjectField",
              "label": "#/components/schemas/MultiChoiceTypeObjectField",
              "radio_button": "#/components/schemas/RadioButtonTypeObjectField",
              "percentage_number": "#/components/schemas/NumberTypeObjectField",
              "simple_number": "#/components/schemas/NumberTypeObjectField",
              "text": "#/components/schemas/StringTypeObjectField",
              "text_area": "#/components/schemas/StringTypeObjectField",
              "rich_text": "#/components/schemas/StringTypeObjectField",
              "image": "#/components/schemas/AssetTypeObjectField",
              "video": "#/components/schemas/AssetTypeObjectField"
            }
          }
        }
      }
    },
    "responses": {
      "ClientError": {
        "description": "Client error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Unsupported arguments: a,b,c"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Authorization error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Unauthorized"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Permission error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "You do not have the permission to perform this operation"
            }
          }
        }
      },
      "UnprocessableEntity": {
        "description": "Unprocessable entity error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Resource cannot be processed"
            }
          }
        }
      },
      "NotFound": {
        "description": "Not found error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Resource not found"
            }
          }
        }
      },
      "BadGateway": {
        "description": "The content graph is unavailable or returned an error that could not be passed through to the caller. Transient — retry.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Content graph query failed upstream. Please retry."
            }
          }
        }
      },
      "GatewayTimeout": {
        "description": "The content graph could not be reached within the timeout. Transient — retry.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "message": "Content graph is unreachable. Please retry."
            }
          }
        }
      }
    },
    "parameters": {
      "offset": {
        "name": "offset",
        "in": "query",
        "description": "Starting index of results (zero indexed)",
        "schema": {
          "type": "integer",
          "minimum": 0,
          "default": 0
        },
        "example": 5
      },
      "page_size": {
        "name": "page_size",
        "in": "query",
        "description": "Number of results to return per page",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100,
          "default": 10
        },
        "example": 15
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "API",
      "tags": [
        "Uploader",
        "Library",
        "Labels",
        "Brand Compliance",
        "Tasks",
        "Task Step",
        "Campaigns",
        "Publishing",
        "Templates",
        "Users",
        "Work Requests",
        "Structured Contents",
        "Compose",
        "Assets",
        "Content Graph",
        "Milestones",
        "Teams",
        "Settings",
        "Workflows",
        "Fields",
        "Events"
      ]
    }
  ]
}