> For the complete documentation index, see [llms.txt](https://tsanet.gitbook.io/connect/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tsanet.gitbook.io/connect/api-reference/models.md).

# Models

## The CollaborationRequestType object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestType":{"type":"string","enum":["ALL","INBOUND","OUTBOUND"],"default":"ALL"}}}}
```

## The CollaborationRequestStatus object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestStatus":{"type":"string","enum":["ALL","OPEN","INFORMATION","REJECTED","ACCEPTED","CLOSED","PENDINGACTION"],"default":"ALL"}}}}
```

## The LoginRequestDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"LoginRequestDTO":{"type":"object","required":["username","password"],"properties":{"username":{"type":"string","maxLength":191,"description":"Username for authentication"},"password":{"type":"string","format":"password","maxLength":191,"description":"Password for authentication"}}}}}}
```

## The TokenDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"TokenDTO":{"type":"object","required":["accessToken","tokenType"],"properties":{"accessToken":{"type":"string","description":"JWT access token"},"tokenType":{"type":"string"},"expiresIn":{"type":"integer","format":"int32"}}}}}}
```

## The UserContextDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"UserContextDTO":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/CompanyDTO"},"user":{"$ref":"#/components/schemas/UserDTO"}}},"CompanyDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","maxLength":191},"description":{"type":"string","maxLength":5000},"domain":{"type":"string","maxLength":191}}},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}}}}}
```

## The CollaborationRequestDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestDTO":{"type":"object","required":["customFields","internalCaseNumber","problemSummary","problemDescription","documentId","priority","internalNotes","testSubmission"],"properties":{"documentId":{"type":"integer","format":"int64"},"internalCaseNumber":{"type":"string","maxLength":191},"receiverInternalCaseNumber":{"type":"string","maxLength":191},"problemSummary":{"type":"string","maxLength":500},"problemDescription":{"type":"string","maxLength":10000},"priority":{"$ref":"#/components/schemas/CasePriority"},"adminNote":{"type":"string","maxLength":2000},"escalationInstructions":{"type":"string","maxLength":2000},"submitterContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO","description":"Contact details of the engineer submitting the collaboration request"},"customFields":{"type":"array","items":{"$ref":"#/components/schemas/FieldMetadataDTO"}},"internalNotes":{"type":"array","items":{"$ref":"#/components/schemas/InternalNoteDTO"}},"testSubmission":{"type":"boolean"}}},"CasePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}},"FieldMetadataDTO":{"type":"object","required":["fieldId","section","label","type","displayOrder","required"],"properties":{"fieldId":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"label":{"type":"string","maxLength":191},"options":{"type":"string","maxLength":5000},"additionalSettings":{"type":"string","maxLength":5000},"type":{"$ref":"#/components/schemas/FieldMetadataType"},"displayOrder":{"type":"integer","format":"int32"},"validationRules":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"selections":{"type":"array","items":{"$ref":"#/components/schemas/SelectionDTO"}},"required":{"type":"boolean"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]},"SelectionDTO":{"type":"object","properties":{"value":{"type":"string","maxLength":191},"children":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/SelectionDTO"}}}},"InternalNoteDTO":{"type":"object","properties":{"note":{"type":"string","maxLength":5000}}}}}}
```

## The CollaborationRequestStatusDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"submitCompanyName":{"type":"string","maxLength":191},"submitCompanyId":{"type":"integer","format":"int64"},"submitterCaseNumber":{"type":"string","maxLength":191},"receiveCompanyName":{"type":"string","maxLength":191},"receiveCompanyId":{"type":"integer","format":"int64"},"receiverCaseNumber":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":10000},"direction":{"$ref":"#/components/schemas/CollaborationRequestDirection"},"priority":{"$ref":"#/components/schemas/CasePriority"},"status":{"$ref":"#/components/schemas/CaseStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time","nullable":true},"responded":{"type":"boolean"},"respondBy":{"type":"string","format":"date-time"},"feedbackRequested":{"type":"boolean"},"reminderSent":{"type":"boolean"},"priorityNote":{"type":"string","maxLength":2000},"escalationInstructions":{"type":"string","maxLength":2000},"contactDocumentId":{"type":"integer","format":"int64","description":"ID of the contact document used to create this case"},"contactDocumentName":{"type":"string","maxLength":191,"description":"Name of the contact document used to create this case"},"testCase":{"type":"boolean"},"customFields":{"type":"array","items":{"$ref":"#/components/schemas/CaseCustomFieldStatusDTO"}},"submittedBy":{"$ref":"#/components/schemas/UserDTO"},"submitterContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"receiverContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"caseNotes":{"type":"array","items":{"$ref":"#/components/schemas/CaseNoteDTO"}},"caseResponses":{"type":"array","items":{"$ref":"#/components/schemas/CaseResponseDTO"}}}},"CollaborationRequestDirection":{"type":"string","enum":["OUTBOUND","INBOUND"]},"CasePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"CaseStatus":{"type":"string","enum":["OPEN","INFORMATION","REJECTED","ACCEPTED","CLOSED"]},"CaseCustomFieldStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"fieldName":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"displayOrder":{"type":"integer","format":"int32"},"type":{"$ref":"#/components/schemas/FieldMetadataType"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}},"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}},"CaseNoteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"caseId":{"type":"integer","format":"int64"},"companyName":{"type":"string","maxLength":191},"creatorUsername":{"type":"string","maxLength":191},"creatorEmail":{"type":"string","maxLength":191},"creatorName":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":5000},"priority":{"$ref":"#/components/schemas/NotePriority"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteStatus":{"type":"string","enum":["ENTERED","READ","RESPONDED","REMOVED"]},"CaseResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/CaseResponseType"},"caseNumber":{"type":"string","maxLength":191},"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"nextSteps":{"type":"string","maxLength":5000},"createdAt":{"type":"string","format":"date-time"}}},"CaseResponseType":{"type":"string","enum":["APPROVAL","INFORMATION_REQUEST","INFORMATION_RESPONSE","REJECTION"]}}}}
```

## The ContactDetailsDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}}}}}
```

## The CollaborationRequestSubmitterUpdateDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestSubmitterUpdateDTO":{"type":"object","properties":{"internalCaseNumber":{"type":"string","nullable":true,"maxLength":191,"description":"Internal case number for the submitter's tracking system"},"submitterContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO","description":"Updated contact details for the submitter engineer"}}},"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}}}}}
```

## The CaseApprovalUpdateDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseApprovalUpdateDTO":{"type":"object","properties":{"caseNumber":{"type":"string","maxLength":191,"nullable":true},"engineerName":{"type":"string","maxLength":191,"nullable":true},"engineerPhone":{"type":"string","maxLength":50,"nullable":true},"engineerEmail":{"type":"string","format":"email","maxLength":191,"nullable":true},"nextSteps":{"type":"string","maxLength":5000,"nullable":true}}}}}}
```

## The CaseApprovalDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseApprovalDTO":{"type":"object","required":["caseNumber","engineerName","engineerEmail","nextSteps"],"properties":{"caseNumber":{"type":"string","maxLength":191},"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"nextSteps":{"type":"string","maxLength":5000}}}}}}
```

## The CaseInformationRequestDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseInformationRequestDTO":{"type":"object","required":["engineerName","engineerEmail","requestedInformation"],"properties":{"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"requestedInformation":{"type":"string","maxLength":5000}}}}}}
```

## The CaseInformationResponseDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseInformationResponseDTO":{"type":"object","required":["requestedInformation"],"properties":{"requestedInformation":{"type":"string","maxLength":5000}}}}}}
```

## The CaseRejectionDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseRejectionDTO":{"type":"object","required":["engineerName","engineerEmail","reason"],"properties":{"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"reason":{"type":"string","maxLength":2000}}}}}}
```

## The CaseNoteDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseNoteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"caseId":{"type":"integer","format":"int64"},"companyName":{"type":"string","maxLength":191},"creatorUsername":{"type":"string","maxLength":191},"creatorEmail":{"type":"string","maxLength":191},"creatorName":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":5000},"priority":{"$ref":"#/components/schemas/NotePriority"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteStatus":{"type":"string","enum":["ENTERED","READ","RESPONDED","REMOVED"]}}}}
```

## The CaseNoteTemplateDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseNoteTemplateDTO":{"required":["description","priority","summary"],"type":"object","properties":{"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":5000},"priority":{"$ref":"#/components/schemas/NotePriority"},"submittedBy":{"$ref":"#/components/schemas/UserDTO"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}}}}}
```

## The AttachmentConfigDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"AttachmentConfigDTO":{"type":"object","properties":{"submitter":{"$ref":"#/components/schemas/CompanyAttachmentConfigDTO"},"receiver":{"$ref":"#/components/schemas/CompanyAttachmentConfigDTO"}}},"CompanyAttachmentConfigDTO":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"parameters":{"type":"object","additionalProperties":{"type":"object"}}}}}}}
```

## The CompanyAttachmentConfigDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CompanyAttachmentConfigDTO":{"type":"object","properties":{"companyId":{"type":"integer","format":"int64"},"parameters":{"type":"object","additionalProperties":{"type":"object"}}}}}}}
```

## The NormalizedHttpsAttachmentConfigDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"NormalizedHttpsAttachmentConfigDTO":{"required":["domain","expiration","httpsPath","httpsPort","password"],"type":"object","properties":{"domain":{"pattern":"^([a-zA-Z0-9]([a-zA-Z0-9\\-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,}$","type":"string"},"password":{"type":"string"},"expiration":{"type":"string","format":"date-time"},"httpsPath":{"pattern":"^(/[^/ ]*)+/?$","type":"string"},"httpsPort":{"maximum":65535,"minimum":1,"type":"integer","format":"int32"}}}}}}
```

## The AttachmentForwardResultDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"AttachmentForwardResultDTO":{"type":"object","properties":{"fileName":{"type":"string","maxLength":255},"receiverStatus":{"$ref":"#/components/schemas/AttachmentForwardResultStatus"},"receiverMessage":{"type":"string","maxLength":1000},"submitterStatus":{"$ref":"#/components/schemas/AttachmentForwardResultStatus"},"submitterMessage":{"type":"string","maxLength":1000},"completeSuccess":{"type":"boolean"},"partialSuccess":{"type":"boolean"}}},"AttachmentForwardResultStatus":{"type":"string","enum":["SUCCESS","CONFIG_MISSING","CONFIG_INVALID","FORWARD_FAILED","CONTENT_ERROR","UNKNOWN"]}}}}
```

## The PartnerSelectionDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"PartnerSelectionDTO":{"type":"object","properties":{"label":{"type":"string","maxLength":191},"companyName":{"type":"string","maxLength":191},"departmentName":{"type":"string","maxLength":191},"companyId":{"type":"integer","format":"int64"},"departmentId":{"type":"integer","format":"int64"},"documentId":{"type":"integer","format":"int64"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/TagDTO"}}}},"TagDTO":{"type":"object","properties":{"tag":{"type":"string","maxLength":191}}}}}}
```

## The PartnerSearchResultDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"PartnerSearchResultDTO":{"type":"object","description":"Result from semantic partner search with relevance scoring","properties":{"companyId":{"type":"integer","format":"int64","description":"Company identifier"},"departmentId":{"type":"integer","format":"int64","description":"Department identifier (null for company-level results)"},"companyName":{"type":"string","maxLength":191,"description":"Company name"},"departmentName":{"type":"string","maxLength":191,"description":"Department name (null for company-level results)"},"score":{"type":"number","format":"double","description":"Relevance score (0.0 to 1.0, higher is better)"},"snippet":{"type":"string","maxLength":1000,"description":"Preview of the matched content"},"displayName":{"type":"string","maxLength":191,"description":"Formatted display name (company - department or just company)"}},"required":["companyId","companyName","score"]}}}}
```

## The HealthDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"HealthDTO":{"type":"object","properties":{"status":{"type":"string"}}}}}}
```

## The TagDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"TagDTO":{"type":"object","properties":{"tag":{"type":"string","maxLength":191}}}}}}
```

## The FieldMetadataDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"FieldMetadataDTO":{"type":"object","required":["fieldId","section","label","type","displayOrder","required"],"properties":{"fieldId":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"label":{"type":"string","maxLength":191},"options":{"type":"string","maxLength":5000},"additionalSettings":{"type":"string","maxLength":5000},"type":{"$ref":"#/components/schemas/FieldMetadataType"},"displayOrder":{"type":"integer","format":"int32"},"validationRules":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"selections":{"type":"array","items":{"$ref":"#/components/schemas/SelectionDTO"}},"required":{"type":"boolean"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]},"SelectionDTO":{"type":"object","properties":{"value":{"type":"string","maxLength":191},"children":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/SelectionDTO"}}}}}}}
```

## The SelectionDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"SelectionDTO":{"type":"object","properties":{"value":{"type":"string","maxLength":191},"children":{"uniqueItems":true,"type":"array","items":{"$ref":"#/components/schemas/SelectionDTO"}}}}}}}
```

## The InternalNoteDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"InternalNoteDTO":{"type":"object","properties":{"note":{"type":"string","maxLength":5000}}}}}}
```

## The CaseCustomFieldStatusDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseCustomFieldStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"fieldName":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"displayOrder":{"type":"integer","format":"int32"},"type":{"$ref":"#/components/schemas/FieldMetadataType"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]}}}}
```

## The UserDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}}}}}
```

## The CompanyDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CompanyDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string","maxLength":191},"description":{"type":"string","maxLength":5000},"domain":{"type":"string","maxLength":191}}}}}}
```

## The WebhookCallbackAuthType object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookCallbackAuthDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookCallbackAuthDTO":{"type":"object","required":["type"],"properties":{"type":{"$ref":"#/components/schemas/WebhookCallbackAuthType"},"username":{"type":"string","maxLength":255,"description":"Required for BASIC. Sent as the username in the Basic Authorization header."},"password":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BASIC. Write-only and never returned by the API."},"token":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BEARER. This static token is sent on every delivery."},"headerName":{"type":"string","maxLength":255,"description":"Required for HEADER. The name of the custom header to send."},"headerValue":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for HEADER. Write-only value of the custom header to send."},"oauth2TokenUrl":{"type":"string","format":"uri","maxLength":500,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. HTTPS OAuth2 token endpoint supporting the\nclient_credentials grant.\n"},"oauth2ClientId":{"type":"string","maxLength":255,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. OAuth2 client identifier."},"oauth2ClientSecret":{"type":"string","maxLength":1024,"writeOnly":true,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. Write-only OAuth2 client secret."},"oauth2ClientAuthenticationMethod":{"type":"string","enum":["CLIENT_SECRET_BASIC","CLIENT_SECRET_POST"],"default":"CLIENT_SECRET_BASIC","description":"OAuth2 client authentication method used at the token endpoint. `CLIENT_SECRET_BASIC`\nsends credentials using HTTP Basic authentication; `CLIENT_SECRET_POST` sends them in\nthe form body. Defaults to `CLIENT_SECRET_BASIC`.\n"},"oauth2Scope":{"type":"string","maxLength":500,"description":"Optional for OAUTH2_CLIENT_CREDENTIALS. Space-delimited OAuth2 scopes. When provided,\nthe value is normalized before storage and sent to the token endpoint as the `scope`\nparameter. If omitted, no scope parameter is sent.\n"}}},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookEventType object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookEventType":{"type":"string","enum":["collaboration-request.created","note.created"],"description":"V1 webhook event type short names. Only `collaboration-request.created` and `note.created`\nare delivered via V1 subscriptions. For the full set of 5 event types, use\n`POST /v2/webhooks` with `WebhookEventTypeV2` strings.\n"}}}}
```

## The WebhookEventTypeV2 object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookEventTypeV2":{"type":"string","enum":["org.tsanet.connect.collaboration-request.created","org.tsanet.connect.collaboration-request.closed","org.tsanet.connect.collaboration-request.note.created","org.tsanet.connect.collaboration-request.response.created","org.tsanet.connect.collaboration-request.response.updated"],"description":"V2 CloudEvent type strings for webhook subscriptions. These match the `type` field\nin delivered CloudEvent payloads exactly.\n"}}}}
```

## The WebhookCaseDirection object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"}}}}
```

## The CreateWebhookSubscriptionRequestDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CreateWebhookSubscriptionRequestDTO":{"type":"object","required":["callbackUrl"],"properties":{"callbackUrl":{"type":"string","format":"uri","description":"The URL to receive webhook events. Must be accessible via HTTPS in production."},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"},"description":"Optional list of V1 event types to subscribe to. If empty or null, both\n`collaboration-request.created` and `note.created` are delivered.\n"},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"},"minItems":1,"description":"Optional case directions relative to the subscribed company. If omitted or null,\nboth inbound and outbound cases are delivered.\n"},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"},"description":"Optional IDs of partner companies to include. If omitted or empty, cases involving\nany partner company are delivered.\n"},"callbackAuth":{"$ref":"#/components/schemas/WebhookCallbackAuthDTO","description":"Optional credential TSANet will attach to every delivery POST, in addition to the\nexisting HMAC-SHA256 signature. If omitted, deliveries are unauthenticated (current\nbehaviour). For OAUTH2_CLIENT_CREDENTIALS, TSANet obtains an OAuth2 access token\nusing the supplied token endpoint and client credentials, optionally requesting the\nconfigured scope, then sends it as\n`Authorization: Bearer <token>`. Requires callbackUrl to be HTTPS when type is not NONE.\n"}}},"WebhookEventType":{"type":"string","enum":["collaboration-request.created","note.created"],"description":"V1 webhook event type short names. Only `collaboration-request.created` and `note.created`\nare delivered via V1 subscriptions. For the full set of 5 event types, use\n`POST /v2/webhooks` with `WebhookEventTypeV2` strings.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookCallbackAuthDTO":{"type":"object","required":["type"],"properties":{"type":{"$ref":"#/components/schemas/WebhookCallbackAuthType"},"username":{"type":"string","maxLength":255,"description":"Required for BASIC. Sent as the username in the Basic Authorization header."},"password":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BASIC. Write-only and never returned by the API."},"token":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BEARER. This static token is sent on every delivery."},"headerName":{"type":"string","maxLength":255,"description":"Required for HEADER. The name of the custom header to send."},"headerValue":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for HEADER. Write-only value of the custom header to send."},"oauth2TokenUrl":{"type":"string","format":"uri","maxLength":500,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. HTTPS OAuth2 token endpoint supporting the\nclient_credentials grant.\n"},"oauth2ClientId":{"type":"string","maxLength":255,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. OAuth2 client identifier."},"oauth2ClientSecret":{"type":"string","maxLength":1024,"writeOnly":true,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. Write-only OAuth2 client secret."},"oauth2ClientAuthenticationMethod":{"type":"string","enum":["CLIENT_SECRET_BASIC","CLIENT_SECRET_POST"],"default":"CLIENT_SECRET_BASIC","description":"OAuth2 client authentication method used at the token endpoint. `CLIENT_SECRET_BASIC`\nsends credentials using HTTP Basic authentication; `CLIENT_SECRET_POST` sends them in\nthe form body. Defaults to `CLIENT_SECRET_BASIC`.\n"},"oauth2Scope":{"type":"string","maxLength":500,"description":"Optional for OAUTH2_CLIENT_CREDENTIALS. Space-delimited OAuth2 scopes. When provided,\nthe value is normalized before storage and sent to the token endpoint as the `scope`\nparameter. If omitted, no scope parameter is sent.\n"}}},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The CreateWebhookSubscriptionV2RequestDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CreateWebhookSubscriptionV2RequestDTO":{"type":"object","required":["callbackUrl"],"properties":{"callbackUrl":{"type":"string","format":"uri","description":"The URL to receive webhook events. Must be accessible via HTTPS in production."},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventTypeV2"},"description":"Optional list of CloudEvent type strings to subscribe to. If empty or null, all\n5 event types are delivered. Values must match `WebhookEventTypeV2` exactly.\n"},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"},"minItems":1,"description":"Optional case directions relative to the subscribed company. If omitted or null,\nboth inbound and outbound cases are delivered.\n"},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"},"description":"Optional IDs of partner companies to include. If omitted or empty, cases involving\nany partner company are delivered.\n"},"callbackAuth":{"$ref":"#/components/schemas/WebhookCallbackAuthDTO","description":"Optional credential TSANet will attach to every delivery POST, in addition to the\nexisting HMAC-SHA256 signature. If omitted, deliveries are unauthenticated. For\nOAUTH2_CLIENT_CREDENTIALS, TSANet obtains an OAuth2 access token using the supplied\ntoken endpoint and client credentials, optionally requesting the configured scope,\nthen sends it as\n`Authorization: Bearer <token>`.\n"}}},"WebhookEventTypeV2":{"type":"string","enum":["org.tsanet.connect.collaboration-request.created","org.tsanet.connect.collaboration-request.closed","org.tsanet.connect.collaboration-request.note.created","org.tsanet.connect.collaboration-request.response.created","org.tsanet.connect.collaboration-request.response.updated"],"description":"V2 CloudEvent type strings for webhook subscriptions. These match the `type` field\nin delivered CloudEvent payloads exactly.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookCallbackAuthDTO":{"type":"object","required":["type"],"properties":{"type":{"$ref":"#/components/schemas/WebhookCallbackAuthType"},"username":{"type":"string","maxLength":255,"description":"Required for BASIC. Sent as the username in the Basic Authorization header."},"password":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BASIC. Write-only and never returned by the API."},"token":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for BEARER. This static token is sent on every delivery."},"headerName":{"type":"string","maxLength":255,"description":"Required for HEADER. The name of the custom header to send."},"headerValue":{"type":"string","maxLength":255,"writeOnly":true,"description":"Required for HEADER. Write-only value of the custom header to send."},"oauth2TokenUrl":{"type":"string","format":"uri","maxLength":500,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. HTTPS OAuth2 token endpoint supporting the\nclient_credentials grant.\n"},"oauth2ClientId":{"type":"string","maxLength":255,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. OAuth2 client identifier."},"oauth2ClientSecret":{"type":"string","maxLength":1024,"writeOnly":true,"description":"Required for OAUTH2_CLIENT_CREDENTIALS. Write-only OAuth2 client secret."},"oauth2ClientAuthenticationMethod":{"type":"string","enum":["CLIENT_SECRET_BASIC","CLIENT_SECRET_POST"],"default":"CLIENT_SECRET_BASIC","description":"OAuth2 client authentication method used at the token endpoint. `CLIENT_SECRET_BASIC`\nsends credentials using HTTP Basic authentication; `CLIENT_SECRET_POST` sends them in\nthe form body. Defaults to `CLIENT_SECRET_BASIC`.\n"},"oauth2Scope":{"type":"string","maxLength":500,"description":"Optional for OAUTH2_CLIENT_CREDENTIALS. Space-delimited OAuth2 scopes. When provided,\nthe value is normalized before storage and sent to the token endpoint as the `scope`\nparameter. If omitted, no scope parameter is sent.\n"}}},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookSubscriptionResponseDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookSubscriptionResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"callbackUrl":{"type":"string","maxLength":500},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"}},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"}},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"payloadVersion":{"$ref":"#/components/schemas/WebhookPayloadVersion"},"active":{"type":"boolean"},"secret":{"type":"string","maxLength":64,"description":"HMAC secret for signing webhooks (only returned on creation; it cannot be rotated, so to change it, delete the subscription and create a new one)"},"callbackAuthType":{"$ref":"#/components/schemas/WebhookCallbackAuthType","description":"The authentication type configured for this subscription. Credential values are never returned."},"createdAt":{"type":"string","format":"date-time"}}},"WebhookEventType":{"type":"string","enum":["collaboration-request.created","note.created"],"description":"V1 webhook event type short names. Only `collaboration-request.created` and `note.created`\nare delivered via V1 subscriptions. For the full set of 5 event types, use\n`POST /v2/webhooks` with `WebhookEventTypeV2` strings.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookPayloadVersion":{"type":"string","enum":["V1","V2"],"default":"V1","description":"Payload format version for webhook deliveries. See the Connect Webhook Events\nAsyncAPI specification for full payload and header details per version.\n- **V1** (default): Legacy flat JSON. Only `collaboration-request.created` and `note.created` are delivered.\n- **V2**: CloudEvents 1.0 structured binding. All 5 event types are delivered.\n"},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookSecretRotationResponseDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookSecretRotationResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"Webhook subscription ID"},"secret":{"type":"string","maxLength":64,"description":"New HMAC-SHA256 signing secret. This value is only returned once.\nStore it immediately — it cannot be retrieved again.\n"},"rotatedAt":{"type":"string","format":"date-time","description":"Timestamp when the secret was rotated"}}}}}}
```

## The WebhookSubscriptionDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookSubscriptionDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"callbackUrl":{"type":"string","maxLength":500},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventType"}},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"}},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"payloadVersion":{"$ref":"#/components/schemas/WebhookPayloadVersion"},"active":{"type":"boolean"},"callbackAuthType":{"$ref":"#/components/schemas/WebhookCallbackAuthType","description":"The authentication type configured for this subscription. Credential values are never returned."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"WebhookEventType":{"type":"string","enum":["collaboration-request.created","note.created"],"description":"V1 webhook event type short names. Only `collaboration-request.created` and `note.created`\nare delivered via V1 subscriptions. For the full set of 5 event types, use\n`POST /v2/webhooks` with `WebhookEventTypeV2` strings.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookPayloadVersion":{"type":"string","enum":["V1","V2"],"default":"V1","description":"Payload format version for webhook deliveries. See the Connect Webhook Events\nAsyncAPI specification for full payload and header details per version.\n- **V1** (default): Legacy flat JSON. Only `collaboration-request.created` and `note.created` are delivered.\n- **V2**: CloudEvents 1.0 structured binding. All 5 event types are delivered.\n"},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookSubscriptionV2ResponseDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookSubscriptionV2ResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"callbackUrl":{"type":"string","maxLength":500},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventTypeV2"}},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"}},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"active":{"type":"boolean"},"secret":{"type":"string","maxLength":64,"description":"HMAC secret for signing webhooks (only returned on creation; it cannot be rotated, so to change it, delete the subscription and create a new one)"},"callbackAuthType":{"$ref":"#/components/schemas/WebhookCallbackAuthType","description":"The authentication type configured for this subscription. Credential values are never returned."},"createdAt":{"type":"string","format":"date-time"}}},"WebhookEventTypeV2":{"type":"string","enum":["org.tsanet.connect.collaboration-request.created","org.tsanet.connect.collaboration-request.closed","org.tsanet.connect.collaboration-request.note.created","org.tsanet.connect.collaboration-request.response.created","org.tsanet.connect.collaboration-request.response.updated"],"description":"V2 CloudEvent type strings for webhook subscriptions. These match the `type` field\nin delivered CloudEvent payloads exactly.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookSubscriptionV2DTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookSubscriptionV2DTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"callbackUrl":{"type":"string","maxLength":500},"eventTypes":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventTypeV2"}},"caseDirections":{"type":"array","items":{"$ref":"#/components/schemas/WebhookCaseDirection"}},"partnerCompanyIds":{"type":"array","items":{"type":"integer","format":"int64"}},"active":{"type":"boolean"},"callbackAuthType":{"$ref":"#/components/schemas/WebhookCallbackAuthType","description":"The authentication type configured for this subscription. Credential values are never returned."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"WebhookEventTypeV2":{"type":"string","enum":["org.tsanet.connect.collaboration-request.created","org.tsanet.connect.collaboration-request.closed","org.tsanet.connect.collaboration-request.note.created","org.tsanet.connect.collaboration-request.response.created","org.tsanet.connect.collaboration-request.response.updated"],"description":"V2 CloudEvent type strings for webhook subscriptions. These match the `type` field\nin delivered CloudEvent payloads exactly.\n"},"WebhookCaseDirection":{"type":"string","enum":["INBOUND","OUTBOUND"],"description":"Direction relative to the company that owns the webhook subscription.\nINBOUND means the subscribed company receives the case; OUTBOUND means it submits the case.\n"},"WebhookCallbackAuthType":{"type":"string","enum":["NONE","BASIC","BEARER","HEADER","OAUTH2_CLIENT_CREDENTIALS"],"description":"Authentication type TSANet uses when delivering webhook events. Credentials are sent in\naddition to the X-Hub-Signature-256 HMAC header.\n\n- **NONE**: No callback authentication header.\n- **BASIC**: `Authorization: Basic <base64(username:password)>`.\n- **BEARER**: `Authorization: Bearer <token>` using a static token.\n- **HEADER**: Sends the configured name and value as a custom header.\n- **OAUTH2_CLIENT_CREDENTIALS**: Obtains a short-lived access token from the configured\n  OAuth2 token endpoint before delivery, then sends `Authorization: Bearer <token>`.\n"}}}}
```

## The WebhookDeliveryLogDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookDeliveryLogDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"cloudEventId":{"type":"string","maxLength":100},"eventType":{"type":"string","maxLength":100},"httpStatus":{"type":"integer","format":"int32"},"attemptNumber":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"requestBody":{"type":"string"},"responseBody":{"type":"string","maxLength":1000},"createdAt":{"type":"string","format":"date-time"}}}}}}
```

## The WebhookDeliveryLogPageDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookDeliveryLogPageDTO":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDeliveryLogDTO"}},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"number":{"type":"integer","format":"int32"}}},"WebhookDeliveryLogDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"cloudEventId":{"type":"string","maxLength":100},"eventType":{"type":"string","maxLength":100},"httpStatus":{"type":"integer","format":"int32"},"attemptNumber":{"type":"integer","format":"int32"},"success":{"type":"boolean"},"requestBody":{"type":"string"},"responseBody":{"type":"string","maxLength":1000},"createdAt":{"type":"string","format":"date-time"}}}}}}
```

## The WebhookPayloadVersion object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"WebhookPayloadVersion":{"type":"string","enum":["V1","V2"],"default":"V1","description":"Payload format version for webhook deliveries. See the Connect Webhook Events\nAsyncAPI specification for full payload and header details per version.\n- **V1** (default): Legacy flat JSON. Only `collaboration-request.created` and `note.created` are delivered.\n- **V2**: CloudEvents 1.0 structured binding. All 5 event types are delivered.\n"}}}}
```

## The CaseResponseDTO object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/CaseResponseType"},"caseNumber":{"type":"string","maxLength":191},"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"nextSteps":{"type":"string","maxLength":5000},"createdAt":{"type":"string","format":"date-time"}}},"CaseResponseType":{"type":"string","enum":["APPROVAL","INFORMATION_REQUEST","INFORMATION_RESPONSE","REJECTION"]}}}}
```

## The CollaborationRequestListResponse object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestListResponse":{"type":"array","items":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}},"CollaborationRequestStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"submitCompanyName":{"type":"string","maxLength":191},"submitCompanyId":{"type":"integer","format":"int64"},"submitterCaseNumber":{"type":"string","maxLength":191},"receiveCompanyName":{"type":"string","maxLength":191},"receiveCompanyId":{"type":"integer","format":"int64"},"receiverCaseNumber":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":10000},"direction":{"$ref":"#/components/schemas/CollaborationRequestDirection"},"priority":{"$ref":"#/components/schemas/CasePriority"},"status":{"$ref":"#/components/schemas/CaseStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time","nullable":true},"responded":{"type":"boolean"},"respondBy":{"type":"string","format":"date-time"},"feedbackRequested":{"type":"boolean"},"reminderSent":{"type":"boolean"},"priorityNote":{"type":"string","maxLength":2000},"escalationInstructions":{"type":"string","maxLength":2000},"contactDocumentId":{"type":"integer","format":"int64","description":"ID of the contact document used to create this case"},"contactDocumentName":{"type":"string","maxLength":191,"description":"Name of the contact document used to create this case"},"testCase":{"type":"boolean"},"customFields":{"type":"array","items":{"$ref":"#/components/schemas/CaseCustomFieldStatusDTO"}},"submittedBy":{"$ref":"#/components/schemas/UserDTO"},"submitterContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"receiverContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"caseNotes":{"type":"array","items":{"$ref":"#/components/schemas/CaseNoteDTO"}},"caseResponses":{"type":"array","items":{"$ref":"#/components/schemas/CaseResponseDTO"}}}},"CollaborationRequestDirection":{"type":"string","enum":["OUTBOUND","INBOUND"]},"CasePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"CaseStatus":{"type":"string","enum":["OPEN","INFORMATION","REJECTED","ACCEPTED","CLOSED"]},"CaseCustomFieldStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"fieldName":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"displayOrder":{"type":"integer","format":"int32"},"type":{"$ref":"#/components/schemas/FieldMetadataType"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}},"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}},"CaseNoteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"caseId":{"type":"integer","format":"int64"},"companyName":{"type":"string","maxLength":191},"creatorUsername":{"type":"string","maxLength":191},"creatorEmail":{"type":"string","maxLength":191},"creatorName":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":5000},"priority":{"$ref":"#/components/schemas/NotePriority"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteStatus":{"type":"string","enum":["ENTERED","READ","RESPONDED","REMOVED"]},"CaseResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/CaseResponseType"},"caseNumber":{"type":"string","maxLength":191},"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"nextSteps":{"type":"string","maxLength":5000},"createdAt":{"type":"string","format":"date-time"}}},"CaseResponseType":{"type":"string","enum":["APPROVAL","INFORMATION_REQUEST","INFORMATION_RESPONSE","REJECTION"]}}}}
```

## The PagedResponse object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"PagedResponse":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"},"first":{"type":"boolean"},"last":{"type":"boolean"}}},"CollaborationRequestStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"submitCompanyName":{"type":"string","maxLength":191},"submitCompanyId":{"type":"integer","format":"int64"},"submitterCaseNumber":{"type":"string","maxLength":191},"receiveCompanyName":{"type":"string","maxLength":191},"receiveCompanyId":{"type":"integer","format":"int64"},"receiverCaseNumber":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":10000},"direction":{"$ref":"#/components/schemas/CollaborationRequestDirection"},"priority":{"$ref":"#/components/schemas/CasePriority"},"status":{"$ref":"#/components/schemas/CaseStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"deletedAt":{"type":"string","format":"date-time","nullable":true},"responded":{"type":"boolean"},"respondBy":{"type":"string","format":"date-time"},"feedbackRequested":{"type":"boolean"},"reminderSent":{"type":"boolean"},"priorityNote":{"type":"string","maxLength":2000},"escalationInstructions":{"type":"string","maxLength":2000},"contactDocumentId":{"type":"integer","format":"int64","description":"ID of the contact document used to create this case"},"contactDocumentName":{"type":"string","maxLength":191,"description":"Name of the contact document used to create this case"},"testCase":{"type":"boolean"},"customFields":{"type":"array","items":{"$ref":"#/components/schemas/CaseCustomFieldStatusDTO"}},"submittedBy":{"$ref":"#/components/schemas/UserDTO"},"submitterContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"receiverContactDetails":{"$ref":"#/components/schemas/ContactDetailsDTO"},"caseNotes":{"type":"array","items":{"$ref":"#/components/schemas/CaseNoteDTO"}},"caseResponses":{"type":"array","items":{"$ref":"#/components/schemas/CaseResponseDTO"}}}},"CollaborationRequestDirection":{"type":"string","enum":["OUTBOUND","INBOUND"]},"CasePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"CaseStatus":{"type":"string","enum":["OPEN","INFORMATION","REJECTED","ACCEPTED","CLOSED"]},"CaseCustomFieldStatusDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"section":{"$ref":"#/components/schemas/FieldMetadataSection"},"fieldName":{"type":"string","maxLength":191},"value":{"type":"string","maxLength":5000},"displayOrder":{"type":"integer","format":"int32"},"type":{"$ref":"#/components/schemas/FieldMetadataType"}}},"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]},"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]},"UserDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string","maxLength":191},"firstName":{"type":"string","maxLength":191},"lastName":{"type":"string","maxLength":191},"email":{"type":"string","maxLength":191},"phone":{"type":"string","maxLength":50},"phoneCountryCode":{"type":"string","maxLength":10},"city":{"type":"string","maxLength":191},"emailCheckFailData":{"type":"string","maxLength":191}}},"ContactDetailsDTO":{"type":"object","required":["name","email","phone"],"properties":{"name":{"type":"string","maxLength":191,"description":"Full name of the contact"},"email":{"type":"string","format":"email","maxLength":191,"description":"Email address of the contact"},"phone":{"type":"string","maxLength":50,"description":"Phone number of the contact"}}},"CaseNoteDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"caseId":{"type":"integer","format":"int64"},"companyName":{"type":"string","maxLength":191},"creatorUsername":{"type":"string","maxLength":191},"creatorEmail":{"type":"string","maxLength":191},"creatorName":{"type":"string","maxLength":191},"summary":{"type":"string","maxLength":500},"description":{"type":"string","maxLength":5000},"priority":{"$ref":"#/components/schemas/NotePriority"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteStatus":{"type":"string","enum":["ENTERED","READ","RESPONDED","REMOVED"]},"CaseResponseDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"$ref":"#/components/schemas/CaseResponseType"},"caseNumber":{"type":"string","maxLength":191},"engineerName":{"type":"string","maxLength":191},"engineerPhone":{"type":"string","maxLength":50},"engineerEmail":{"type":"string","format":"email","maxLength":191},"nextSteps":{"type":"string","maxLength":5000},"createdAt":{"type":"string","format":"date-time"}}},"CaseResponseType":{"type":"string","enum":["APPROVAL","INFORMATION_REQUEST","INFORMATION_RESPONSE","REJECTION"]}}}}
```

## The CasePriority object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CasePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]}}}}
```

## The CaseStatus object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseStatus":{"type":"string","enum":["OPEN","INFORMATION","REJECTED","ACCEPTED","CLOSED"]}}}}
```

## The CollaborationRequestDirection object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CollaborationRequestDirection":{"type":"string","enum":["OUTBOUND","INBOUND"]}}}}
```

## The FieldMetadataSection object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"FieldMetadataSection":{"type":"string","enum":["CONTACT_SECTION","COMMON_CUSTOMER_SECTION","PROBLEM_SECTION"]}}}}
```

## The FieldMetadataType object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"FieldMetadataType":{"type":"string","enum":["STRING","INTEGER","EMAIL","PHONE","URL","TEXT","HIDDEN","CUSTOM","SELECT","TIERSELECT","GROUPSELECT","COPY","DB_SELECT","TIMEZONE"]}}}}
```

## The AttachmentForwardResultStatus object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"AttachmentForwardResultStatus":{"type":"string","enum":["SUCCESS","CONFIG_MISSING","CONFIG_INVALID","FORWARD_FAILED","CONTENT_ERROR","UNKNOWN"]}}}}
```

## The NotePriority object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]}}}}
```

## The NoteStatus object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"NoteStatus":{"type":"string","enum":["ENTERED","READ","RESPONDED","REMOVED"]}}}}
```

## The CaseResponseType object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"CaseResponseType":{"type":"string","enum":["APPROVAL","INFORMATION_REQUEST","INFORMATION_RESPONSE","REJECTION"]}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"validationErrors":{"type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"ValidationError":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}}}}}}
```

## The ValidationError object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"ValidationError":{"type":"object","properties":{"field":{"type":"string"},"message":{"type":"string"}}}}}}
```

## The ProblemDetail object

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"components":{"schemas":{"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"}},"additionalProperties":true}}}}
```
