{
  "openapi": "3.1.0",
  "info": {
    "title": "Project Agreement Management",
    "version": "2025-01-01"
  },
  "servers": [
    {
      "url": "https://client.beeline.com/api"
    },
    {
      "url": "https://client-eu.beeline.com/api"
    }
  ],
  "security": [
    {
      "client_auth": []
    }
  ],
  "tags": [
    {
      "name": "project",
      "x-displayName": "Project",
      "description": "Retrieve Project data in real time to support seamless integration with downstream reporting,\ncompliance, and audit systems. Click [here](webhook-management_2023-07-01#tag/project-event-types) to see the\nlist of project events that are available to subscribe to.\n"
    },
    {
      "name": "statement-of-work",
      "x-displayName": "Statement of Work",
      "description": "Retrieve Statement of Work (SOW) data in real time to support seamless integration with downstream reporting,\ncompliance, and audit systems. Click [here](webhook-management_2023-07-01#tag/sow-event-types) to see the\nlist of SOW events that are available to subscribe to.\n"
    }
  ],
  "paths": {
    "/sites/{clientSiteId}/projects/{projectId}/milestones/{milestoneId}/payments": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "projectId",
          "description": "Uniquely identifies a project.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "in": "path",
          "name": "milestoneId",
          "description": "Uniquely identifies a milestone.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "in": "query",
          "name": "status",
          "description": "Filter by project milestone payment status.",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "canceled",
              "inProcess",
              "invoiced",
              "pending",
              "processFailed",
              "rejected",
              "scheduled"
            ]
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-project-milestone-payments",
        "summary": "Project Milestone Payment List",
        "tags": [
          "project"
        ],
        "description": "Retrieves a list of all payments for a given project milestone, optionally filtered by payment status.\n",
        "security": [
          {
            "client_auth": [
              "read:project"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Project Milestone Payments",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of Project Milestone Payments",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of payments for a project milestone."
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of Project Milestone Payments. If there are no payments, this will be an empty array.",
                      "items": {
                        "type": "object",
                        "title": "Project Milestone Payment Model",
                        "description": "Payment made against a project milestone.",
                        "required": [
                          "paymentId"
                        ],
                        "properties": {
                          "paymentId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the payment."
                          },
                          "paymentNumber": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 2147483647,
                            "description": "The payment number."
                          },
                          "paymentName": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The name of the payment."
                          },
                          "description": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "A description of the payment."
                          },
                          "amount": {
                            "type": "number",
                            "description": "The amount of the payment.",
                            "minimum": 0,
                            "maximum": 922337203685477.6
                          },
                          "grossAmount": {
                            "type": "number",
                            "description": "The gross amount of the payment.",
                            "minimum": 0,
                            "maximum": 922337203685477.6
                          },
                          "taxesAndFees": {
                            "type": "number",
                            "description": "The taxes and fees of the payment.",
                            "minimum": 0,
                            "maximum": 922337203685477.6
                          },
                          "submittedDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The date the payment was submitted.\n- Supported date format is ISO 8601.\n"
                          },
                          "scheduledDate": {
                            "type": "string",
                            "format": "date",
                            "description": "- The scheduled payment date.\n- Supported date format is ISO 8601.\n"
                          },
                          "billToCostCenter": {
                            "description": "Cost center to bill the payment.",
                            "type": "object",
                            "required": [
                              "costCenterId"
                            ],
                            "properties": {
                              "costCenterId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "The unique identifier of the cost center.",
                                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                              },
                              "ouCode": {
                                "type": "string",
                                "description": "The ou code of the cost center.",
                                "maxLength": 50,
                                "example": "ou1"
                              },
                              "costCenterNumber": {
                                "type": "string",
                                "description": "The cost center number of the cost center.",
                                "maxLength": 100,
                                "example": "abcd"
                              }
                            }
                          },
                          "status": {
                            "description": "The status of the milestone payment.",
                            "type": "string",
                            "enum": [
                              "canceled",
                              "inProcess",
                              "invoiced",
                              "pending",
                              "processFailed",
                              "rejected",
                              "scheduled"
                            ]
                          },
                          "submittedComments": {
                            "type": "string",
                            "description": "Comments entered on submission."
                          },
                          "statusComments": {
                            "type": "string",
                            "description": "Comments entered when status changes."
                          },
                          "cancellationComments": {
                            "type": "string",
                            "description": "Comments entered upon cancellation."
                          },
                          "reversalComments": {
                            "type": "string",
                            "description": "Comments entered on payment reversal."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/projects/{projectId}/milestones/{milestoneId}/payments/{paymentId}/pending-approvers": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "projectId",
          "description": "Uniquely identifies a project.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "in": "path",
          "name": "milestoneId",
          "description": "Uniquely identifies a milestone.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "in": "path",
          "name": "paymentId",
          "description": "Uniquely identifies a milestone payment.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-project-milestone-payment-pending-approvers",
        "summary": "Project Milestone Payment Pending Approver List",
        "tags": [
          "project"
        ],
        "description": "Retrieves a list of all pending approvers for a given project milestone payment.\n",
        "security": [
          {
            "client_auth": [
              "read:project"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Project Milestone Payment Pending Approvers",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of pending approvers for a given project milestone payment.",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of pending approvers."
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of pending approvers. If there are no pending approvers, this will be an empty array.",
                      "items": {
                        "type": "object",
                        "title": "Pending Approver Model",
                        "description": "A pending approver.",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the approver."
                          },
                          "userName": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The username of the approver."
                          },
                          "stepAssignedDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The date the step has been assigned to the approver for the milestone payment.\n- Supported date/time format is ISO 8601.\n"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "query",
          "name": "sowState",
          "description": "Filter on statement of work state.",
          "required": false,
          "schema": {
            "type": "string",
            "enum": [
              "amended",
              "bidAccepted",
              "bidExpired",
              "bidNotInterested",
              "bidPendingVendorCompliance",
              "bidSubmitted",
              "bidUnsubmitted",
              "canceled",
              "cancellationInProgress",
              "closed",
              "projectPromotionFailed",
              "projectPromotionInProgress",
              "rfxAwaitingConsensus",
              "rfxDraft",
              "rfxEvaluation",
              "rfxInConsensus",
              "rfxPendingClientFinalApproval",
              "rfxPendingClientInitialApproval",
              "rfxReadyToDefine",
              "rfxReleased",
              "rfxScoring",
              "serviceContractActive",
              "serviceContractClosed",
              "serviceContractNotSubmitted",
              "serviceContractPendingApproval",
              "serviceContractPendingExtension",
              "sowClientNegotiation",
              "sowDraft",
              "sowNegotiationComplete",
              "sowPendingClientApproval",
              "sowPendingClientFinalApproval",
              "sowPendingClientInitialApproval",
              "sowPendingVendorApproval",
              "sowReadyToNegotiate",
              "sowSourcingComplete",
              "sowVendorNegotiation",
              "sowVendorNegotiationAccepted",
              "template"
            ]
          }
        },
        {
          "name": "sowNumber",
          "in": "query",
          "description": "The unique number of the statement of work. If multiple versions exist for this statement of work, then multiple records will be returned.",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 1
          }
        },
        {
          "name": "isCurrentVersion",
          "in": "query",
          "description": "Return only the current version of the statements of work. If not provided, all versions of statements of work will be returned.",
          "required": false,
          "schema": {
            "type": "boolean"
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-sows",
        "summary": "Statement of Work List",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves a list of all SOWs or SOWs for a specific state.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Statements of Work",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of Statements of Work",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of SOWs"
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of SOWs.  If there are no SOWs, this will be an empty array.",
                      "items": {
                        "title": "Statement of Work Model",
                        "description": "A statement of work (SOW) reference.",
                        "type": "object",
                        "required": [
                          "sowId"
                        ],
                        "properties": {
                          "sowId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the statement of work.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "sowNumber": {
                            "type": "integer",
                            "description": "The unique number of the statement of work.",
                            "example": 12345
                          },
                          "sowName": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The statement of work name."
                          },
                          "sowStatus": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The status of the statement of work. This can be a standard Beeline statement of work status name or an added customer value."
                          },
                          "sowState": {
                            "description": "The state of the statement of work.",
                            "allOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "amended",
                                  "bidAccepted",
                                  "bidExpired",
                                  "bidNotInterested",
                                  "bidPendingVendorCompliance",
                                  "bidSubmitted",
                                  "bidUnsubmitted",
                                  "canceled",
                                  "cancellationInProgress",
                                  "closed",
                                  "projectPromotionFailed",
                                  "projectPromotionInProgress",
                                  "rfxAwaitingConsensus",
                                  "rfxDraft",
                                  "rfxEvaluation",
                                  "rfxInConsensus",
                                  "rfxPendingClientFinalApproval",
                                  "rfxPendingClientInitialApproval",
                                  "rfxReadyToDefine",
                                  "rfxReleased",
                                  "rfxScoring",
                                  "serviceContractActive",
                                  "serviceContractClosed",
                                  "serviceContractNotSubmitted",
                                  "serviceContractPendingApproval",
                                  "serviceContractPendingExtension",
                                  "sowClientNegotiation",
                                  "sowDraft",
                                  "sowNegotiationComplete",
                                  "sowPendingClientApproval",
                                  "sowPendingClientFinalApproval",
                                  "sowPendingClientInitialApproval",
                                  "sowPendingVendorApproval",
                                  "sowReadyToNegotiate",
                                  "sowSourcingComplete",
                                  "sowVendorNegotiation",
                                  "sowVendorNegotiationAccepted",
                                  "template"
                                ]
                              }
                            ]
                          },
                          "createDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The create date of the statement of work version.\n- Supported date/time format is ISO 8601.\n"
                          },
                          "versionNumber": {
                            "type": "integer",
                            "description": "The number identifying the version of the statement of work.",
                            "example": 3
                          },
                          "isCurrentVersion": {
                            "type": "boolean",
                            "description": "The flag indicating if this is the current version of statement of work."
                          },
                          "amendReason": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The amendment reason of the statement of work. This can be a standard Beeline amendment reason name or an added custom value."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-sow-by-id",
        "summary": "Statement of Work by ID",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves current SOW information.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Statement of Work",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Statement of Work Model",
                  "description": "A statement of work (SOW) document.",
                  "required": [
                    "sowId"
                  ],
                  "properties": {
                    "sowId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the statement of work.",
                      "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "sowNumber": {
                      "type": "integer",
                      "description": "The unique number of the statement of work.",
                      "example": 12345
                    },
                    "sowTemplateName": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The statement of work template name."
                    },
                    "sowName": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The statement of work name."
                    },
                    "owner": {
                      "type": "object",
                      "required": [
                        "userId"
                      ],
                      "properties": {
                        "userId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the user.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "userName": {
                          "type": "string",
                          "description": "The username of the user.",
                          "example": "username1"
                        }
                      }
                    },
                    "projectManager": {
                      "type": "object",
                      "required": [
                        "userId"
                      ],
                      "properties": {
                        "userId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the user.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "userName": {
                          "type": "string",
                          "description": "The username of the user.",
                          "example": "username1"
                        }
                      }
                    },
                    "technicalManager": {
                      "type": "object",
                      "required": [
                        "userId"
                      ],
                      "properties": {
                        "userId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the user.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "userName": {
                          "type": "string",
                          "description": "The username of the user.",
                          "example": "username1"
                        }
                      }
                    },
                    "taxLocation": {
                      "type": "object",
                      "required": [
                        "locationId"
                      ],
                      "properties": {
                        "locationId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the location.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "locationCode": {
                          "type": "string",
                          "description": "The code of the location.",
                          "example": "LOC-001"
                        }
                      }
                    },
                    "physicalWorkLocation": {
                      "type": "object",
                      "required": [
                        "locationId"
                      ],
                      "properties": {
                        "locationId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the location.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "locationCode": {
                          "type": "string",
                          "description": "The code of the location.",
                          "example": "LOC-001"
                        }
                      }
                    },
                    "billToCostCenter": {
                      "type": "object",
                      "required": [
                        "costCenterId"
                      ],
                      "properties": {
                        "costCenterId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the cost center.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "ouCode": {
                          "type": "string",
                          "description": "The ou code of the cost center.",
                          "maxLength": 50,
                          "example": "ou1"
                        },
                        "costCenterNumber": {
                          "type": "string",
                          "description": "The cost center number of the cost center.",
                          "maxLength": 100,
                          "example": "abcd"
                        }
                      }
                    },
                    "estimatedStartDate": {
                      "type": "string",
                      "format": "date",
                      "description": "- The estimated start date of the statement of work.\n- Supported date format is ISO 8601.\n"
                    },
                    "estimatedEndDate": {
                      "type": "string",
                      "format": "date",
                      "description": "- The estimated end date of the statement of work.\n- Supported date format is ISO 8601.\n"
                    },
                    "estimatedBudgetAmount": {
                      "type": "number",
                      "description": "Estimated budget of the statement of work.",
                      "minimum": 0,
                      "maximum": 922337203685477.6
                    },
                    "currency": {
                      "type": "object",
                      "required": [
                        "currencyId"
                      ],
                      "properties": {
                        "currencyId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the currency.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "currencyCode": {
                          "type": "string",
                          "description": "The code of the currency.",
                          "example": "USD"
                        }
                      }
                    },
                    "industrySupplierId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the industry supplier."
                    },
                    "pointOfContact": {
                      "type": "object",
                      "required": [
                        "userId"
                      ],
                      "properties": {
                        "userId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "The unique identifier of the user.",
                          "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                        },
                        "userName": {
                          "type": "string",
                          "description": "The username of the user.",
                          "example": "username1"
                        }
                      }
                    },
                    "sowStatus": {
                      "type": "string",
                      "maxLength": 255,
                      "description": "The status of the statement of work. This can be a standard Beeline statement of work status name or an added customer value.\n"
                    },
                    "sowState": {
                      "description": "The state of the statement of work.",
                      "allOf": [
                        {
                          "type": "string",
                          "enum": [
                            "amended",
                            "bidAccepted",
                            "bidExpired",
                            "bidNotInterested",
                            "bidPendingVendorCompliance",
                            "bidSubmitted",
                            "bidUnsubmitted",
                            "canceled",
                            "cancellationInProgress",
                            "closed",
                            "projectPromotionFailed",
                            "projectPromotionInProgress",
                            "rfxAwaitingConsensus",
                            "rfxDraft",
                            "rfxEvaluation",
                            "rfxInConsensus",
                            "rfxPendingClientFinalApproval",
                            "rfxPendingClientInitialApproval",
                            "rfxReadyToDefine",
                            "rfxReleased",
                            "rfxScoring",
                            "serviceContractActive",
                            "serviceContractClosed",
                            "serviceContractNotSubmitted",
                            "serviceContractPendingApproval",
                            "serviceContractPendingExtension",
                            "sowClientNegotiation",
                            "sowDraft",
                            "sowNegotiationComplete",
                            "sowPendingClientApproval",
                            "sowPendingClientFinalApproval",
                            "sowPendingClientInitialApproval",
                            "sowPendingVendorApproval",
                            "sowReadyToNegotiate",
                            "sowSourcingComplete",
                            "sowVendorNegotiation",
                            "sowVendorNegotiationAccepted",
                            "template"
                          ]
                        }
                      ]
                    },
                    "statusAssignedDate": {
                      "type": "string",
                      "format": "date-time",
                      "description": "- The date in which the status has been assigned to the statement of work. Please note that this begins\nafter the statement of work has been submitted, therefore draft will not have a date.\n- Supported date/time format is ISO 8601.\n"
                    },
                    "generalAttachments": {
                      "type": "array",
                      "description": "An array of general attachments.",
                      "items": {
                        "title": "Statement of Work Attachment Model",
                        "description": "A statement of work (SOW) attachment reference.",
                        "type": "object",
                        "required": [
                          "attachmentId"
                        ],
                        "properties": {
                          "attachmentId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the attachment.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "attachmentName": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The name of the attachment."
                          }
                        }
                      }
                    },
                    "versionNumber": {
                      "type": "integer",
                      "description": "The number identifying the version of the statement of work.",
                      "example": 3
                    },
                    "isCurrentVersion": {
                      "type": "boolean",
                      "description": "The flag representing the current statement of work version."
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/milestones": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-sow-milestones",
        "summary": "Statement of Work Milestone List",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves a list of all milestones and milestone details for the current version of a given sowId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Statement of Work Milestones",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of Statement of Work milestones",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of milestones for a statement of work."
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of SOW milestones. If there are no milestones, this will be an empty array.",
                      "items": {
                        "title": "Statement of Work milestone Model",
                        "description": "A statement of work (SOW) milestone reference.",
                        "type": "object",
                        "required": [
                          "milestoneId"
                        ],
                        "properties": {
                          "milestoneId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the statement of work milestone.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "name": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The name of the statement of work milestone."
                          },
                          "type": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The type of the statement of work milestone."
                          },
                          "description": {
                            "type": "string",
                            "description": "The description of the statement of work milestone."
                          },
                          "grossAmount": {
                            "type": "number",
                            "description": "The gross amount of the statement of work milestone.",
                            "minimum": 0,
                            "maximum": 922337203685477.6
                          },
                          "taxesAndFees": {
                            "type": "number",
                            "description": "The taxes and fees of the statement of work milestone.",
                            "minimum": 0,
                            "maximum": 922337203685477.6
                          },
                          "startDate": {
                            "type": "string",
                            "format": "date",
                            "description": "The start date of the statement of work milestone. Supported date format is ISO 8601."
                          },
                          "endDate": {
                            "type": "string",
                            "format": "date",
                            "description": "The end date of the statement of work milestone. Supported date format is ISO 8601."
                          },
                          "acceptanceCriteria": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            },
                            "description": "The acceptance criteria for the statement of work milestone."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/financial-summary": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-sow-financial-summary",
        "summary": "Statement of Work Financial Summary",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves the financial summary, including total, milestone, resource, resource bucket, and unit of measure, for a given sowId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Statement of Work Financial Summary",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Statement of Work Financial Summary Model",
                  "description": "A statement of work (SOW) financial summary.",
                  "required": [
                    "sowId"
                  ],
                  "properties": {
                    "sowId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the statement of work.",
                      "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "total": {
                      "description": "The total financial summary of the statement of work.",
                      "type": "object",
                      "properties": {
                        "grossAmount": {
                          "type": "number",
                          "description": "The gross amount.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        },
                        "taxesAndFees": {
                          "type": "number",
                          "description": "The taxes and fees.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        }
                      }
                    },
                    "milestone": {
                      "description": "The milestone financial summary of the statement of work.",
                      "type": "object",
                      "properties": {
                        "grossAmount": {
                          "type": "number",
                          "description": "The gross amount.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        },
                        "taxesAndFees": {
                          "type": "number",
                          "description": "The taxes and fees.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        }
                      }
                    },
                    "resource": {
                      "description": "The resource financial summary of the statement of work.",
                      "type": "object",
                      "properties": {
                        "grossAmount": {
                          "type": "number",
                          "description": "The gross amount.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        },
                        "taxesAndFees": {
                          "type": "number",
                          "description": "The taxes and fees.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        }
                      }
                    },
                    "unitOfMeasure": {
                      "description": "The unit of measure financial summary of the statement of work.",
                      "type": "object",
                      "properties": {
                        "grossAmount": {
                          "type": "number",
                          "description": "The gross amount.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        },
                        "taxesAndFees": {
                          "type": "number",
                          "description": "The taxes and fees.",
                          "minimum": 0,
                          "maximum": 922337203685477.6
                        }
                      }
                    },
                    "resourceBucketAmount": {
                      "type": "number",
                      "description": "The resource bucket amount of the statement of work.",
                      "minimum": 0,
                      "maximum": 922337203685477.6
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/client-defined-values": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "parameters": [
          {
            "name": "skip",
            "in": "query",
            "description": "skip a number of records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            }
          },
          {
            "name": "top",
            "in": "query",
            "description": "select up to 1000 records",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000
            }
          }
        ],
        "operationId": "get-sow-client-defined-values-by-sow-id",
        "summary": "Statement of Work Client Defined Value List",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves a list of client-defined values (CDVs) for a specific sowId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of client defined values for the given id.",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer"
                    },
                    "value": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "title": "text",
                        "description": "A client defined field and its string values.",
                        "required": [
                          "fieldId"
                        ],
                        "properties": {
                          "fieldId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "A unique identifier for this client defined field."
                          },
                          "fieldType": {
                            "type": "string",
                            "enum": [
                              "checkBox",
                              "date",
                              "dropDown",
                              "int",
                              "money",
                              "singleSelector",
                              "shuffleBox",
                              "string",
                              "text"
                            ],
                            "description": "The type of client defined field."
                          },
                          "fieldName": {
                            "type": "string",
                            "description": "The name of the client defined field.",
                            "maxLength": 255
                          },
                          "isRequired": {
                            "type": "boolean",
                            "description": "A boolean that determines if this client defined field is required."
                          },
                          "value": {
                            "description": "An array of client defined values.",
                            "anyOf": [
                              {
                                "type": "string",
                                "title": "string",
                                "description": "The string value of the client defined field."
                              },
                              {
                                "type": "string",
                                "title": "text",
                                "description": "The text value of the client defined field."
                              },
                              {
                                "type": "integer",
                                "title": "int",
                                "description": "The integer value of the client defined field."
                              },
                              {
                                "type": "number",
                                "title": "money",
                                "description": "The money value of the client defined field."
                              },
                              {
                                "type": "string",
                                "format": "date-time",
                                "title": "date",
                                "description": "- The date value of the client defined field.\n- Supported date format is ISO 8601.\n"
                              },
                              {
                                "type": "boolean",
                                "title": "checkbox",
                                "description": "The checkbox boolean value of the client defined field."
                              },
                              {
                                "type": "object",
                                "title": "singleSelector",
                                "description": "A client defined field.",
                                "required": [
                                  "fieldId"
                                ],
                                "properties": {
                                  "itemValueId": {
                                    "type": [
                                      "string"
                                    ],
                                    "format": "uuid",
                                    "description": "A unique identifier for the item selected in a singleSelector of the client defined field."
                                  },
                                  "itemValue": {
                                    "type": [
                                      "string"
                                    ],
                                    "description": "The item value in a dropdown of the client defined field."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "title": "dropdown",
                                "description": "A client defined field.",
                                "required": [
                                  "fieldId"
                                ],
                                "properties": {
                                  "itemValueId": {
                                    "type": [
                                      "string"
                                    ],
                                    "format": "uuid",
                                    "description": "A unique identifier for the item selected in a dropdown of the client defined field."
                                  },
                                  "itemValue": {
                                    "type": [
                                      "string"
                                    ],
                                    "description": "The item value in a dropdown of the client defined field."
                                  }
                                }
                              },
                              {
                                "type": "object",
                                "title": "shufflebox",
                                "description": "A client defined field.",
                                "properties": {
                                  "items": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "description": "A multiple item object for shuffleBox field types.",
                                      "required": [
                                        "itemValueId",
                                        "itemValue"
                                      ],
                                      "properties": {
                                        "itemValueId": {
                                          "type": "string",
                                          "format": "uuid",
                                          "description": "A unique identifier for this item value."
                                        },
                                        "itemValue": {
                                          "type": [
                                            "string"
                                          ],
                                          "description": "An item value."
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "client-defined-value-list": {
                    "value": {
                      "maxItems": 9,
                      "value": [
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "string",
                          "fieldName": "Example String CDV Field",
                          "isRequired": true,
                          "value": "some string value"
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "text",
                          "fieldName": "Example Text CDV Field",
                          "isRequired": true,
                          "value": "some larger text value"
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "int",
                          "fieldName": "Example Int CDV Field",
                          "isRequired": true,
                          "value": 87366
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "date",
                          "fieldName": "Example Date CDV Field",
                          "isRequired": true,
                          "value": "2023-01-18T17:59:51.753Z"
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "money",
                          "fieldName": "Example Money CDV Field",
                          "isRequired": true,
                          "value": 100
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "checkbox",
                          "fieldName": "Example CheckBox CDV Field",
                          "isRequired": true,
                          "value": true
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "singleSelector",
                          "fieldName": "Example SingleSelector CDV Field",
                          "isRequired": true,
                          "value": {
                            "itemValueId": "11111111-2222-3333-4444-555555555555",
                            "itemValue": "Example SingleSelector Value"
                          }
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "dropDown",
                          "fieldName": "Example DropDown CDV Field",
                          "isRequired": true,
                          "value": {
                            "itemValueId": "11111111-2222-3333-4444-555555555555",
                            "itemValue": "Example Dropdown Value"
                          }
                        },
                        {
                          "fieldId": "11111111-2222-3333-4444-555555555555",
                          "fieldType": "shuffleBox",
                          "fieldName": "Example ShuffleBox CDV Field",
                          "isRequired": true,
                          "value": {
                            "items": [
                              {
                                "itemValueId": "11111111-2222-3333-4444-555555555555",
                                "itemValue": "Example ShuffleBox Value"
                              },
                              {
                                "itemValueId": "11111111-2222-3333-4444-555555555555",
                                "itemValue": "Example ShuffleBox Value"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/client-defined-values/{fieldId}": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "fieldId",
          "in": "path",
          "description": "Uniquely identifies a field.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-sow-cdv-by-field-id",
        "summary": "Statement of Work Client Defined Field Value",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves CDF and CDV setup in Enterprise with a given sowId and fieldId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "text",
                  "description": "A client defined field and its string values.",
                  "required": [
                    "fieldId"
                  ],
                  "properties": {
                    "fieldId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "A unique identifier for this client defined field."
                    },
                    "fieldType": {
                      "type": "string",
                      "enum": [
                        "checkBox",
                        "date",
                        "dropDown",
                        "int",
                        "money",
                        "singleSelector",
                        "shuffleBox",
                        "string",
                        "text"
                      ],
                      "description": "The type of client defined field."
                    },
                    "fieldName": {
                      "type": "string",
                      "description": "The name of the client defined field.",
                      "maxLength": 255
                    },
                    "isRequired": {
                      "type": "boolean",
                      "description": "A boolean that determines if this client defined field is required."
                    },
                    "value": {
                      "description": "An array of client defined values.",
                      "anyOf": [
                        {
                          "type": "string",
                          "title": "string",
                          "description": "The string value of the client defined field."
                        },
                        {
                          "type": "string",
                          "title": "text",
                          "description": "The text value of the client defined field."
                        },
                        {
                          "type": "integer",
                          "title": "int",
                          "description": "The integer value of the client defined field."
                        },
                        {
                          "type": "number",
                          "title": "money",
                          "description": "The money value of the client defined field."
                        },
                        {
                          "type": "string",
                          "format": "date-time",
                          "title": "date",
                          "description": "- The date value of the client defined field.\n- Supported date format is ISO 8601.\n"
                        },
                        {
                          "type": "boolean",
                          "title": "checkbox",
                          "description": "The checkbox boolean value of the client defined field."
                        },
                        {
                          "type": "object",
                          "title": "singleSelector",
                          "description": "A client defined field.",
                          "required": [
                            "fieldId"
                          ],
                          "properties": {
                            "itemValueId": {
                              "type": [
                                "string"
                              ],
                              "format": "uuid",
                              "description": "A unique identifier for the item selected in a singleSelector of the client defined field."
                            },
                            "itemValue": {
                              "type": [
                                "string"
                              ],
                              "description": "The item value in a dropdown of the client defined field."
                            }
                          }
                        },
                        {
                          "type": "object",
                          "title": "dropdown",
                          "description": "A client defined field.",
                          "required": [
                            "fieldId"
                          ],
                          "properties": {
                            "itemValueId": {
                              "type": [
                                "string"
                              ],
                              "format": "uuid",
                              "description": "A unique identifier for the item selected in a dropdown of the client defined field."
                            },
                            "itemValue": {
                              "type": [
                                "string"
                              ],
                              "description": "The item value in a dropdown of the client defined field."
                            }
                          }
                        },
                        {
                          "type": "object",
                          "title": "shufflebox",
                          "description": "A client defined field.",
                          "properties": {
                            "items": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "description": "A multiple item object for shuffleBox field types.",
                                "required": [
                                  "itemValueId",
                                  "itemValue"
                                ],
                                "properties": {
                                  "itemValueId": {
                                    "type": "string",
                                    "format": "uuid",
                                    "description": "A unique identifier for this item value."
                                  },
                                  "itemValue": {
                                    "type": [
                                      "string"
                                    ],
                                    "description": "An item value."
                                  }
                                }
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                },
                "examples": {
                  "client-defined-value-string-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "string",
                      "fieldName": "Example String CDV Field",
                      "isRequired": true,
                      "value": "some string value"
                    }
                  },
                  "client-defined-value-text-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "text",
                      "fieldName": "Example Text CDV Field",
                      "isRequired": true,
                      "value": "some larger text value"
                    }
                  },
                  "client-defined-value-int-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "int",
                      "fieldName": "Example Int CDV Field",
                      "isRequired": true,
                      "value": 87366
                    }
                  },
                  "client-defined-value-money-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "money",
                      "fieldName": "Example Money CDV Field",
                      "isRequired": true,
                      "value": 100
                    }
                  },
                  "client-defined-value-date-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "date",
                      "fieldName": "Example Date CDV Field",
                      "isRequired": true,
                      "value": "2023-01-18T17:59:51.753Z"
                    }
                  },
                  "client-defined-value-checkbox-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "checkBox",
                      "fieldName": "Example CheckBox CDV Field",
                      "isRequired": true,
                      "value": true
                    }
                  },
                  "client-defined-value-single-selector-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "singleSelector",
                      "fieldName": "Example SingleSelector CDV Field",
                      "isRequired": true,
                      "value": {
                        "itemValueId": "11111111-2222-3333-4444-555555555555",
                        "itemValue": "Example SingleSelector Value"
                      }
                    }
                  },
                  "client-defined-value-dropdown-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "dropDown",
                      "fieldName": "Example DropDown CDV Field",
                      "isRequired": true,
                      "value": {
                        "itemValueId": "11111111-2222-3333-4444-555555555555",
                        "itemValue": "Example Dropdown Value"
                      }
                    }
                  },
                  "client-defined-value-shufflebox-field": {
                    "value": {
                      "fieldId": "11111111-2222-3333-4444-555555555555",
                      "fieldType": "shuffleBox",
                      "fieldName": "Example ShuffleBox CDV Field",
                      "isRequired": true,
                      "value": {
                        "items": [
                          {
                            "itemValueId": "11111111-2222-3333-4444-555555555555",
                            "itemValue": "Example ShuffleBox Value"
                          },
                          {
                            "itemValueId": "11111111-2222-3333-4444-555555555555",
                            "itemValue": "Example ShuffleBox Value"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/contributors": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-sow-contributors",
        "summary": "Statement of Work Contributor List",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves a list of all contributors and their roles for a given sowId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Contributors",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of Contributors",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of Contributors, excluding groups"
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of Contributors.  If there are no Contributors, this will be an empty array.",
                      "items": {
                        "title": "Contributor Model",
                        "description": "A contributor.",
                        "type": "object",
                        "required": [
                          "userId"
                        ],
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the user.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "firstName": {
                            "type": "string",
                            "maxLength": 100,
                            "description": "The first name of the contributor."
                          },
                          "lastName": {
                            "type": "string",
                            "maxLength": 100,
                            "description": "The last name of the contributor."
                          },
                          "role": {
                            "description": "The role of the contributor.",
                            "allOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "independentContractor",
                                  "projectAgreementApprover",
                                  "projectAgreementClientAdmin",
                                  "projectAgreementCreator",
                                  "projectAgreementEvaluator",
                                  "projectAgreementExecutiveSponsor",
                                  "projectAgreementHr",
                                  "projectAgreementLegal",
                                  "projectAgreementMsp",
                                  "projectAgreementProjectManagement",
                                  "projectAgreementProjectManager",
                                  "projectAgreementStakeholder",
                                  "projectAgreementVendor",
                                  "projectAgreementViewer"
                                ]
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/contributor-groups": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "skip",
          "in": "query",
          "description": "skip a number of records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0
          }
        },
        {
          "name": "top",
          "in": "query",
          "description": "select up to 1000 records",
          "required": false,
          "schema": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "list-sow-contributor-groups",
        "summary": "Statement of Work Contributor Group List",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves a list of all contributor groups and their roles for a given sowId.\n",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "List of Contributor Groups",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of contributor groups",
                  "required": [
                    "maxItems",
                    "value"
                  ],
                  "properties": {
                    "maxItems": {
                      "type": "integer",
                      "description": "The total number of contributor groups"
                    },
                    "value": {
                      "type": "array",
                      "description": "An array of contributor groups.  If there are no contributor groups, this will be an empty array.",
                      "items": {
                        "title": "Contributor Group Model",
                        "description": "A contributor group.",
                        "type": "object",
                        "required": [
                          "groupId"
                        ],
                        "properties": {
                          "groupId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the group.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "code": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "A code uniquely identifying the contributor group."
                          },
                          "name": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The name of the contributor group."
                          },
                          "role": {
                            "description": "The role of the contributor group.",
                            "allOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "independentContractor",
                                  "projectAgreementApprover",
                                  "projectAgreementClientAdmin",
                                  "projectAgreementCreator",
                                  "projectAgreementEvaluator",
                                  "projectAgreementExecutiveSponsor",
                                  "projectAgreementHr",
                                  "projectAgreementLegal",
                                  "projectAgreementMsp",
                                  "projectAgreementProjectManagement",
                                  "projectAgreementProjectManager",
                                  "projectAgreementStakeholder",
                                  "projectAgreementVendor",
                                  "projectAgreementViewer"
                                ]
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/terms": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "get": {
        "operationId": "get-sow-terms",
        "summary": "Statement of Work Terms",
        "tags": [
          "statement-of-work"
        ],
        "description": "Retrieves current client version of terms for a given sowId.",
        "security": [
          {
            "client_auth": [
              "read:sow"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Statement of Work Terms",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Statement of Work Terms Model",
                  "description": "A statement of work (SOW) terms document.",
                  "required": [
                    "sowId"
                  ],
                  "properties": {
                    "sowId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the statement of work.",
                      "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "sowNumber": {
                      "type": "integer",
                      "description": "The unique number of the statement of work.",
                      "example": 12345
                    },
                    "sowDetailId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the current statement of work detail.",
                      "example": "123e4567-e89b-12d3-a456-426614174000"
                    },
                    "termSections": {
                      "type": "array",
                      "description": "An array of top-level term sections.  If there are no sections, this will be an empty array.",
                      "items": {
                        "title": "Statement of Work Term Section Model",
                        "description": "A statement of work (SOW) term section reference.",
                        "type": "object",
                        "properties": {
                          "sectionId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the section.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "sectionTitle": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The section title."
                          },
                          "subsections": {
                            "type": "array",
                            "description": "An array of subsections within the section.  If there are no subsections, this will be an empty array.",
                            "items": {
                              "title": "Statement of Work Term Subsection Model",
                              "description": "A statement of work (SOW) term subsection reference.",
                              "type": "object",
                              "properties": {
                                "subsectionId": {
                                  "type": "string",
                                  "format": "uuid",
                                  "description": "The unique identifier of the subsection.",
                                  "example": "123e4567-e89b-12d3-a456-426614174000"
                                },
                                "subsectionTitle": {
                                  "type": "string",
                                  "maxLength": 255,
                                  "description": "The subsection title."
                                },
                                "subsectionDescription": {
                                  "type": "string",
                                  "description": "The subsection description. This will include html formatting if used."
                                },
                                "comments": {
                                  "type": "array",
                                  "description": "An array of comments within the subsection.  If there are no comments, this will be an empty array.",
                                  "items": {
                                    "title": "Statement of Work Term Comment Model",
                                    "description": "A statement of work (SOW) term comment reference.",
                                    "type": "object",
                                    "required": [
                                      "submittedByUserId"
                                    ],
                                    "properties": {
                                      "text": {
                                        "type": "string",
                                        "description": "The comment text."
                                      },
                                      "submittedByUserId": {
                                        "type": "string",
                                        "format": "uuid",
                                        "description": "The unique identifier of the user who submitted the comment.",
                                        "example": "123e4567-e89b-12d3-a456-426614174000"
                                      },
                                      "isPublic": {
                                        "type": "boolean",
                                        "description": "Indicates whether the comment is public. True if the comment is public. Otherwise, false."
                                      },
                                      "persona": {
                                        "type": "string",
                                        "description": "Identifies whether the comment was created by the client or vendor.\n",
                                        "enum": [
                                          "client",
                                          "vendor"
                                        ]
                                      }
                                    }
                                  }
                                },
                                "attachments": {
                                  "type": "array",
                                  "description": "An array of attachments within the subsection.  If there are no attachments, this will be an empty array.",
                                  "items": {
                                    "title": "Statement of Work Attachment Model",
                                    "description": "A statement of work (SOW) attachment reference.",
                                    "type": "object",
                                    "required": [
                                      "attachmentId"
                                    ],
                                    "properties": {
                                      "attachmentId": {
                                        "type": "string",
                                        "format": "uuid",
                                        "description": "The unique identifier of the attachment.",
                                        "example": "123e4567-e89b-12d3-a456-426614174000"
                                      },
                                      "attachmentName": {
                                        "type": "string",
                                        "maxLength": 255,
                                        "description": "The name of the attachment."
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "termDocuments": {
                      "type": "array",
                      "description": "An array of term documents.  If there are no documents, this will be an empty array.",
                      "items": {
                        "title": "Statement of Work Term Document Model",
                        "description": "A statement of work (SOW) term document reference.",
                        "type": "object",
                        "required": [
                          "attachmentId",
                          "submittedByUserId"
                        ],
                        "properties": {
                          "attachmentId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the attachment.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "attachmentName": {
                            "type": "string",
                            "maxLength": 255,
                            "description": "The name of the attachment."
                          },
                          "version": {
                            "type": "integer",
                            "description": "The version number of the document."
                          },
                          "submittedByUserId": {
                            "type": "string",
                            "format": "uuid",
                            "description": "The unique identifier of the user who submitted the document.",
                            "example": "123e4567-e89b-12d3-a456-426614174000"
                          },
                          "submittedDate": {
                            "type": "string",
                            "format": "date-time",
                            "description": "- The date in which the document was submitted.\n- Supported date/time format is ISO 8601.\n"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sites/{clientSiteId}/sows/{sowId}/approvals": {
      "parameters": [
        {
          "name": "clientSiteId",
          "in": "path",
          "description": "Uniquely identifies a Beeline VMS instance.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          },
          "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
        },
        {
          "in": "path",
          "name": "sowId",
          "description": "Uniquely identifies a statement of work.",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        },
        {
          "name": "api-version",
          "in": "query",
          "description": "The API version of the endpoint",
          "required": true,
          "schema": {
            "type": "string",
            "enum": [
              "2025-01-01"
            ]
          }
        }
      ],
      "post": {
        "operationId": "approve-reject-sow",
        "summary": "Approve/Reject Statement of Work",
        "description": "Submits a request to approve or reject a statement of work.",
        "tags": [
          "statement-of-work"
        ],
        "security": [
          {
            "client_auth": [
              "write:sow"
            ]
          }
        ],
        "requestBody": {
          "description": "Approves or rejects a statement of work.\n",
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "An Approve/Reject statement of work Request.",
                "required": [
                  "approvalStatus",
                  "approverUserId"
                ],
                "properties": {
                  "approvalStatus": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "rejected"
                    ],
                    "description": "The status of the statement of work approval."
                  },
                  "approverUserId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "The unique identifier of the approver user.\n",
                    "example": "12576b49-e5d8-48ef-9ec8-9e7c6d13ec56"
                  },
                  "comment": {
                    "type": "string",
                    "description": "The comment regarding the statement of work approve/reject request.",
                    "maxLength": 5000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "description": "A list of errors.",
                      "required": [
                        "errors"
                      ],
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "required": [
                              "code",
                              "message"
                            ],
                            "type": "object",
                            "properties": {
                              "code": {
                                "enum": [
                                  "UNEXPECTED_ERROR",
                                  "VALIDATION_ERROR",
                                  "NOT_FOUND",
                                  "REQUEST_LIMIT_EXCEEDED",
                                  "UNSUPPORTED_API_VERSION",
                                  "REQUEST_INVALID_CONTENT_TYPE",
                                  "CONFLICT"
                                ],
                                "type": "string",
                                "description": "One of a server-defined set of error codes."
                              },
                              "message": {
                                "type": "string",
                                "description": "The human-readable representation of the error."
                              },
                              "target": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            }
                          }
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "Retry-After": {
                "description": "The number of seconds remaining when the endpoint can be called again.",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "rate-limit": {
                    "value": {
                      "errors": [
                        {
                          "code": "REQUEST_LIMIT_EXCEEDED",
                          "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server error",
            "headers": {
              "X-Rate-Limit-Limit": {
                "description": "The rate limit period (eg. 1m, 12h, 1d)",
                "schema": {
                  "type": "string"
                },
                "example": "8h"
              },
              "X-Rate-Limit-Remaining": {
                "description": "The number of calls remaining in the time window",
                "schema": {
                  "type": "integer"
                },
                "example": 10
              },
              "X-Rate-Limit-Reset": {
                "description": "UTC date time (ISO 8601) when the limit resets",
                "schema": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "client_auth": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://integrations.auth.beeline.com/oauth/token",
            "scopes": {
              "read:sow": "Read Statement of Work data",
              "write:sow": "Write Statement of Work data",
              "read:project": "Read Project data"
            }
          }
        }
      }
    },
    "parameters": {
      "client-site-id": {
        "name": "clientSiteId",
        "in": "path",
        "description": "Uniquely identifies a Beeline VMS instance.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        },
        "example": "abc78252-1d8d-4ecf-9651-6b5ba39bba5b"
      },
      "project-id": {
        "in": "path",
        "name": "projectId",
        "description": "Uniquely identifies a project.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "milestone-id": {
        "in": "path",
        "name": "milestoneId",
        "description": "Uniquely identifies a milestone.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "milestone-payment-status": {
        "in": "query",
        "name": "status",
        "description": "Filter by project milestone payment status.",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "canceled",
            "inProcess",
            "invoiced",
            "pending",
            "processFailed",
            "rejected",
            "scheduled"
          ]
        }
      },
      "skip": {
        "name": "skip",
        "in": "query",
        "description": "skip a number of records",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 0
        }
      },
      "top": {
        "name": "top",
        "in": "query",
        "description": "select up to 1000 records",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000
        }
      },
      "api-version-250101": {
        "name": "api-version",
        "in": "query",
        "description": "The API version of the endpoint",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "2025-01-01"
          ]
        }
      },
      "payment-id": {
        "in": "path",
        "name": "paymentId",
        "description": "Uniquely identifies a milestone payment.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "sow-state": {
        "in": "query",
        "name": "sowState",
        "description": "Filter on statement of work state.",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "amended",
            "bidAccepted",
            "bidExpired",
            "bidNotInterested",
            "bidPendingVendorCompliance",
            "bidSubmitted",
            "bidUnsubmitted",
            "canceled",
            "cancellationInProgress",
            "closed",
            "projectPromotionFailed",
            "projectPromotionInProgress",
            "rfxAwaitingConsensus",
            "rfxDraft",
            "rfxEvaluation",
            "rfxInConsensus",
            "rfxPendingClientFinalApproval",
            "rfxPendingClientInitialApproval",
            "rfxReadyToDefine",
            "rfxReleased",
            "rfxScoring",
            "serviceContractActive",
            "serviceContractClosed",
            "serviceContractNotSubmitted",
            "serviceContractPendingApproval",
            "serviceContractPendingExtension",
            "sowClientNegotiation",
            "sowDraft",
            "sowNegotiationComplete",
            "sowPendingClientApproval",
            "sowPendingClientFinalApproval",
            "sowPendingClientInitialApproval",
            "sowPendingVendorApproval",
            "sowReadyToNegotiate",
            "sowSourcingComplete",
            "sowVendorNegotiation",
            "sowVendorNegotiationAccepted",
            "template"
          ]
        }
      },
      "sow-number": {
        "name": "sowNumber",
        "in": "query",
        "description": "The unique number of the statement of work. If multiple versions exist for this statement of work, then multiple records will be returned.",
        "required": false,
        "schema": {
          "type": "integer",
          "minimum": 1
        }
      },
      "is-current-version": {
        "name": "isCurrentVersion",
        "in": "query",
        "description": "Return only the current version of the statements of work. If not provided, all versions of statements of work will be returned.",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "sow-id": {
        "in": "path",
        "name": "sowId",
        "description": "Uniquely identifies a statement of work.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "field-id": {
        "name": "fieldId",
        "in": "path",
        "description": "Uniquely identifies a field.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "schemas": {
      "milestone-payment-status-enum": {
        "type": "string",
        "enum": [
          "canceled",
          "inProcess",
          "invoiced",
          "pending",
          "processFailed",
          "rejected",
          "scheduled"
        ]
      },
      "cost-center-reference": {
        "type": "object",
        "required": [
          "costCenterId"
        ],
        "properties": {
          "costCenterId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the cost center.",
            "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
          },
          "ouCode": {
            "type": "string",
            "description": "The ou code of the cost center.",
            "maxLength": 50,
            "example": "ou1"
          },
          "costCenterNumber": {
            "type": "string",
            "description": "The cost center number of the cost center.",
            "maxLength": 100,
            "example": "abcd"
          }
        }
      },
      "project-milestone-payment-list-item": {
        "type": "object",
        "title": "Project Milestone Payment Model",
        "description": "Payment made against a project milestone.",
        "required": [
          "paymentId"
        ],
        "properties": {
          "paymentId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the payment."
          },
          "paymentNumber": {
            "type": "integer",
            "minimum": 0,
            "maximum": 2147483647,
            "description": "The payment number."
          },
          "paymentName": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the payment."
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "description": "A description of the payment."
          },
          "amount": {
            "type": "number",
            "description": "The amount of the payment.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "grossAmount": {
            "type": "number",
            "description": "The gross amount of the payment.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "taxesAndFees": {
            "type": "number",
            "description": "The taxes and fees of the payment.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "submittedDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The date the payment was submitted.\n- Supported date format is ISO 8601.\n"
          },
          "scheduledDate": {
            "type": "string",
            "format": "date",
            "description": "- The scheduled payment date.\n- Supported date format is ISO 8601.\n"
          },
          "billToCostCenter": {
            "description": "Cost center to bill the payment.",
            "type": "object",
            "required": [
              "costCenterId"
            ],
            "properties": {
              "costCenterId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the cost center.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "ouCode": {
                "type": "string",
                "description": "The ou code of the cost center.",
                "maxLength": 50,
                "example": "ou1"
              },
              "costCenterNumber": {
                "type": "string",
                "description": "The cost center number of the cost center.",
                "maxLength": 100,
                "example": "abcd"
              }
            }
          },
          "status": {
            "description": "The status of the milestone payment.",
            "type": "string",
            "enum": [
              "canceled",
              "inProcess",
              "invoiced",
              "pending",
              "processFailed",
              "rejected",
              "scheduled"
            ]
          },
          "submittedComments": {
            "type": "string",
            "description": "Comments entered on submission."
          },
          "statusComments": {
            "type": "string",
            "description": "Comments entered when status changes."
          },
          "cancellationComments": {
            "type": "string",
            "description": "Comments entered upon cancellation."
          },
          "reversalComments": {
            "type": "string",
            "description": "Comments entered on payment reversal."
          }
        }
      },
      "list-project-milestone-payments-response": {
        "type": "object",
        "description": "A list of Project Milestone Payments",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of payments for a project milestone."
          },
          "value": {
            "type": "array",
            "description": "An array of Project Milestone Payments. If there are no payments, this will be an empty array.",
            "items": {
              "type": "object",
              "title": "Project Milestone Payment Model",
              "description": "Payment made against a project milestone.",
              "required": [
                "paymentId"
              ],
              "properties": {
                "paymentId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the payment."
                },
                "paymentNumber": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 2147483647,
                  "description": "The payment number."
                },
                "paymentName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the payment."
                },
                "description": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "A description of the payment."
                },
                "amount": {
                  "type": "number",
                  "description": "The amount of the payment.",
                  "minimum": 0,
                  "maximum": 922337203685477.6
                },
                "grossAmount": {
                  "type": "number",
                  "description": "The gross amount of the payment.",
                  "minimum": 0,
                  "maximum": 922337203685477.6
                },
                "taxesAndFees": {
                  "type": "number",
                  "description": "The taxes and fees of the payment.",
                  "minimum": 0,
                  "maximum": 922337203685477.6
                },
                "submittedDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "- The date the payment was submitted.\n- Supported date format is ISO 8601.\n"
                },
                "scheduledDate": {
                  "type": "string",
                  "format": "date",
                  "description": "- The scheduled payment date.\n- Supported date format is ISO 8601.\n"
                },
                "billToCostCenter": {
                  "description": "Cost center to bill the payment.",
                  "type": "object",
                  "required": [
                    "costCenterId"
                  ],
                  "properties": {
                    "costCenterId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The unique identifier of the cost center.",
                      "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
                    },
                    "ouCode": {
                      "type": "string",
                      "description": "The ou code of the cost center.",
                      "maxLength": 50,
                      "example": "ou1"
                    },
                    "costCenterNumber": {
                      "type": "string",
                      "description": "The cost center number of the cost center.",
                      "maxLength": 100,
                      "example": "abcd"
                    }
                  }
                },
                "status": {
                  "description": "The status of the milestone payment.",
                  "type": "string",
                  "enum": [
                    "canceled",
                    "inProcess",
                    "invoiced",
                    "pending",
                    "processFailed",
                    "rejected",
                    "scheduled"
                  ]
                },
                "submittedComments": {
                  "type": "string",
                  "description": "Comments entered on submission."
                },
                "statusComments": {
                  "type": "string",
                  "description": "Comments entered when status changes."
                },
                "cancellationComments": {
                  "type": "string",
                  "description": "Comments entered upon cancellation."
                },
                "reversalComments": {
                  "type": "string",
                  "description": "Comments entered on payment reversal."
                }
              }
            }
          }
        }
      },
      "error": {
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "code": {
            "enum": [
              "UNEXPECTED_ERROR",
              "VALIDATION_ERROR",
              "NOT_FOUND",
              "REQUEST_LIMIT_EXCEEDED",
              "UNSUPPORTED_API_VERSION",
              "REQUEST_INVALID_CONTENT_TYPE",
              "CONFLICT"
            ],
            "type": "string",
            "description": "One of a server-defined set of error codes."
          },
          "message": {
            "type": "string",
            "description": "The human-readable representation of the error."
          },
          "target": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "error-response": {
        "type": "object",
        "description": "A list of errors.",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "required": [
                "code",
                "message"
              ],
              "type": "object",
              "properties": {
                "code": {
                  "enum": [
                    "UNEXPECTED_ERROR",
                    "VALIDATION_ERROR",
                    "NOT_FOUND",
                    "REQUEST_LIMIT_EXCEEDED",
                    "UNSUPPORTED_API_VERSION",
                    "REQUEST_INVALID_CONTENT_TYPE",
                    "CONFLICT"
                  ],
                  "type": "string",
                  "description": "One of a server-defined set of error codes."
                },
                "message": {
                  "type": "string",
                  "description": "The human-readable representation of the error."
                },
                "target": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            }
          }
        }
      },
      "empty-response": {
        "type": "null"
      },
      "project-milestone-payment-pending-approver": {
        "type": "object",
        "title": "Pending Approver Model",
        "description": "A pending approver.",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the approver."
          },
          "userName": {
            "type": "string",
            "maxLength": 255,
            "description": "The username of the approver."
          },
          "stepAssignedDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The date the step has been assigned to the approver for the milestone payment.\n- Supported date/time format is ISO 8601.\n"
          }
        }
      },
      "list-project-milestone-payment-pending-approvers-response": {
        "type": "object",
        "description": "A list of pending approvers for a given project milestone payment.",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of pending approvers."
          },
          "value": {
            "type": "array",
            "description": "An array of pending approvers. If there are no pending approvers, this will be an empty array.",
            "items": {
              "type": "object",
              "title": "Pending Approver Model",
              "description": "A pending approver.",
              "required": [
                "userId"
              ],
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the approver."
                },
                "userName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The username of the approver."
                },
                "stepAssignedDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "- The date the step has been assigned to the approver for the milestone payment.\n- Supported date/time format is ISO 8601.\n"
                }
              }
            }
          }
        }
      },
      "project-agreement-state-enum": {
        "type": "string",
        "enum": [
          "amended",
          "bidAccepted",
          "bidExpired",
          "bidNotInterested",
          "bidPendingVendorCompliance",
          "bidSubmitted",
          "bidUnsubmitted",
          "canceled",
          "cancellationInProgress",
          "closed",
          "projectPromotionFailed",
          "projectPromotionInProgress",
          "rfxAwaitingConsensus",
          "rfxDraft",
          "rfxEvaluation",
          "rfxInConsensus",
          "rfxPendingClientFinalApproval",
          "rfxPendingClientInitialApproval",
          "rfxReadyToDefine",
          "rfxReleased",
          "rfxScoring",
          "serviceContractActive",
          "serviceContractClosed",
          "serviceContractNotSubmitted",
          "serviceContractPendingApproval",
          "serviceContractPendingExtension",
          "sowClientNegotiation",
          "sowDraft",
          "sowNegotiationComplete",
          "sowPendingClientApproval",
          "sowPendingClientFinalApproval",
          "sowPendingClientInitialApproval",
          "sowPendingVendorApproval",
          "sowReadyToNegotiate",
          "sowSourcingComplete",
          "sowVendorNegotiation",
          "sowVendorNegotiationAccepted",
          "template"
        ]
      },
      "sow-list-item": {
        "title": "Statement of Work Model",
        "description": "A statement of work (SOW) reference.",
        "type": "object",
        "required": [
          "sowId"
        ],
        "properties": {
          "sowId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the statement of work.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "sowNumber": {
            "type": "integer",
            "description": "The unique number of the statement of work.",
            "example": 12345
          },
          "sowName": {
            "type": "string",
            "maxLength": 255,
            "description": "The statement of work name."
          },
          "sowStatus": {
            "type": "string",
            "maxLength": 255,
            "description": "The status of the statement of work. This can be a standard Beeline statement of work status name or an added customer value."
          },
          "sowState": {
            "description": "The state of the statement of work.",
            "allOf": [
              {
                "type": "string",
                "enum": [
                  "amended",
                  "bidAccepted",
                  "bidExpired",
                  "bidNotInterested",
                  "bidPendingVendorCompliance",
                  "bidSubmitted",
                  "bidUnsubmitted",
                  "canceled",
                  "cancellationInProgress",
                  "closed",
                  "projectPromotionFailed",
                  "projectPromotionInProgress",
                  "rfxAwaitingConsensus",
                  "rfxDraft",
                  "rfxEvaluation",
                  "rfxInConsensus",
                  "rfxPendingClientFinalApproval",
                  "rfxPendingClientInitialApproval",
                  "rfxReadyToDefine",
                  "rfxReleased",
                  "rfxScoring",
                  "serviceContractActive",
                  "serviceContractClosed",
                  "serviceContractNotSubmitted",
                  "serviceContractPendingApproval",
                  "serviceContractPendingExtension",
                  "sowClientNegotiation",
                  "sowDraft",
                  "sowNegotiationComplete",
                  "sowPendingClientApproval",
                  "sowPendingClientFinalApproval",
                  "sowPendingClientInitialApproval",
                  "sowPendingVendorApproval",
                  "sowReadyToNegotiate",
                  "sowSourcingComplete",
                  "sowVendorNegotiation",
                  "sowVendorNegotiationAccepted",
                  "template"
                ]
              }
            ]
          },
          "createDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The create date of the statement of work version.\n- Supported date/time format is ISO 8601.\n"
          },
          "versionNumber": {
            "type": "integer",
            "description": "The number identifying the version of the statement of work.",
            "example": 3
          },
          "isCurrentVersion": {
            "type": "boolean",
            "description": "The flag indicating if this is the current version of statement of work."
          },
          "amendReason": {
            "type": "string",
            "maxLength": 255,
            "description": "The amendment reason of the statement of work. This can be a standard Beeline amendment reason name or an added custom value."
          }
        }
      },
      "list-sows-response": {
        "type": "object",
        "description": "A list of Statements of Work",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of SOWs"
          },
          "value": {
            "type": "array",
            "description": "An array of SOWs.  If there are no SOWs, this will be an empty array.",
            "items": {
              "title": "Statement of Work Model",
              "description": "A statement of work (SOW) reference.",
              "type": "object",
              "required": [
                "sowId"
              ],
              "properties": {
                "sowId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the statement of work.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "sowNumber": {
                  "type": "integer",
                  "description": "The unique number of the statement of work.",
                  "example": 12345
                },
                "sowName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The statement of work name."
                },
                "sowStatus": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The status of the statement of work. This can be a standard Beeline statement of work status name or an added customer value."
                },
                "sowState": {
                  "description": "The state of the statement of work.",
                  "allOf": [
                    {
                      "type": "string",
                      "enum": [
                        "amended",
                        "bidAccepted",
                        "bidExpired",
                        "bidNotInterested",
                        "bidPendingVendorCompliance",
                        "bidSubmitted",
                        "bidUnsubmitted",
                        "canceled",
                        "cancellationInProgress",
                        "closed",
                        "projectPromotionFailed",
                        "projectPromotionInProgress",
                        "rfxAwaitingConsensus",
                        "rfxDraft",
                        "rfxEvaluation",
                        "rfxInConsensus",
                        "rfxPendingClientFinalApproval",
                        "rfxPendingClientInitialApproval",
                        "rfxReadyToDefine",
                        "rfxReleased",
                        "rfxScoring",
                        "serviceContractActive",
                        "serviceContractClosed",
                        "serviceContractNotSubmitted",
                        "serviceContractPendingApproval",
                        "serviceContractPendingExtension",
                        "sowClientNegotiation",
                        "sowDraft",
                        "sowNegotiationComplete",
                        "sowPendingClientApproval",
                        "sowPendingClientFinalApproval",
                        "sowPendingClientInitialApproval",
                        "sowPendingVendorApproval",
                        "sowReadyToNegotiate",
                        "sowSourcingComplete",
                        "sowVendorNegotiation",
                        "sowVendorNegotiationAccepted",
                        "template"
                      ]
                    }
                  ]
                },
                "createDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "- The create date of the statement of work version.\n- Supported date/time format is ISO 8601.\n"
                },
                "versionNumber": {
                  "type": "integer",
                  "description": "The number identifying the version of the statement of work.",
                  "example": 3
                },
                "isCurrentVersion": {
                  "type": "boolean",
                  "description": "The flag indicating if this is the current version of statement of work."
                },
                "amendReason": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The amendment reason of the statement of work. This can be a standard Beeline amendment reason name or an added custom value."
                }
              }
            }
          }
        }
      },
      "sow-user": {
        "type": "object",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the user.",
            "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
          },
          "userName": {
            "type": "string",
            "description": "The username of the user.",
            "example": "username1"
          }
        }
      },
      "location-reference": {
        "type": "object",
        "required": [
          "locationId"
        ],
        "properties": {
          "locationId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the location.",
            "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
          },
          "locationCode": {
            "type": "string",
            "description": "The code of the location.",
            "example": "LOC-001"
          }
        }
      },
      "currency-reference": {
        "type": "object",
        "required": [
          "currencyId"
        ],
        "properties": {
          "currencyId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the currency.",
            "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
          },
          "currencyCode": {
            "type": "string",
            "description": "The code of the currency.",
            "example": "USD"
          }
        }
      },
      "sow-attachment": {
        "title": "Statement of Work Attachment Model",
        "description": "A statement of work (SOW) attachment reference.",
        "type": "object",
        "required": [
          "attachmentId"
        ],
        "properties": {
          "attachmentId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the attachment.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "attachmentName": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the attachment."
          }
        }
      },
      "get-sow-response": {
        "type": "object",
        "title": "Statement of Work Model",
        "description": "A statement of work (SOW) document.",
        "required": [
          "sowId"
        ],
        "properties": {
          "sowId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the statement of work.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "sowNumber": {
            "type": "integer",
            "description": "The unique number of the statement of work.",
            "example": 12345
          },
          "sowTemplateName": {
            "type": "string",
            "maxLength": 255,
            "description": "The statement of work template name."
          },
          "sowName": {
            "type": "string",
            "maxLength": 255,
            "description": "The statement of work name."
          },
          "owner": {
            "type": "object",
            "required": [
              "userId"
            ],
            "properties": {
              "userId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the user.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "userName": {
                "type": "string",
                "description": "The username of the user.",
                "example": "username1"
              }
            }
          },
          "projectManager": {
            "type": "object",
            "required": [
              "userId"
            ],
            "properties": {
              "userId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the user.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "userName": {
                "type": "string",
                "description": "The username of the user.",
                "example": "username1"
              }
            }
          },
          "technicalManager": {
            "type": "object",
            "required": [
              "userId"
            ],
            "properties": {
              "userId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the user.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "userName": {
                "type": "string",
                "description": "The username of the user.",
                "example": "username1"
              }
            }
          },
          "taxLocation": {
            "type": "object",
            "required": [
              "locationId"
            ],
            "properties": {
              "locationId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the location.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "locationCode": {
                "type": "string",
                "description": "The code of the location.",
                "example": "LOC-001"
              }
            }
          },
          "physicalWorkLocation": {
            "type": "object",
            "required": [
              "locationId"
            ],
            "properties": {
              "locationId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the location.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "locationCode": {
                "type": "string",
                "description": "The code of the location.",
                "example": "LOC-001"
              }
            }
          },
          "billToCostCenter": {
            "type": "object",
            "required": [
              "costCenterId"
            ],
            "properties": {
              "costCenterId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the cost center.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "ouCode": {
                "type": "string",
                "description": "The ou code of the cost center.",
                "maxLength": 50,
                "example": "ou1"
              },
              "costCenterNumber": {
                "type": "string",
                "description": "The cost center number of the cost center.",
                "maxLength": 100,
                "example": "abcd"
              }
            }
          },
          "estimatedStartDate": {
            "type": "string",
            "format": "date",
            "description": "- The estimated start date of the statement of work.\n- Supported date format is ISO 8601.\n"
          },
          "estimatedEndDate": {
            "type": "string",
            "format": "date",
            "description": "- The estimated end date of the statement of work.\n- Supported date format is ISO 8601.\n"
          },
          "estimatedBudgetAmount": {
            "type": "number",
            "description": "Estimated budget of the statement of work.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "currency": {
            "type": "object",
            "required": [
              "currencyId"
            ],
            "properties": {
              "currencyId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the currency.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "currencyCode": {
                "type": "string",
                "description": "The code of the currency.",
                "example": "USD"
              }
            }
          },
          "industrySupplierId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the industry supplier."
          },
          "pointOfContact": {
            "type": "object",
            "required": [
              "userId"
            ],
            "properties": {
              "userId": {
                "type": "string",
                "format": "uuid",
                "description": "The unique identifier of the user.",
                "example": "37a29a36-b084-4033-8a26-b2839cce4c21"
              },
              "userName": {
                "type": "string",
                "description": "The username of the user.",
                "example": "username1"
              }
            }
          },
          "sowStatus": {
            "type": "string",
            "maxLength": 255,
            "description": "The status of the statement of work. This can be a standard Beeline statement of work status name or an added customer value.\n"
          },
          "sowState": {
            "description": "The state of the statement of work.",
            "allOf": [
              {
                "type": "string",
                "enum": [
                  "amended",
                  "bidAccepted",
                  "bidExpired",
                  "bidNotInterested",
                  "bidPendingVendorCompliance",
                  "bidSubmitted",
                  "bidUnsubmitted",
                  "canceled",
                  "cancellationInProgress",
                  "closed",
                  "projectPromotionFailed",
                  "projectPromotionInProgress",
                  "rfxAwaitingConsensus",
                  "rfxDraft",
                  "rfxEvaluation",
                  "rfxInConsensus",
                  "rfxPendingClientFinalApproval",
                  "rfxPendingClientInitialApproval",
                  "rfxReadyToDefine",
                  "rfxReleased",
                  "rfxScoring",
                  "serviceContractActive",
                  "serviceContractClosed",
                  "serviceContractNotSubmitted",
                  "serviceContractPendingApproval",
                  "serviceContractPendingExtension",
                  "sowClientNegotiation",
                  "sowDraft",
                  "sowNegotiationComplete",
                  "sowPendingClientApproval",
                  "sowPendingClientFinalApproval",
                  "sowPendingClientInitialApproval",
                  "sowPendingVendorApproval",
                  "sowReadyToNegotiate",
                  "sowSourcingComplete",
                  "sowVendorNegotiation",
                  "sowVendorNegotiationAccepted",
                  "template"
                ]
              }
            ]
          },
          "statusAssignedDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The date in which the status has been assigned to the statement of work. Please note that this begins\nafter the statement of work has been submitted, therefore draft will not have a date.\n- Supported date/time format is ISO 8601.\n"
          },
          "generalAttachments": {
            "type": "array",
            "description": "An array of general attachments.",
            "items": {
              "title": "Statement of Work Attachment Model",
              "description": "A statement of work (SOW) attachment reference.",
              "type": "object",
              "required": [
                "attachmentId"
              ],
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the attachment.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "attachmentName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the attachment."
                }
              }
            }
          },
          "versionNumber": {
            "type": "integer",
            "description": "The number identifying the version of the statement of work.",
            "example": 3
          },
          "isCurrentVersion": {
            "type": "boolean",
            "description": "The flag representing the current statement of work version."
          }
        }
      },
      "sow-milestone-list-item": {
        "title": "Statement of Work milestone Model",
        "description": "A statement of work (SOW) milestone reference.",
        "type": "object",
        "required": [
          "milestoneId"
        ],
        "properties": {
          "milestoneId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the statement of work milestone.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the statement of work milestone."
          },
          "type": {
            "type": "string",
            "maxLength": 255,
            "description": "The type of the statement of work milestone."
          },
          "description": {
            "type": "string",
            "description": "The description of the statement of work milestone."
          },
          "grossAmount": {
            "type": "number",
            "description": "The gross amount of the statement of work milestone.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "taxesAndFees": {
            "type": "number",
            "description": "The taxes and fees of the statement of work milestone.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "startDate": {
            "type": "string",
            "format": "date",
            "description": "The start date of the statement of work milestone. Supported date format is ISO 8601."
          },
          "endDate": {
            "type": "string",
            "format": "date",
            "description": "The end date of the statement of work milestone. Supported date format is ISO 8601."
          },
          "acceptanceCriteria": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The acceptance criteria for the statement of work milestone."
          }
        }
      },
      "list-sow-milestones-response": {
        "type": "object",
        "description": "A list of Statement of Work milestones",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of milestones for a statement of work."
          },
          "value": {
            "type": "array",
            "description": "An array of SOW milestones. If there are no milestones, this will be an empty array.",
            "items": {
              "title": "Statement of Work milestone Model",
              "description": "A statement of work (SOW) milestone reference.",
              "type": "object",
              "required": [
                "milestoneId"
              ],
              "properties": {
                "milestoneId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the statement of work milestone.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "name": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the statement of work milestone."
                },
                "type": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The type of the statement of work milestone."
                },
                "description": {
                  "type": "string",
                  "description": "The description of the statement of work milestone."
                },
                "grossAmount": {
                  "type": "number",
                  "description": "The gross amount of the statement of work milestone.",
                  "minimum": 0,
                  "maximum": 922337203685477.6
                },
                "taxesAndFees": {
                  "type": "number",
                  "description": "The taxes and fees of the statement of work milestone.",
                  "minimum": 0,
                  "maximum": 922337203685477.6
                },
                "startDate": {
                  "type": "string",
                  "format": "date",
                  "description": "The start date of the statement of work milestone. Supported date format is ISO 8601."
                },
                "endDate": {
                  "type": "string",
                  "format": "date",
                  "description": "The end date of the statement of work milestone. Supported date format is ISO 8601."
                },
                "acceptanceCriteria": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "The acceptance criteria for the statement of work milestone."
                }
              }
            }
          }
        }
      },
      "sow-financial-data": {
        "type": "object",
        "properties": {
          "grossAmount": {
            "type": "number",
            "description": "The gross amount.",
            "minimum": 0,
            "maximum": 922337203685477.6
          },
          "taxesAndFees": {
            "type": "number",
            "description": "The taxes and fees.",
            "minimum": 0,
            "maximum": 922337203685477.6
          }
        }
      },
      "get-sow-financial-summary-response": {
        "type": "object",
        "title": "Statement of Work Financial Summary Model",
        "description": "A statement of work (SOW) financial summary.",
        "required": [
          "sowId"
        ],
        "properties": {
          "sowId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the statement of work.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "total": {
            "description": "The total financial summary of the statement of work.",
            "type": "object",
            "properties": {
              "grossAmount": {
                "type": "number",
                "description": "The gross amount.",
                "minimum": 0,
                "maximum": 922337203685477.6
              },
              "taxesAndFees": {
                "type": "number",
                "description": "The taxes and fees.",
                "minimum": 0,
                "maximum": 922337203685477.6
              }
            }
          },
          "milestone": {
            "description": "The milestone financial summary of the statement of work.",
            "type": "object",
            "properties": {
              "grossAmount": {
                "type": "number",
                "description": "The gross amount.",
                "minimum": 0,
                "maximum": 922337203685477.6
              },
              "taxesAndFees": {
                "type": "number",
                "description": "The taxes and fees.",
                "minimum": 0,
                "maximum": 922337203685477.6
              }
            }
          },
          "resource": {
            "description": "The resource financial summary of the statement of work.",
            "type": "object",
            "properties": {
              "grossAmount": {
                "type": "number",
                "description": "The gross amount.",
                "minimum": 0,
                "maximum": 922337203685477.6
              },
              "taxesAndFees": {
                "type": "number",
                "description": "The taxes and fees.",
                "minimum": 0,
                "maximum": 922337203685477.6
              }
            }
          },
          "unitOfMeasure": {
            "description": "The unit of measure financial summary of the statement of work.",
            "type": "object",
            "properties": {
              "grossAmount": {
                "type": "number",
                "description": "The gross amount.",
                "minimum": 0,
                "maximum": 922337203685477.6
              },
              "taxesAndFees": {
                "type": "number",
                "description": "The taxes and fees.",
                "minimum": 0,
                "maximum": 922337203685477.6
              }
            }
          },
          "resourceBucketAmount": {
            "type": "number",
            "description": "The resource bucket amount of the statement of work.",
            "minimum": 0,
            "maximum": 922337203685477.6
          }
        }
      },
      "value-response-string-model": {
        "type": "string",
        "title": "string",
        "description": "The string value of the client defined field."
      },
      "value-response-text-model": {
        "type": "string",
        "title": "text",
        "description": "The text value of the client defined field."
      },
      "value-response-int-model": {
        "type": "integer",
        "title": "int",
        "description": "The integer value of the client defined field."
      },
      "value-response-money-model": {
        "type": "number",
        "title": "money",
        "description": "The money value of the client defined field."
      },
      "value-response-date-model": {
        "type": "string",
        "format": "date-time",
        "title": "date",
        "description": "- The date value of the client defined field.\n- Supported date format is ISO 8601.\n"
      },
      "value-response-checkbox-model": {
        "type": "boolean",
        "title": "checkbox",
        "description": "The checkbox boolean value of the client defined field."
      },
      "value-response-single-selector-model": {
        "type": "object",
        "title": "singleSelector",
        "description": "A client defined field.",
        "required": [
          "fieldId"
        ],
        "properties": {
          "itemValueId": {
            "type": [
              "string"
            ],
            "format": "uuid",
            "description": "A unique identifier for the item selected in a singleSelector of the client defined field."
          },
          "itemValue": {
            "type": [
              "string"
            ],
            "description": "The item value in a dropdown of the client defined field."
          }
        }
      },
      "value-response-dropdown-model": {
        "type": "object",
        "title": "dropdown",
        "description": "A client defined field.",
        "required": [
          "fieldId"
        ],
        "properties": {
          "itemValueId": {
            "type": [
              "string"
            ],
            "format": "uuid",
            "description": "A unique identifier for the item selected in a dropdown of the client defined field."
          },
          "itemValue": {
            "type": [
              "string"
            ],
            "description": "The item value in a dropdown of the client defined field."
          }
        }
      },
      "multiple-item-value-model": {
        "type": "object",
        "description": "A multiple item object for shuffleBox field types.",
        "required": [
          "itemValueId",
          "itemValue"
        ],
        "properties": {
          "itemValueId": {
            "type": "string",
            "format": "uuid",
            "description": "A unique identifier for this item value."
          },
          "itemValue": {
            "type": [
              "string"
            ],
            "description": "An item value."
          }
        }
      },
      "value-response-shufflebox-model": {
        "type": "object",
        "title": "shufflebox",
        "description": "A client defined field.",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "A multiple item object for shuffleBox field types.",
              "required": [
                "itemValueId",
                "itemValue"
              ],
              "properties": {
                "itemValueId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier for this item value."
                },
                "itemValue": {
                  "type": [
                    "string"
                  ],
                  "description": "An item value."
                }
              }
            }
          }
        }
      },
      "value-response-model": {
        "type": "object",
        "title": "text",
        "description": "A client defined field and its string values.",
        "required": [
          "fieldId"
        ],
        "properties": {
          "fieldId": {
            "type": "string",
            "format": "uuid",
            "description": "A unique identifier for this client defined field."
          },
          "fieldType": {
            "type": "string",
            "enum": [
              "checkBox",
              "date",
              "dropDown",
              "int",
              "money",
              "singleSelector",
              "shuffleBox",
              "string",
              "text"
            ],
            "description": "The type of client defined field."
          },
          "fieldName": {
            "type": "string",
            "description": "The name of the client defined field.",
            "maxLength": 255
          },
          "isRequired": {
            "type": "boolean",
            "description": "A boolean that determines if this client defined field is required."
          },
          "value": {
            "description": "An array of client defined values.",
            "anyOf": [
              {
                "type": "string",
                "title": "string",
                "description": "The string value of the client defined field."
              },
              {
                "type": "string",
                "title": "text",
                "description": "The text value of the client defined field."
              },
              {
                "type": "integer",
                "title": "int",
                "description": "The integer value of the client defined field."
              },
              {
                "type": "number",
                "title": "money",
                "description": "The money value of the client defined field."
              },
              {
                "type": "string",
                "format": "date-time",
                "title": "date",
                "description": "- The date value of the client defined field.\n- Supported date format is ISO 8601.\n"
              },
              {
                "type": "boolean",
                "title": "checkbox",
                "description": "The checkbox boolean value of the client defined field."
              },
              {
                "type": "object",
                "title": "singleSelector",
                "description": "A client defined field.",
                "required": [
                  "fieldId"
                ],
                "properties": {
                  "itemValueId": {
                    "type": [
                      "string"
                    ],
                    "format": "uuid",
                    "description": "A unique identifier for the item selected in a singleSelector of the client defined field."
                  },
                  "itemValue": {
                    "type": [
                      "string"
                    ],
                    "description": "The item value in a dropdown of the client defined field."
                  }
                }
              },
              {
                "type": "object",
                "title": "dropdown",
                "description": "A client defined field.",
                "required": [
                  "fieldId"
                ],
                "properties": {
                  "itemValueId": {
                    "type": [
                      "string"
                    ],
                    "format": "uuid",
                    "description": "A unique identifier for the item selected in a dropdown of the client defined field."
                  },
                  "itemValue": {
                    "type": [
                      "string"
                    ],
                    "description": "The item value in a dropdown of the client defined field."
                  }
                }
              },
              {
                "type": "object",
                "title": "shufflebox",
                "description": "A client defined field.",
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "description": "A multiple item object for shuffleBox field types.",
                      "required": [
                        "itemValueId",
                        "itemValue"
                      ],
                      "properties": {
                        "itemValueId": {
                          "type": "string",
                          "format": "uuid",
                          "description": "A unique identifier for this item value."
                        },
                        "itemValue": {
                          "type": [
                            "string"
                          ],
                          "description": "An item value."
                        }
                      }
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "value-list": {
        "type": "object",
        "description": "A list of client defined values for the given id.",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer"
          },
          "value": {
            "type": "array",
            "items": {
              "type": "object",
              "title": "text",
              "description": "A client defined field and its string values.",
              "required": [
                "fieldId"
              ],
              "properties": {
                "fieldId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "A unique identifier for this client defined field."
                },
                "fieldType": {
                  "type": "string",
                  "enum": [
                    "checkBox",
                    "date",
                    "dropDown",
                    "int",
                    "money",
                    "singleSelector",
                    "shuffleBox",
                    "string",
                    "text"
                  ],
                  "description": "The type of client defined field."
                },
                "fieldName": {
                  "type": "string",
                  "description": "The name of the client defined field.",
                  "maxLength": 255
                },
                "isRequired": {
                  "type": "boolean",
                  "description": "A boolean that determines if this client defined field is required."
                },
                "value": {
                  "description": "An array of client defined values.",
                  "anyOf": [
                    {
                      "type": "string",
                      "title": "string",
                      "description": "The string value of the client defined field."
                    },
                    {
                      "type": "string",
                      "title": "text",
                      "description": "The text value of the client defined field."
                    },
                    {
                      "type": "integer",
                      "title": "int",
                      "description": "The integer value of the client defined field."
                    },
                    {
                      "type": "number",
                      "title": "money",
                      "description": "The money value of the client defined field."
                    },
                    {
                      "type": "string",
                      "format": "date-time",
                      "title": "date",
                      "description": "- The date value of the client defined field.\n- Supported date format is ISO 8601.\n"
                    },
                    {
                      "type": "boolean",
                      "title": "checkbox",
                      "description": "The checkbox boolean value of the client defined field."
                    },
                    {
                      "type": "object",
                      "title": "singleSelector",
                      "description": "A client defined field.",
                      "required": [
                        "fieldId"
                      ],
                      "properties": {
                        "itemValueId": {
                          "type": [
                            "string"
                          ],
                          "format": "uuid",
                          "description": "A unique identifier for the item selected in a singleSelector of the client defined field."
                        },
                        "itemValue": {
                          "type": [
                            "string"
                          ],
                          "description": "The item value in a dropdown of the client defined field."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "dropdown",
                      "description": "A client defined field.",
                      "required": [
                        "fieldId"
                      ],
                      "properties": {
                        "itemValueId": {
                          "type": [
                            "string"
                          ],
                          "format": "uuid",
                          "description": "A unique identifier for the item selected in a dropdown of the client defined field."
                        },
                        "itemValue": {
                          "type": [
                            "string"
                          ],
                          "description": "The item value in a dropdown of the client defined field."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "title": "shufflebox",
                      "description": "A client defined field.",
                      "properties": {
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "description": "A multiple item object for shuffleBox field types.",
                            "required": [
                              "itemValueId",
                              "itemValue"
                            ],
                            "properties": {
                              "itemValueId": {
                                "type": "string",
                                "format": "uuid",
                                "description": "A unique identifier for this item value."
                              },
                              "itemValue": {
                                "type": [
                                  "string"
                                ],
                                "description": "An item value."
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "project-agreement-contributor-role-enum": {
        "type": "string",
        "enum": [
          "independentContractor",
          "projectAgreementApprover",
          "projectAgreementClientAdmin",
          "projectAgreementCreator",
          "projectAgreementEvaluator",
          "projectAgreementExecutiveSponsor",
          "projectAgreementHr",
          "projectAgreementLegal",
          "projectAgreementMsp",
          "projectAgreementProjectManagement",
          "projectAgreementProjectManager",
          "projectAgreementStakeholder",
          "projectAgreementVendor",
          "projectAgreementViewer"
        ]
      },
      "projagmt-contributor-model": {
        "title": "Contributor Model",
        "description": "A contributor.",
        "type": "object",
        "required": [
          "userId"
        ],
        "properties": {
          "userId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the user.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "firstName": {
            "type": "string",
            "maxLength": 100,
            "description": "The first name of the contributor."
          },
          "lastName": {
            "type": "string",
            "maxLength": 100,
            "description": "The last name of the contributor."
          },
          "role": {
            "description": "The role of the contributor.",
            "allOf": [
              {
                "type": "string",
                "enum": [
                  "independentContractor",
                  "projectAgreementApprover",
                  "projectAgreementClientAdmin",
                  "projectAgreementCreator",
                  "projectAgreementEvaluator",
                  "projectAgreementExecutiveSponsor",
                  "projectAgreementHr",
                  "projectAgreementLegal",
                  "projectAgreementMsp",
                  "projectAgreementProjectManagement",
                  "projectAgreementProjectManager",
                  "projectAgreementStakeholder",
                  "projectAgreementVendor",
                  "projectAgreementViewer"
                ]
              }
            ]
          }
        }
      },
      "list-projagmt-contributors-response": {
        "type": "object",
        "description": "A list of Contributors",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of Contributors, excluding groups"
          },
          "value": {
            "type": "array",
            "description": "An array of Contributors.  If there are no Contributors, this will be an empty array.",
            "items": {
              "title": "Contributor Model",
              "description": "A contributor.",
              "type": "object",
              "required": [
                "userId"
              ],
              "properties": {
                "userId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the user.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "firstName": {
                  "type": "string",
                  "maxLength": 100,
                  "description": "The first name of the contributor."
                },
                "lastName": {
                  "type": "string",
                  "maxLength": 100,
                  "description": "The last name of the contributor."
                },
                "role": {
                  "description": "The role of the contributor.",
                  "allOf": [
                    {
                      "type": "string",
                      "enum": [
                        "independentContractor",
                        "projectAgreementApprover",
                        "projectAgreementClientAdmin",
                        "projectAgreementCreator",
                        "projectAgreementEvaluator",
                        "projectAgreementExecutiveSponsor",
                        "projectAgreementHr",
                        "projectAgreementLegal",
                        "projectAgreementMsp",
                        "projectAgreementProjectManagement",
                        "projectAgreementProjectManager",
                        "projectAgreementStakeholder",
                        "projectAgreementVendor",
                        "projectAgreementViewer"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "projagmt-contributor-group-model": {
        "title": "Contributor Group Model",
        "description": "A contributor group.",
        "type": "object",
        "required": [
          "groupId"
        ],
        "properties": {
          "groupId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the group.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "code": {
            "type": "string",
            "maxLength": 255,
            "description": "A code uniquely identifying the contributor group."
          },
          "name": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the contributor group."
          },
          "role": {
            "description": "The role of the contributor group.",
            "allOf": [
              {
                "type": "string",
                "enum": [
                  "independentContractor",
                  "projectAgreementApprover",
                  "projectAgreementClientAdmin",
                  "projectAgreementCreator",
                  "projectAgreementEvaluator",
                  "projectAgreementExecutiveSponsor",
                  "projectAgreementHr",
                  "projectAgreementLegal",
                  "projectAgreementMsp",
                  "projectAgreementProjectManagement",
                  "projectAgreementProjectManager",
                  "projectAgreementStakeholder",
                  "projectAgreementVendor",
                  "projectAgreementViewer"
                ]
              }
            ]
          }
        }
      },
      "list-projagmt-contributor-groups-response": {
        "type": "object",
        "description": "A list of contributor groups",
        "required": [
          "maxItems",
          "value"
        ],
        "properties": {
          "maxItems": {
            "type": "integer",
            "description": "The total number of contributor groups"
          },
          "value": {
            "type": "array",
            "description": "An array of contributor groups.  If there are no contributor groups, this will be an empty array.",
            "items": {
              "title": "Contributor Group Model",
              "description": "A contributor group.",
              "type": "object",
              "required": [
                "groupId"
              ],
              "properties": {
                "groupId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the group.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "code": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "A code uniquely identifying the contributor group."
                },
                "name": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the contributor group."
                },
                "role": {
                  "description": "The role of the contributor group.",
                  "allOf": [
                    {
                      "type": "string",
                      "enum": [
                        "independentContractor",
                        "projectAgreementApprover",
                        "projectAgreementClientAdmin",
                        "projectAgreementCreator",
                        "projectAgreementEvaluator",
                        "projectAgreementExecutiveSponsor",
                        "projectAgreementHr",
                        "projectAgreementLegal",
                        "projectAgreementMsp",
                        "projectAgreementProjectManagement",
                        "projectAgreementProjectManager",
                        "projectAgreementStakeholder",
                        "projectAgreementVendor",
                        "projectAgreementViewer"
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "sow-comment": {
        "title": "Statement of Work Term Comment Model",
        "description": "A statement of work (SOW) term comment reference.",
        "type": "object",
        "required": [
          "submittedByUserId"
        ],
        "properties": {
          "text": {
            "type": "string",
            "description": "The comment text."
          },
          "submittedByUserId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the user who submitted the comment.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "isPublic": {
            "type": "boolean",
            "description": "Indicates whether the comment is public. True if the comment is public. Otherwise, false."
          },
          "persona": {
            "type": "string",
            "description": "Identifies whether the comment was created by the client or vendor.\n",
            "enum": [
              "client",
              "vendor"
            ]
          }
        }
      },
      "sow-subsection": {
        "title": "Statement of Work Term Subsection Model",
        "description": "A statement of work (SOW) term subsection reference.",
        "type": "object",
        "properties": {
          "subsectionId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the subsection.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "subsectionTitle": {
            "type": "string",
            "maxLength": 255,
            "description": "The subsection title."
          },
          "subsectionDescription": {
            "type": "string",
            "description": "The subsection description. This will include html formatting if used."
          },
          "comments": {
            "type": "array",
            "description": "An array of comments within the subsection.  If there are no comments, this will be an empty array.",
            "items": {
              "title": "Statement of Work Term Comment Model",
              "description": "A statement of work (SOW) term comment reference.",
              "type": "object",
              "required": [
                "submittedByUserId"
              ],
              "properties": {
                "text": {
                  "type": "string",
                  "description": "The comment text."
                },
                "submittedByUserId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the user who submitted the comment.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "isPublic": {
                  "type": "boolean",
                  "description": "Indicates whether the comment is public. True if the comment is public. Otherwise, false."
                },
                "persona": {
                  "type": "string",
                  "description": "Identifies whether the comment was created by the client or vendor.\n",
                  "enum": [
                    "client",
                    "vendor"
                  ]
                }
              }
            }
          },
          "attachments": {
            "type": "array",
            "description": "An array of attachments within the subsection.  If there are no attachments, this will be an empty array.",
            "items": {
              "title": "Statement of Work Attachment Model",
              "description": "A statement of work (SOW) attachment reference.",
              "type": "object",
              "required": [
                "attachmentId"
              ],
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the attachment.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "attachmentName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the attachment."
                }
              }
            }
          }
        }
      },
      "sow-term-section": {
        "title": "Statement of Work Term Section Model",
        "description": "A statement of work (SOW) term section reference.",
        "type": "object",
        "properties": {
          "sectionId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the section.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "sectionTitle": {
            "type": "string",
            "maxLength": 255,
            "description": "The section title."
          },
          "subsections": {
            "type": "array",
            "description": "An array of subsections within the section.  If there are no subsections, this will be an empty array.",
            "items": {
              "title": "Statement of Work Term Subsection Model",
              "description": "A statement of work (SOW) term subsection reference.",
              "type": "object",
              "properties": {
                "subsectionId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the subsection.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "subsectionTitle": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The subsection title."
                },
                "subsectionDescription": {
                  "type": "string",
                  "description": "The subsection description. This will include html formatting if used."
                },
                "comments": {
                  "type": "array",
                  "description": "An array of comments within the subsection.  If there are no comments, this will be an empty array.",
                  "items": {
                    "title": "Statement of Work Term Comment Model",
                    "description": "A statement of work (SOW) term comment reference.",
                    "type": "object",
                    "required": [
                      "submittedByUserId"
                    ],
                    "properties": {
                      "text": {
                        "type": "string",
                        "description": "The comment text."
                      },
                      "submittedByUserId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The unique identifier of the user who submitted the comment.",
                        "example": "123e4567-e89b-12d3-a456-426614174000"
                      },
                      "isPublic": {
                        "type": "boolean",
                        "description": "Indicates whether the comment is public. True if the comment is public. Otherwise, false."
                      },
                      "persona": {
                        "type": "string",
                        "description": "Identifies whether the comment was created by the client or vendor.\n",
                        "enum": [
                          "client",
                          "vendor"
                        ]
                      }
                    }
                  }
                },
                "attachments": {
                  "type": "array",
                  "description": "An array of attachments within the subsection.  If there are no attachments, this will be an empty array.",
                  "items": {
                    "title": "Statement of Work Attachment Model",
                    "description": "A statement of work (SOW) attachment reference.",
                    "type": "object",
                    "required": [
                      "attachmentId"
                    ],
                    "properties": {
                      "attachmentId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The unique identifier of the attachment.",
                        "example": "123e4567-e89b-12d3-a456-426614174000"
                      },
                      "attachmentName": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "The name of the attachment."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "sow-term-document": {
        "title": "Statement of Work Term Document Model",
        "description": "A statement of work (SOW) term document reference.",
        "type": "object",
        "required": [
          "attachmentId",
          "submittedByUserId"
        ],
        "properties": {
          "attachmentId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the attachment.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "attachmentName": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the attachment."
          },
          "version": {
            "type": "integer",
            "description": "The version number of the document."
          },
          "submittedByUserId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the user who submitted the document.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "submittedDate": {
            "type": "string",
            "format": "date-time",
            "description": "- The date in which the document was submitted.\n- Supported date/time format is ISO 8601.\n"
          }
        }
      },
      "get-sow-terms-response": {
        "type": "object",
        "title": "Statement of Work Terms Model",
        "description": "A statement of work (SOW) terms document.",
        "required": [
          "sowId"
        ],
        "properties": {
          "sowId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the statement of work.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "sowNumber": {
            "type": "integer",
            "description": "The unique number of the statement of work.",
            "example": 12345
          },
          "sowDetailId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the current statement of work detail.",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "termSections": {
            "type": "array",
            "description": "An array of top-level term sections.  If there are no sections, this will be an empty array.",
            "items": {
              "title": "Statement of Work Term Section Model",
              "description": "A statement of work (SOW) term section reference.",
              "type": "object",
              "properties": {
                "sectionId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the section.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "sectionTitle": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The section title."
                },
                "subsections": {
                  "type": "array",
                  "description": "An array of subsections within the section.  If there are no subsections, this will be an empty array.",
                  "items": {
                    "title": "Statement of Work Term Subsection Model",
                    "description": "A statement of work (SOW) term subsection reference.",
                    "type": "object",
                    "properties": {
                      "subsectionId": {
                        "type": "string",
                        "format": "uuid",
                        "description": "The unique identifier of the subsection.",
                        "example": "123e4567-e89b-12d3-a456-426614174000"
                      },
                      "subsectionTitle": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "The subsection title."
                      },
                      "subsectionDescription": {
                        "type": "string",
                        "description": "The subsection description. This will include html formatting if used."
                      },
                      "comments": {
                        "type": "array",
                        "description": "An array of comments within the subsection.  If there are no comments, this will be an empty array.",
                        "items": {
                          "title": "Statement of Work Term Comment Model",
                          "description": "A statement of work (SOW) term comment reference.",
                          "type": "object",
                          "required": [
                            "submittedByUserId"
                          ],
                          "properties": {
                            "text": {
                              "type": "string",
                              "description": "The comment text."
                            },
                            "submittedByUserId": {
                              "type": "string",
                              "format": "uuid",
                              "description": "The unique identifier of the user who submitted the comment.",
                              "example": "123e4567-e89b-12d3-a456-426614174000"
                            },
                            "isPublic": {
                              "type": "boolean",
                              "description": "Indicates whether the comment is public. True if the comment is public. Otherwise, false."
                            },
                            "persona": {
                              "type": "string",
                              "description": "Identifies whether the comment was created by the client or vendor.\n",
                              "enum": [
                                "client",
                                "vendor"
                              ]
                            }
                          }
                        }
                      },
                      "attachments": {
                        "type": "array",
                        "description": "An array of attachments within the subsection.  If there are no attachments, this will be an empty array.",
                        "items": {
                          "title": "Statement of Work Attachment Model",
                          "description": "A statement of work (SOW) attachment reference.",
                          "type": "object",
                          "required": [
                            "attachmentId"
                          ],
                          "properties": {
                            "attachmentId": {
                              "type": "string",
                              "format": "uuid",
                              "description": "The unique identifier of the attachment.",
                              "example": "123e4567-e89b-12d3-a456-426614174000"
                            },
                            "attachmentName": {
                              "type": "string",
                              "maxLength": 255,
                              "description": "The name of the attachment."
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "termDocuments": {
            "type": "array",
            "description": "An array of term documents.  If there are no documents, this will be an empty array.",
            "items": {
              "title": "Statement of Work Term Document Model",
              "description": "A statement of work (SOW) term document reference.",
              "type": "object",
              "required": [
                "attachmentId",
                "submittedByUserId"
              ],
              "properties": {
                "attachmentId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the attachment.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "attachmentName": {
                  "type": "string",
                  "maxLength": 255,
                  "description": "The name of the attachment."
                },
                "version": {
                  "type": "integer",
                  "description": "The version number of the document."
                },
                "submittedByUserId": {
                  "type": "string",
                  "format": "uuid",
                  "description": "The unique identifier of the user who submitted the document.",
                  "example": "123e4567-e89b-12d3-a456-426614174000"
                },
                "submittedDate": {
                  "type": "string",
                  "format": "date-time",
                  "description": "- The date in which the document was submitted.\n- Supported date/time format is ISO 8601.\n"
                }
              }
            }
          }
        }
      },
      "approve-reject-sow-request": {
        "type": "object",
        "description": "An Approve/Reject statement of work Request.",
        "required": [
          "approvalStatus",
          "approverUserId"
        ],
        "properties": {
          "approvalStatus": {
            "type": "string",
            "enum": [
              "approved",
              "rejected"
            ],
            "description": "The status of the statement of work approval."
          },
          "approverUserId": {
            "type": "string",
            "format": "uuid",
            "description": "The unique identifier of the approver user.\n",
            "example": "12576b49-e5d8-48ef-9ec8-9e7c6d13ec56"
          },
          "comment": {
            "type": "string",
            "description": "The comment regarding the statement of work approve/reject request.",
            "maxLength": 5000
          }
        }
      }
    },
    "headers": {
      "rate-limit-limit": {
        "description": "The rate limit period (eg. 1m, 12h, 1d)",
        "schema": {
          "type": "string"
        },
        "example": "8h"
      },
      "rate-limit-remaining": {
        "description": "The number of calls remaining in the time window",
        "schema": {
          "type": "integer"
        },
        "example": 10
      },
      "rate-limit-reset": {
        "description": "UTC date time (ISO 8601) when the limit resets",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "retry-after": {
        "description": "The number of seconds remaining when the endpoint can be called again.",
        "schema": {
          "type": "integer"
        },
        "example": 10
      }
    },
    "responses": {
      "400": {
        "description": "Bad Request",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "REQUEST_INVALID_CONTENT_TYPE",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      },
      "404": {
        "description": "Not Found",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "A list of errors.",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "required": [
                          "code",
                          "message"
                        ],
                        "type": "object",
                        "properties": {
                          "code": {
                            "enum": [
                              "UNEXPECTED_ERROR",
                              "VALIDATION_ERROR",
                              "NOT_FOUND",
                              "REQUEST_LIMIT_EXCEEDED",
                              "UNSUPPORTED_API_VERSION",
                              "REQUEST_INVALID_CONTENT_TYPE",
                              "CONFLICT"
                            ],
                            "type": "string",
                            "description": "One of a server-defined set of error codes."
                          },
                          "message": {
                            "type": "string",
                            "description": "The human-readable representation of the error."
                          },
                          "target": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      },
      "429": {
        "description": "Too Many Requests",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds remaining when the endpoint can be called again.",
            "schema": {
              "type": "integer"
            },
            "example": 10
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "REQUEST_INVALID_CONTENT_TYPE",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            },
            "examples": {
              "rate-limit": {
                "value": {
                  "errors": [
                    {
                      "code": "REQUEST_LIMIT_EXCEEDED",
                      "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "500": {
        "description": "Internal Server error",
        "headers": {
          "X-Rate-Limit-Limit": {
            "description": "The rate limit period (eg. 1m, 12h, 1d)",
            "schema": {
              "type": "string"
            },
            "example": "8h"
          },
          "X-Rate-Limit-Remaining": {
            "description": "The number of calls remaining in the time window",
            "schema": {
              "type": "integer"
            },
            "example": 10
          },
          "X-Rate-Limit-Reset": {
            "description": "UTC date time (ISO 8601) when the limit resets",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "description": "A list of errors.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "required": [
                      "code",
                      "message"
                    ],
                    "type": "object",
                    "properties": {
                      "code": {
                        "enum": [
                          "UNEXPECTED_ERROR",
                          "VALIDATION_ERROR",
                          "NOT_FOUND",
                          "REQUEST_LIMIT_EXCEEDED",
                          "UNSUPPORTED_API_VERSION",
                          "REQUEST_INVALID_CONTENT_TYPE",
                          "CONFLICT"
                        ],
                        "type": "string",
                        "description": "One of a server-defined set of error codes."
                      },
                      "message": {
                        "type": "string",
                        "description": "The human-readable representation of the error."
                      },
                      "target": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "examples": {
      "rate-limit-error-response": {
        "value": {
          "errors": [
            {
              "code": "REQUEST_LIMIT_EXCEEDED",
              "message": "API calls quota exceeded! Maximum admitted 1000 per 1m."
            }
          ]
        }
      },
      "value-list": {
        "value": {
          "maxItems": 9,
          "value": [
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "string",
              "fieldName": "Example String CDV Field",
              "isRequired": true,
              "value": "some string value"
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "text",
              "fieldName": "Example Text CDV Field",
              "isRequired": true,
              "value": "some larger text value"
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "int",
              "fieldName": "Example Int CDV Field",
              "isRequired": true,
              "value": 87366
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "date",
              "fieldName": "Example Date CDV Field",
              "isRequired": true,
              "value": "2023-01-18T17:59:51.753Z"
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "money",
              "fieldName": "Example Money CDV Field",
              "isRequired": true,
              "value": 100
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "checkbox",
              "fieldName": "Example CheckBox CDV Field",
              "isRequired": true,
              "value": true
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "singleSelector",
              "fieldName": "Example SingleSelector CDV Field",
              "isRequired": true,
              "value": {
                "itemValueId": "11111111-2222-3333-4444-555555555555",
                "itemValue": "Example SingleSelector Value"
              }
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "dropDown",
              "fieldName": "Example DropDown CDV Field",
              "isRequired": true,
              "value": {
                "itemValueId": "11111111-2222-3333-4444-555555555555",
                "itemValue": "Example Dropdown Value"
              }
            },
            {
              "fieldId": "11111111-2222-3333-4444-555555555555",
              "fieldType": "shuffleBox",
              "fieldName": "Example ShuffleBox CDV Field",
              "isRequired": true,
              "value": {
                "items": [
                  {
                    "itemValueId": "11111111-2222-3333-4444-555555555555",
                    "itemValue": "Example ShuffleBox Value"
                  },
                  {
                    "itemValueId": "11111111-2222-3333-4444-555555555555",
                    "itemValue": "Example ShuffleBox Value"
                  }
                ]
              }
            }
          ]
        }
      },
      "value-string-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "string",
          "fieldName": "Example String CDV Field",
          "isRequired": true,
          "value": "some string value"
        }
      },
      "value-text-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "text",
          "fieldName": "Example Text CDV Field",
          "isRequired": true,
          "value": "some larger text value"
        }
      },
      "value-int-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "int",
          "fieldName": "Example Int CDV Field",
          "isRequired": true,
          "value": 87366
        }
      },
      "value-money-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "money",
          "fieldName": "Example Money CDV Field",
          "isRequired": true,
          "value": 100
        }
      },
      "value-date-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "date",
          "fieldName": "Example Date CDV Field",
          "isRequired": true,
          "value": "2023-01-18T17:59:51.753Z"
        }
      },
      "value-checkbox-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "checkBox",
          "fieldName": "Example CheckBox CDV Field",
          "isRequired": true,
          "value": true
        }
      },
      "value-single-selector-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "singleSelector",
          "fieldName": "Example SingleSelector CDV Field",
          "isRequired": true,
          "value": {
            "itemValueId": "11111111-2222-3333-4444-555555555555",
            "itemValue": "Example SingleSelector Value"
          }
        }
      },
      "value-dropdown-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "dropDown",
          "fieldName": "Example DropDown CDV Field",
          "isRequired": true,
          "value": {
            "itemValueId": "11111111-2222-3333-4444-555555555555",
            "itemValue": "Example Dropdown Value"
          }
        }
      },
      "value-shufflebox-field": {
        "value": {
          "fieldId": "11111111-2222-3333-4444-555555555555",
          "fieldType": "shuffleBox",
          "fieldName": "Example ShuffleBox CDV Field",
          "isRequired": true,
          "value": {
            "items": [
              {
                "itemValueId": "11111111-2222-3333-4444-555555555555",
                "itemValue": "Example ShuffleBox Value"
              },
              {
                "itemValueId": "11111111-2222-3333-4444-555555555555",
                "itemValue": "Example ShuffleBox Value"
              }
            ]
          }
        }
      }
    }
  }
}