> 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/case-responses.md).

# Case Responses

Approve, reject, and respond to cases

## POST /v1/collaboration-requests/{token}/approval

> Approve a collaboration request

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"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}}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/approval":{"post":{"tags":["Case Responses"],"summary":"Approve a collaboration request","operationId":"approveCollaborationRequest","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseApprovalDTO"}}}},"responses":{"200":{"description":"Collaboration request approved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Access denied","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```

## PATCH /v1/collaboration-requests/{token}/approval

> Update an approved collaboration request

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"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}}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/approval":{"patch":{"tags":["Case Responses"],"summary":"Update an approved collaboration request","operationId":"updateApproval","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/CaseApprovalUpdateDTO"}},"application/json":{"schema":{"$ref":"#/components/schemas/CaseApprovalUpdateDTO"}}}},"responses":{"200":{"description":"Collaboration request approval updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```

## POST /v1/collaboration-requests/{token}/information-request

> Submit an information request

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"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}}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/information-request":{"post":{"tags":["Case Responses"],"summary":"Submit an information request","operationId":"submitInformationRequest","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseInformationRequestDTO"}}}},"responses":{"200":{"description":"Information request submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```

## POST /v1/collaboration-requests/{token}/information-response

> Submit an information response

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"schemas":{"CaseInformationResponseDTO":{"type":"object","required":["requestedInformation"],"properties":{"requestedInformation":{"type":"string","maxLength":5000}}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/information-response":{"post":{"tags":["Case Responses"],"summary":"Submit an information response","operationId":"submitInformationResponse","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseInformationResponseDTO"}}}},"responses":{"200":{"description":"Information response submitted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```

## POST /v1/collaboration-requests/{token}/rejection

> Reject a collaboration request

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"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}}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/rejection":{"post":{"tags":["Case Responses"],"summary":"Reject a collaboration request","operationId":"rejectCollaborationRequest","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaseRejectionDTO"}}}},"responses":{"200":{"description":"Collaboration request rejected successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```

## Close a collaboration request

> Allows either the submitting partner or the receiving partner to close an accepted collaboration request.

```json
{"openapi":"3.0.3","info":{"title":"TSANet Connect Core API","version":"1.0.0"},"tags":[{"name":"Case Responses","description":"Approve, reject, and respond to cases"}],"servers":[{"url":"http://localhost:8080","description":"Local"},{"url":"https://connect2.tahoelab.us","description":"Dev"},{"url":"https://connect2.tsanet.net","description":"Beta"},{"url":"https://connect2.tsanet.org","description":"Prod"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Paste a Bearer JWT here. Two token types are accepted:\n\n**Connect1 User Tokens** — issued by the Connect1 identity service. Copy the token from your Connect1 session.\n\n**Azure AD M2M** — use the `azureClientCredentials` scheme below to get a token, then paste it here.\n"}},"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"}},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether request content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"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"},"companyId":{"type":"integer","format":"int64","description":"Identifier of the company that authored the note. Same value as CompanyDTO.id. Absent when the note has no authoring company (platform-generated notes).\n"},"companyName":{"type":"string","maxLength":191,"description":"Display name of the company that authored the note. Not a stable identifier. Absent for platform-generated notes, which have creatorName \"SYSTEM\", a null companyId, and a null companyName. Do not treat a missing company as the partner company.\n"},"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"},"type":{"allOf":[{"$ref":"#/components/schemas/NoteTypeSelectionDTO"}],"description":"Null or absent means the sender set no type. Do not treat a null, absent or unrecognized type as public.\n"},"direction":{"allOf":[{"$ref":"#/components/schemas/CollaborationRequestDirection"}],"description":"Relative to the authenticated member reading the note, same enum as the collaboration case. OUTBOUND when companyId is the reader's company, INBOUND when it is the other company. Absent only when companyId is absent.\n"},"status":{"$ref":"#/components/schemas/NoteStatus"},"token":{"type":"string","maxLength":20},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"manifest":{"type":"string","nullable":true,"description":"Optional opaque Compact JWS for request verification by the receiving connector. Stored and returned as submitted; never parsed or modified by the platform.\n"},"encrypted":{"type":"boolean","default":false,"description":"Whether note content is encrypted. Always true or false; defaults to false when omitted on create. Never parsed or modified by the platform beyond applying that default.\n"}}},"NotePriority":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"NoteTypeSelectionDTO":{"type":"object","required":["code","displayName"],"properties":{"code":{"$ref":"#/components/schemas/NoteTypeCode"},"displayName":{"type":"string","maxLength":191,"description":"Human-readable label. Do not use as an identifier."}}},"NoteTypeCode":{"type":"string","description":"Stable lowercase code. The set can grow without an API release, so match the code, never the display text. When creating, send a code from `GET /v1/note-types` (matched ignoring case); others are rejected. It is not an access-control filter.\n"},"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"]},"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"}}},"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}}},"paths":{"/v1/collaboration-requests/{token}/closure":{"post":{"tags":["Case Responses"],"summary":"Close a collaboration request","description":"Allows either the submitting partner or the receiving partner to close an accepted collaboration request.","operationId":"closeCollaborationRequest","parameters":[{"name":"token","in":"path","required":true,"description":"The token provided by TSANet for the collaboration request","schema":{"type":"string"}}],"responses":{"200":{"description":"Collaboration request closed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollaborationRequestStatusDTO"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```
