diff --git a/.gitignore b/.gitignore index ee28e2db..16fcdf01 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.env +.env.local **/__pycache__/ **/.speakeasy/temp/ **/.speakeasy/logs/ diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index e41ac6e9..eff0eb01 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: 686424de6b7c53b809f357600a9e6feb + docChecksum: 6ad5d4bdf6a0966da5cf793be89bc770 docVersion: 0.9.0 - speakeasyVersion: 1.606.9 - generationVersion: 2.687.13 - releaseVersion: 0.7.3 - configChecksum: 7f824beda95d93beaed3d91f450f4d8b + speakeasyVersion: 1.622.1 + generationVersion: 2.709.0 + releaseVersion: 0.7.4 + configChecksum: 69b8c11d84721d39d2ac4f31cc418d9e repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true @@ -16,7 +16,7 @@ features: additionalProperties: 1.0.1 configurableModuleName: 0.2.0 constsAndDefaults: 1.0.5 - core: 5.20.1 + core: 5.20.4 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 devContainers: 3.0.0 @@ -25,7 +25,7 @@ features: examples: 3.0.2 flatRequests: 1.0.1 flattening: 3.1.1 - globalSecurity: 3.0.3 + globalSecurity: 3.0.4 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 globalServerURLs: 3.1.1 @@ -37,7 +37,7 @@ features: responseFormat: 1.0.1 retries: 3.0.2 sdkHooks: 1.1.0 - tests: 1.19.2 + tests: 1.19.4 unions: 3.0.4 uploadStreams: 1.0.0 generatedFiles: @@ -171,7 +171,6 @@ generatedFiles: - docs/models/createauthtokenresponse.md - docs/models/createcollectionrequest.md - docs/models/createcollectionresponse.md - - docs/models/createcollectionresponseerrorcode.md - docs/models/createdlpreportrequest.md - docs/models/createdlpreportresponse.md - docs/models/createshortcutrequest.md @@ -227,6 +226,9 @@ generatedFiles: - docs/models/deleteshortcutrequest.md - docs/models/deleteteamrequest.md - docs/models/deleteuserrequest.md + - docs/models/digest.md + - docs/models/digestsection.md + - docs/models/digestupdate.md - docs/models/direction.md - docs/models/disambiguation.md - docs/models/displayablelistitemuiconfig.md @@ -253,7 +255,9 @@ generatedFiles: - docs/models/documentspec1.md - docs/models/documentspec2.md - docs/models/documentspec3.md - - docs/models/documentspecugctype.md + - docs/models/documentspec4.md + - docs/models/documentspecugctype1.md + - docs/models/documentspecugctype2.md - docs/models/documentspecunion.md - docs/models/documentstatusresponse.md - docs/models/documentvisibility.md @@ -486,6 +490,8 @@ generatedFiles: - docs/models/reportstatusresponse.md - docs/models/reportstatusresponsestatus.md - docs/models/requesttype.md + - docs/models/responsebody1.md + - docs/models/responsebody2.md - docs/models/responsehint.md - docs/models/responsemetadata.md - docs/models/responsestatus.md @@ -510,6 +516,7 @@ generatedFiles: - docs/models/searchresultprominenceenum.md - docs/models/searchresultsnippet.md - docs/models/searchwarning.md + - docs/models/sectiontype.md - docs/models/security.md - docs/models/seenfeedbackinfo.md - docs/models/sensitivecontentoptions.md @@ -580,6 +587,7 @@ generatedFiles: - docs/models/updatepolicyrequest.md - docs/models/updateshortcutrequest.md - docs/models/updateshortcutresponse.md + - docs/models/updatetype.md - docs/models/uploadchatfilesrequest.md - docs/models/uploadchatfilesrequestrequest.md - docs/models/uploadchatfilesresponse.md @@ -778,8 +786,8 @@ generatedFiles: - src/glean/api_client/models/createannouncementrequest.py - src/glean/api_client/models/createanswerrequest.py - src/glean/api_client/models/createauthtokenresponse.py + - src/glean/api_client/models/createcollectionop.py - src/glean/api_client/models/createcollectionrequest.py - - src/glean/api_client/models/createcollectionresponse.py - src/glean/api_client/models/createdlpreportrequest.py - src/glean/api_client/models/createdlpreportresponse.py - src/glean/api_client/models/createshortcutrequest.py @@ -828,6 +836,9 @@ generatedFiles: - src/glean/api_client/models/deleteshortcutrequest.py - src/glean/api_client/models/deleteteamrequest.py - src/glean/api_client/models/deleteuserrequest.py + - src/glean/api_client/models/digest.py + - src/glean/api_client/models/digestsection.py + - src/glean/api_client/models/digestupdate.py - src/glean/api_client/models/disambiguation.py - src/glean/api_client/models/displayablelistitemuiconfig.py - src/glean/api_client/models/dlpconfig.py @@ -1042,6 +1053,7 @@ generatedFiles: - src/glean/api_client/models/searchresultprominenceenum.py - src/glean/api_client/models/searchresultsnippet.py - src/glean/api_client/models/searchwarning.py + - src/glean/api_client/models/sectiontype.py - src/glean/api_client/models/security.py - src/glean/api_client/models/seenfeedbackinfo.py - src/glean/api_client/models/sensitivecontentoptions.py @@ -1099,6 +1111,7 @@ generatedFiles: - src/glean/api_client/models/updatepolicyop.py - src/glean/api_client/models/updateshortcutrequest.py - src/glean/api_client/models/updateshortcutresponse.py + - src/glean/api_client/models/updatetype.py - src/glean/api_client/models/uploadchatfilesop.py - src/glean/api_client/models/uploadchatfilesrequest.py - src/glean/api_client/models/uploadchatfilesresponse.py @@ -1352,7 +1365,6 @@ generatedFiles: - tests/mockserver/internal/sdk/models/components/createanswerrequest.go - tests/mockserver/internal/sdk/models/components/createauthtokenresponse.go - tests/mockserver/internal/sdk/models/components/createcollectionrequest.go - - tests/mockserver/internal/sdk/models/components/createcollectionresponse.go - tests/mockserver/internal/sdk/models/components/createdlpreportrequest.go - tests/mockserver/internal/sdk/models/components/createdlpreportresponse.go - tests/mockserver/internal/sdk/models/components/createshortcutrequest.go @@ -1398,6 +1410,9 @@ generatedFiles: - tests/mockserver/internal/sdk/models/components/deleteshortcutrequest.go - tests/mockserver/internal/sdk/models/components/deleteteamrequest.go - tests/mockserver/internal/sdk/models/components/deleteuserrequest.go + - tests/mockserver/internal/sdk/models/components/digest.go + - tests/mockserver/internal/sdk/models/components/digestsection.go + - tests/mockserver/internal/sdk/models/components/digestupdate.go - tests/mockserver/internal/sdk/models/components/disambiguation.go - tests/mockserver/internal/sdk/models/components/displayablelistitemuiconfig.go - tests/mockserver/internal/sdk/models/components/dlpconfig.go @@ -1593,6 +1608,7 @@ generatedFiles: - tests/mockserver/internal/sdk/models/components/searchresultprominenceenum.go - tests/mockserver/internal/sdk/models/components/searchresultsnippet.go - tests/mockserver/internal/sdk/models/components/searchwarning.go + - tests/mockserver/internal/sdk/models/components/sectiontype.go - tests/mockserver/internal/sdk/models/components/security.go - tests/mockserver/internal/sdk/models/components/seenfeedbackinfo.go - tests/mockserver/internal/sdk/models/components/sensitivecontentoptions.go @@ -1649,6 +1665,7 @@ generatedFiles: - tests/mockserver/internal/sdk/models/components/updatepermissionsrequest.go - tests/mockserver/internal/sdk/models/components/updateshortcutrequest.go - tests/mockserver/internal/sdk/models/components/updateshortcutresponse.go + - tests/mockserver/internal/sdk/models/components/updatetype.go - tests/mockserver/internal/sdk/models/components/uploadchatfilesrequest.go - tests/mockserver/internal/sdk/models/components/uploadchatfilesresponse.go - tests/mockserver/internal/sdk/models/components/uploadshortcutsrequest.go @@ -1940,7 +1957,7 @@ examples: application/json: {"id": ""} responses: "200": - application/json: {"chatResult": {"chat": {"createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "icon": {"color": "#343CED", "key": "person_icon", "iconType": "GLYPH", "name": "user"}, "messages": [{"author": "USER", "citations": [{"sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "sourceFile": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "sourcePerson": {"name": "George Clooney", "obfuscatedId": "abc123"}, "referenceRanges": [{"textRange": {"startIndex": 641568, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}]}], "fragments": [{"structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VERIFIER"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 548232}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "DEPRECATED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 728034}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 546319}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "board": {"name": "", "description": "humiliating jovially gadzooks when thorny yin oddly incidentally viciously", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 316173, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "collections": [{"name": "", "description": "until nifty warmly nicely furthermore howl at", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 427851, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 864473, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "DOCUMENT"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "answerBoard": {"name": "", "description": "deploy mostly as whitewash steeple geez", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 941180, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}]}], "relatedQuestion": {"ranges": [{"startIndex": 853389, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 548232}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "DEPRECATED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 728034}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 546319}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "board": {"name": "", "description": "humiliating jovially gadzooks when thorny yin oddly incidentally viciously", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 316173, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "answerBoard": {"name": "", "description": "deploy mostly as whitewash steeple geez", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 941180, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 853389, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "file": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "action": {"metadata": {"type": "RETRIEVAL", "name": "", "displayName": "Stanford30", "displayDescription": "", "objectName": "[\"HR ticket\",\"Email\",\"Chat message\"]"}}}], "messageType": "CONTENT"}]}}} + application/json: {"chatResult": {"chat": {"createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "icon": {"color": "#343CED", "key": "person_icon", "iconType": "GLYPH", "name": "user"}, "messages": [{"author": "USER", "citations": [{"sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "sourceFile": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "sourcePerson": {"name": "George Clooney", "obfuscatedId": "abc123"}, "referenceRanges": [{"textRange": {"startIndex": 641568, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}]}]}], "fragments": [{"structuredResults": [{"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VERIFIER"}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "structuredList": [{"link": "https://en.wikipedia.org/wiki/Diffuse_sky_radiation", "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "text": "Because its wavelengths are shorter, blue light is more strongly scattered than the longer-wavelength lights, red or green. Hence the result that when looking at the sky away from the direct incident sunlight, the human eye perceives the sky to be blue.", "structuredResult": {"document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "customer": {"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "poc": [{"name": "George Clooney", "obfuscatedId": "abc123"}], "mergedCustomers": [{"id": "", "company": {"name": "", "location": "New York City", "industry": "Finances", "about": "Financial, software, data, and media company headquartered in Midtown Manhattan, New York City"}, "notes": "CIO is interested in trying out the product."}], "notes": "CIO is interested in trying out the product."}, "team": {"id": "", "name": "", "members": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "relationship": "MEMBER"}], "customFields": [{"label": "", "values": [{}], "displayable": true}], "datasourceProfiles": [{"datasource": "github", "handle": ""}], "status": "PROCESSED", "canBeDeleted": true}, "customEntity": {"roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "answer": {"id": 3, "docId": "ANSWERS_answer_3", "question": "Why is the sky blue?", "bodyText": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light.", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "combinedAnswerText": {"text": "From https://en.wikipedia.org/wiki/Diffuse_sky_radiation, the sky is blue because blue light is more strongly scattered than longer-wavelength light."}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 548232}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "DEPRECATED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 728034}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 546319}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "board": {"name": "", "description": "humiliating jovially gadzooks when thorny yin oddly incidentally viciously", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 316173, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "collections": [{"name": "", "description": "until nifty warmly nicely furthermore howl at", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 427851, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 864473, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "DOCUMENT"}]}], "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "answerBoard": {"name": "", "description": "deploy mostly as whitewash steeple geez", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 941180, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedDocuments": [{"querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "results": [{"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}]}], "relatedQuestion": {"ranges": [{"startIndex": 853389, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}}]}, "likes": {"likedBy": [{"user": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "likedByUser": true, "numLikes": 548232}, "author": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "verification": {"state": "DEPRECATED", "metadata": {"lastVerifier": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "reminders": [{"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 728034}], "lastReminder": {"assignee": {"name": "George Clooney", "obfuscatedId": "abc123"}, "requestor": {"name": "George Clooney", "obfuscatedId": "abc123"}, "remindAt": 546319}, "candidateVerifiers": [{"name": "George Clooney", "obfuscatedId": "abc123"}]}}, "board": {"name": "", "description": "humiliating jovially gadzooks when thorny yin oddly incidentally viciously", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 316173, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "sourceDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "extractedQnA": {"questionResult": {"title": "title", "url": "https://example.com/foo/bar", "nativeAppUrl": "slack://foo/bar", "snippets": [{"mimeType": "mimeType", "snippet": "snippet"}], "mustIncludeSuggestions": {"suggestions": [{"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}], "person": {"name": "George Clooney", "obfuscatedId": "abc123"}}}}, "meeting": {"attendees": {"people": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "groupAttendees": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}]}}, "collection": {"name": "", "description": "scarification upon ack sometimes arrange contractor courageous tributary worthwhile jell", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 623437, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "bustling needily enroll", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 491436, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "answerBoard": {"name": "", "description": "deploy mostly as whitewash steeple geez", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 941180, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "code": {"repoName": "scio", "fileName": "README.md"}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}, "querySuggestions": {"person": {"name": "George Clooney", "obfuscatedId": "abc123"}}, "relatedQuestion": {"ranges": [{"startIndex": 853389, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}}]}}], "querySuggestion": {"query": "app:github type:pull author:mortimer", "label": "Mortimer's PRs", "datasource": "github"}, "file": {"id": "FILE_1234", "url": "www.google.com", "name": "sample.pdf"}, "action": {"metadata": {"type": "RETRIEVAL", "name": "", "displayName": "Stanford30", "displayDescription": "", "objectName": "[\"HR ticket\",\"Email\",\"Chat message\"]"}}}], "messageType": "CONTENT"}], "roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "EDITOR"}]}}} listchats: speakeasy-default-listchats: responses: @@ -2052,7 +2069,7 @@ examples: application/json: {"name": "", "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "OWNER"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}]} responses: "200": - application/json: {"name": "", "description": "aw frozen solemnly physically appreciate fluffy that roughly frizzy", "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "OWNER"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 299869, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 981434, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}]}, "collection": {"name": "", "description": "synthesise transcend seriously frail happy", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 400845, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "adjudge lest grandiose out athwart", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 597565, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "DOCUMENT"}], "children": [{"name": "", "description": "adjudge lest grandiose out athwart", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 597565, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}], "roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VIEWER"}], "errorCode": "COLLECTION_PINNED", "collection": {"name": "", "description": "synthesise transcend seriously frail happy", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 400845, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "adjudge lest grandiose out athwart", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 597565, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}} + application/json: {"collection": {"name": "", "description": "synthesise transcend seriously frail happy", "addedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "ANSWER_MODERATOR"}], "removedRoles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "VERIFIER"}], "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 400845, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "items": [{"collectionId": 977077, "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "document": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "shortcut": {"inputAlias": "", "createdBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "destinationDocument": {"containerDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "parentDocument": {"metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "metadata": {"datasource": "datasource", "objectType": "Feature Request", "container": "container", "parentId": "JIRA_EN-1337", "mimeType": "mimeType", "documentId": "documentId", "createTime": "2000-01-23T04:56:07.000Z", "updateTime": "2000-01-23T04:56:07.000Z", "author": {"name": "name", "obfuscatedId": ""}, "components": ["Backend", "Networking"], "status": "[\"Done\"]", "customData": {"someCustomField": {}}}}, "roles": [{"person": {"name": "George Clooney", "obfuscatedId": "abc123"}, "role": "OWNER"}]}, "collection": {"name": "", "description": "hm spiffy whoever", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 200392, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}, "children": [{"name": "", "description": "subtract until before drowse", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 423482, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}, "itemType": "URL"}], "children": [{"name": "", "description": "adjudge lest grandiose out athwart", "audienceFilters": [{"fieldName": "type", "values": [{"value": "Spreadsheet", "relationType": "EQUALS"}, {"value": "Presentation", "relationType": "EQUALS"}]}], "id": 597565, "creator": {"name": "George Clooney", "obfuscatedId": "abc123"}, "updatedBy": {"name": "George Clooney", "obfuscatedId": "abc123"}}]}} "422": application/json: {"errorCode": "CONCURRENT_HIERARCHY_EDIT"} deletecollection: @@ -2121,7 +2138,7 @@ examples: summarize: speakeasy-default-summarize: requestBody: - application/json: {"documentSpecs": [{}]} + application/json: {"documentSpecs": [{"ugcType": "CHATS", "ugcId": ""}]} responses: "200": application/json: {} @@ -2682,4 +2699,4 @@ generatedTests: editcollection: "2025-06-12T19:13:52-04:00" createshortcut: "2025-06-12T19:13:52-04:00" updateshortcut: "2025-06-12T19:13:52-04:00" -releaseNotes: "## SDK Changes Detected:\n* `glean.client.announcements.create()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.announcements.update()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.body.structured_list.[].document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.answers.create()`: \n * `request.data.added_roles.[].group.datasource_instance` **Added**\n * `response.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.answers.update()`: \n * `request.added_roles.[].group.datasource_instance` **Added**\n * `response.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.answers.list()`: `response.answer_results.[].answer.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.chat.create()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat.created_by.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.chat.list()`: `response.chat_results.[].chat.created_by.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.chat.create_stream()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.add_items()`: `response.collection.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.create()`: \n * `request.added_roles.[].group.datasource_instance` **Added**\n * `response.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.delete_item()`: `response.collection.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.update()`: \n * `request.added_roles.[].group.datasource_instance` **Added**\n * `response.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.update_item()`: `response.collection.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.retrieve()`: `response.collection.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.collections.list()`: `response.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.documents.retrieve()`: `response.documents.{}.[document].metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.documents.retrieve_by_facets()`: `response.documents.[].metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.insights.retrieve()`: `response.users.activity_insights.[].user.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.messages.retrieve()`: `response.search_response.results.[].structured_results.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.pins.update()`: `response.attribution.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.pins.list()`: `response.pins.[].attribution.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.pins.create()`: `response.attribution.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.search.query_as_admin()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.results.[].structured_results.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.search.autocomplete()`: `response.results.[].document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n* `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry` **Changed**\n* `glean.client.search.recommendations()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.results.[].structured_results.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.search.query()`: \n * `request.source_document.metadata.author.related_documents.[].results.[].structured_results.[].custom_entity.roles.[].group.datasource_instance` **Added**\n * `response.results.[].structured_results.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.entities.list()`: `response.results.[].related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.entities.read_people()`: `response.results.[].related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.shortcuts.create()`: \n * `request.data.added_roles.[].group.datasource_instance` **Added**\n * `response.shortcut.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.shortcuts.list()`: `response.shortcuts.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.shortcuts.update()`: \n * `request.added_roles.[].group.datasource_instance` **Added**\n * `response.shortcut.added_roles.[].group.datasource_instance` **Added**\n* `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.verification.list()`: `response.documents.[].metadata.last_verifier.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n* `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents.[].query_suggestion.ranges.[].document.metadata.collections.[].added_roles.[].group.datasource_instance` **Added**\n" +releaseNotes: "## Python SDK Changes Detected:\n* `glean.client.documents.summarize()`: \n * `request.document_specs.[].[class]` **Changed** **Breaking** :warning:\n* `glean.client.documents.retrieve()`: \n * `request.document_specs.[].[class]` **Changed** **Breaking** :warning:\n * `response.documents.{}.[document].metadata.author.related_documents.[]` **Changed**\n* `glean.client.answers.create()`: \n * `request.data.added_roles.[]` **Changed** **Breaking** :warning:\n * `response.added_roles.[]` **Changed**\n* `glean.client.answers.update()`: \n * `request.added_roles.[]` **Changed** **Breaking** :warning:\n * `response.added_roles.[]` **Changed**\n* `glean.client.shortcuts.update()`: \n * `request.added_roles.[]` **Changed** **Breaking** :warning:\n * `response.shortcut.added_roles.[]` **Changed**\n* `glean.client.shortcuts.create()`: \n * `request.data.added_roles.[]` **Changed** **Breaking** :warning:\n * `response.shortcut.added_roles.[]` **Changed**\n* `glean.client.chat.create()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.messages.[].citations.[].source_document.metadata.author.related_documents.[]` **Changed**\n* `glean.client.search.query()`: \n * `request.source_document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.results.[].structured_results.[].document.metadata` **Changed**\n* `glean.client.search.recommendations()`: \n * `request.source_document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.results.[].structured_results.[].document.metadata` **Changed**\n* `glean.client.search.query_as_admin()`: \n * `request.source_document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.results.[].structured_results.[].document.metadata` **Changed**\n* `glean.client.chat.create_stream()`: \n * `request.messages.[].citations.[].source_document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n* `glean.client.announcements.create()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.body.structured_list.[].document.metadata.author.related_documents.[]` **Changed**\n* `glean.client.collections.create()`: \n * `request.added_roles.[]` **Changed** **Breaking** :warning:\n * `response` **Changed** **Breaking** :warning:\n* `glean.client.announcements.update()`: \n * `request.body.structured_list.[].document.metadata.author.related_documents.[]` **Changed** **Breaking** :warning:\n * `response.body.structured_list.[].document.metadata.author.related_documents.[]` **Changed**\n* `glean.client.collections.update()`: \n * `request.added_roles.[]` **Changed** **Breaking** :warning:\n * `response.added_roles.[]` **Changed**\n* `glean.client.collections.add_items()`: `response.collection.added_roles.[]` **Changed**\n* `glean.client.search.autocomplete()`: `response.results.[].document.metadata.author.related_documents.[]` **Changed**\n* `glean.client.collections.list()`: `response.collections.[].added_roles.[]` **Changed**\n* `glean.client.collections.update_item()`: `response.collection.added_roles.[]` **Changed**\n* `glean.client.documents.retrieve_by_facets()`: `response.documents.[].metadata.author.related_documents.[]` **Changed**\n* `glean.client.collections.delete_item()`: `response.collection.added_roles.[]` **Changed**\n* `glean.client.insights.retrieve()`: `response.users.activity_insights.[].user.related_documents.[].query_suggestion` **Changed**\n* `glean.client.messages.retrieve()`: `response.search_response.results.[].structured_results.[].document.metadata` **Changed**\n* `glean.client.pins.update()`: `response.attribution.related_documents.[].query_suggestion` **Changed**\n* `glean.client.pins.retrieve()`: `response.pin.attribution.related_documents.[].query_suggestion` **Changed**\n* `glean.client.pins.list()`: `response.pins.[].attribution.related_documents.[].query_suggestion` **Changed**\n* `glean.client.pins.create()`: `response.attribution.related_documents.[].query_suggestion` **Changed**\n* `glean.client.chat.retrieve_files()`: `request.chat_id` **Added**\n* `glean.client.collections.retrieve()`: `response.collection.added_roles.[]` **Changed**\n* `glean.client.search.retrieve_feed()`: `response.results.[].primary_entry` **Changed**\n* `glean.client.chat.list()`: `response.chat_results.[].chat.created_by.related_documents.[].query_suggestion` **Changed**\n* `glean.client.chat.retrieve()`: `response.chat_result.chat` **Changed**\n* `glean.client.entities.list()`: `response.results.[].related_documents.[].query_suggestion` **Changed**\n* `glean.client.entities.read_people()`: `response.results.[].related_documents.[].query_suggestion` **Changed**\n* `glean.client.answers.list()`: `response.answer_results.[].answer.added_roles.[]` **Changed**\n* `glean.client.shortcuts.retrieve()`: `response.shortcut.added_roles.[]` **Changed**\n* `glean.client.shortcuts.list()`: `response.shortcuts.[].added_roles.[]` **Changed**\n* `glean.client.answers.retrieve()`: `response.answer_result.answer.added_roles.[]` **Changed**\n* `glean.client.verification.add_reminder()`: `response.metadata.last_verifier.related_documents.[].query_suggestion` **Changed**\n* `glean.client.verification.list()`: `response.documents.[].metadata.last_verifier.related_documents.[].query_suggestion` **Changed**\n* `glean.client.verification.verify()`: `response.metadata.last_verifier.related_documents.[].query_suggestion` **Changed**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index b1c8141d..0a45ae2b 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -19,6 +19,7 @@ generation: auth: oAuth2ClientCredentialsEnabled: false oAuth2PasswordEnabled: false + hoistGlobalSecurity: true mockServer: disabled: false tests: @@ -26,7 +27,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.7.3 + version: 0.7.4 additionalDependencies: dev: {} main: {} @@ -65,4 +66,5 @@ python: pytestFilterWarnings: [] pytestTimeout: 0 responseFormat: flat + sseFlatResponse: false templateVersion: v2 diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index ac28b734..aa8f386f 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -4261,18 +4261,28 @@ components: tokenType: Bearer authUser: "1" DocumentSpec: + x-multiple-discriminators: true oneOf: - type: object + required: + - url properties: url: type: string + x-discriminator: true description: The URL of the document. - type: object + required: + - id properties: id: type: string + x-discriminator: true description: The ID of the document. - type: object + required: + - contentId + - ugcType properties: ugcType: type: string @@ -4281,10 +4291,33 @@ components: - ANSWERS - COLLECTIONS - SHORTCUTS + - CHATS description: The type of the user generated content (UGC datasource). contentId: type: integer - description: The id for user generated content. + x-discriminator: true + description: The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. + docType: + type: string + description: The specific type of the user generated content type. + - type: object + required: + - ugcType + - ugcId + properties: + ugcType: + type: string + enum: + - ANNOUNCEMENTS + - ANSWERS + - COLLECTIONS + - SHORTCUTS + - CHATS + description: The type of the user generated content (UGC datasource). + ugcId: + type: string + x-discriminator: true + description: The string id for user generated content. Used for CHATS. docType: type: string description: The specific type of the user generated content type. @@ -4868,6 +4901,9 @@ components: datasourceInstance: type: string description: Datasource instance if the group belongs to one e.g. external groups. + provisioningId: + type: string + description: identifier for greenlist provisioning, aka sciokey UserRole: type: string description: A user's role with respect to a specific document. @@ -7287,7 +7323,7 @@ components: additionalProperties: $ref: "#/components/schemas/WriteActionParameter" ChatMessageFragment: - description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file. + description: Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file. allOf: - $ref: "#/components/schemas/Result" - type: object @@ -7354,6 +7390,7 @@ components: ERROR: A message that describes an error while processing the request. HEADING: A heading message used to distinguish different sections of the holistic response. WARNING: A warning message to be shown to the user. + SERVER_TOOL: A message used to for server-side tool auth/use, for request and response. enum: - UPDATE - CONTENT @@ -7363,6 +7400,7 @@ components: - ERROR - HEADING - WARNING + - SERVER_TOOL hasMoreFragments: deprecated: true type: boolean @@ -7489,12 +7527,18 @@ components: description: A historical representation of a series of chat messages a user had with Glean Assistant. allOf: - $ref: "#/components/schemas/ChatMetadata" + - $ref: "#/components/schemas/PermissionedObject" properties: messages: type: array items: $ref: "#/components/schemas/ChatMessage" description: The chat messages within a Chat. + roles: + type: array + items: + $ref: "#/components/schemas/UserRoleSpecification" + description: A list of roles for this Chat. ChatResult: properties: chat: @@ -7558,6 +7602,9 @@ components: items: type: string description: IDs of files to fetch. + chatId: + type: string + description: The ID of the chat that contains the chat file. GetChatFilesResponse: properties: files: @@ -7808,9 +7855,12 @@ components: - NO_PERMISSIONS CreateCollectionResponse: allOf: - - $ref: "#/components/schemas/Collection" - - $ref: "#/components/schemas/CollectionError" - type: object + anyOf: + - required: + - collection + - required: + - error properties: collection: $ref: "#/components/schemas/Collection" @@ -9153,6 +9203,7 @@ components: - ZERO_STATE_WORKFLOW_POPULAR - ZERO_STATE_WORKFLOW_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: $ref: "#/components/schemas/FeedRequestOptions" @@ -9308,6 +9359,91 @@ components: type: array items: $ref: "#/components/schemas/GeneratedAttachment" + SectionType: + type: string + description: Type of the section. This defines how the section should be interpreted and rendered in the digest. + x-enumDescriptions: + CHANNEL: A standard section for channel-based digests (e.g. from Slack, Teams). + MENTIONS: A dedicated section that surfaces user mentions (actionable, informative, or all). + TOPIC: A section driven by a generic topic, not tied to any specific channel or instance. + enum: + - CHANNEL + - MENTIONS + - TOPIC + UpdateType: + type: string + description: Optional type classification for the update. + x-enumDescriptions: + ACTIONABLE: Updates that require user attention or action + INFORMATIVE: Updates that are purely informational + enum: + - ACTIONABLE + - INFORMATIVE + DigestUpdate: + type: object + properties: + url: + type: string + description: URL link to the content or document. + title: + type: string + description: Title or headline of the update. + datasource: + type: string + description: Name or identifier of the data source (e.g., slack, confluence, etc.). + summary: + type: string + description: Brief summary or description of the update content. + type: + $ref: "#/components/schemas/UpdateType" + DigestSection: + type: object + required: + - id + - type + - updates + properties: + id: + type: string + description: Unique identifier for the digest section. + type: + $ref: "#/components/schemas/SectionType" + displayName: + type: string + description: Human-readable name for the digest section. + channelName: + type: string + description: Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. + instanceId: + type: string + description: Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. + url: + type: string + description: Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. + updates: + type: array + items: + $ref: "#/components/schemas/DigestUpdate" + description: List of updates within this digest section. + Digest: + type: object + properties: + podcastFileId: + type: string + description: Identifier for the podcast file generated from this digest content. + podcastDuration: + type: number + format: float + description: Duration of the podcast file in seconds. + digestDate: + type: string + description: The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available. + example: "2025-09-03" + sections: + type: array + items: + $ref: "#/components/schemas/DigestSection" + description: Array of digest sections from which the podcast was created. ChatSuggestion: properties: query: @@ -9530,6 +9666,7 @@ components: - ZERO_STATE_STATIC_WORKFLOW_SUGGESTION - ZERO_STATE_AGENT_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST description: Type of the justification. justification: type: string @@ -9546,6 +9683,8 @@ components: $ref: "#/components/schemas/CalendarEvent" announcement: $ref: "#/components/schemas/Announcement" + digest: + $ref: "#/components/schemas/Digest" collection: $ref: "#/components/schemas/Collection" collectionItem: @@ -9598,6 +9737,7 @@ components: - ZERO_STATE_WORKFLOW_POPULAR - ZERO_STATE_WORKFLOW_SUGGESTION - PERSONALIZED_CHAT_SUGGESTION + - DAILY_DIGEST description: Category of the result, one of the requested categories in incoming request. primaryEntry: $ref: "#/components/schemas/FeedEntry" @@ -11595,6 +11735,7 @@ components: - EXTERNAL_SHORTCUT - ENTITY - CALENDAR + - AGENTS description: The document category of this object type. propertyDefinitions: type: array @@ -11649,6 +11790,7 @@ components: - EXTERNAL_SHORTCUT - ENTITY - CALENDAR + - AGENTS default: UNCATEGORIZED description: The type of this datasource. It is an important signal for relevance and must be specified and cannot be UNCATEGORIZED. Please refer to [this](https://developers.glean.com/docs/indexing_api_datasource_category/) for more details. urlRegex: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 79a7f8d0..ddd46940 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,12 +1,12 @@ -speakeasyVersion: 1.606.9 +speakeasyVersion: 1.622.1 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:35193fded9c9797576c742f6e93e2e3e9d507aa2ab2c55a5458825561552f33e - sourceBlobDigest: sha256:1dc638c477afb69ccc30ba6482d7ac2e7237238d44638da8d0c4ece45f36d416 + sourceRevisionDigest: sha256:3c05b922fcc476380389e53d62c9604ef27de784d9e68fc0e75ed412310d5007 + sourceBlobDigest: sha256:6e213c122174f2e94a93fa23c1cb28b68664ce3408a9d52ec013582354d7bf64 tags: - latest - - speakeasy-sdk-regen-1755200990 + - speakeasy-sdk-regen-1756833812 Glean Client API: sourceNamespace: glean-client-api sourceRevisionDigest: sha256:4edc63ad559e4f2c9fb9ebf5edaaaaa9269f1874d271cfd84b441d6dacac43d2 @@ -17,10 +17,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:35193fded9c9797576c742f6e93e2e3e9d507aa2ab2c55a5458825561552f33e - sourceBlobDigest: sha256:1dc638c477afb69ccc30ba6482d7ac2e7237238d44638da8d0c4ece45f36d416 + sourceRevisionDigest: sha256:3c05b922fcc476380389e53d62c9604ef27de784d9e68fc0e75ed412310d5007 + sourceBlobDigest: sha256:6e213c122174f2e94a93fa23c1cb28b68664ce3408a9d52ec013582354d7bf64 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:ec1033795495ed5feb092f4ca786534382c763ff1787a997db77303ef0539ad9 + codeSamplesRevisionDigest: sha256:98a13a63cdf737a90dd1b7477ea6c0ce8a80bbd62c3e5bdce09ca7d65585e69b workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index 48991174..ef5fca5c 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -208,4 +208,14 @@ Based on: ### Generated - [python v0.7.3] . ### Releases -- [PyPI v0.7.3] https://pypi.org/project/glean/0.7.3 - . \ No newline at end of file +- [PyPI v0.7.3] https://pypi.org/project/glean/0.7.3 - . + +## 2025-09-23 01:24:23 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.622.1 (2.709.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.7.4] . +### Releases +- [PyPI v0.7.4] https://pypi.org/project/glean/0.7.4 - . \ No newline at end of file diff --git a/docs/models/chat.md b/docs/models/chat.md index 431247e4..18c670ec 100644 --- a/docs/models/chat.md +++ b/docs/models/chat.md @@ -15,4 +15,6 @@ A historical representation of a series of chat messages a user had with Glean A | `application_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the AI App that this Chat is associated to. | | | `application_name` | *Optional[str]* | :heavy_minus_sign: | The display name of the AI App that this Chat is associated to. | | | `icon` | [Optional[models.IconConfig]](../models/iconconfig.md) | :heavy_minus_sign: | Defines how to render an icon | {
"color": "#343CED",
"key": "person_icon",
"iconType": "GLYPH",
"name": "user"
} | -| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | The chat messages within a Chat. | | \ No newline at end of file +| `permissions` | [Optional[models.ObjectPermissions]](../models/objectpermissions.md) | :heavy_minus_sign: | N/A | | +| `messages` | List[[models.ChatMessage](../models/chatmessage.md)] | :heavy_minus_sign: | The chat messages within a Chat. | | +| `roles` | List[[models.UserRoleSpecification](../models/userrolespecification.md)] | :heavy_minus_sign: | A list of roles for this Chat. | | \ No newline at end of file diff --git a/docs/models/chatmessagefragment.md b/docs/models/chatmessagefragment.md index 2ecc8633..1123f936 100644 --- a/docs/models/chatmessagefragment.md +++ b/docs/models/chatmessagefragment.md @@ -1,6 +1,6 @@ # ChatMessageFragment -Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file. +Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file. ## Fields diff --git a/docs/models/createcollectionresponse.md b/docs/models/createcollectionresponse.md index fedc0124..42c3788c 100644 --- a/docs/models/createcollectionresponse.md +++ b/docs/models/createcollectionresponse.md @@ -1,33 +1,19 @@ -# CreateCollectionResponse - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `name` | *str* | :heavy_check_mark: | The unique name of the Collection. | | -| `description` | *str* | :heavy_check_mark: | A brief summary of the Collection's contents. | | -| `added_roles` | List[[models.UserRoleSpecification](../models/userrolespecification.md)] | :heavy_minus_sign: | A list of added user roles for the Collection. | | -| `removed_roles` | List[[models.UserRoleSpecification](../models/userrolespecification.md)] | :heavy_minus_sign: | A list of removed user roles for the Collection. | | -| `audience_filters` | List[[models.FacetFilter](../models/facetfilter.md)] | :heavy_minus_sign: | Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search. | | -| `icon` | *Optional[str]* | :heavy_minus_sign: | The emoji icon of this Collection. | | -| `admin_locked` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether edits are allowed for everyone or only admins. | | -| `parent_id` | *Optional[int]* | :heavy_minus_sign: | The parent of this Collection, or 0 if it's a top-level Collection. | | -| `thumbnail` | [Optional[models.Thumbnail]](../models/thumbnail.md) | :heavy_minus_sign: | N/A | | -| `allowed_datasource` | *Optional[str]* | :heavy_minus_sign: | The datasource type this Collection can hold. | | -| `permissions` | [Optional[models.ObjectPermissions]](../models/objectpermissions.md) | :heavy_minus_sign: | N/A | | -| `id` | *int* | :heavy_check_mark: | The unique ID of the Collection. | | -| `create_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | | -| `update_time` | [date](https://docs.python.org/3/library/datetime.html#date-objects) | :heavy_minus_sign: | N/A | | -| `creator` | [Optional[models.Person]](../models/person.md) | :heavy_minus_sign: | N/A | {
"name": "George Clooney",
"obfuscatedId": "abc123"
} | -| `updated_by` | [Optional[models.Person]](../models/person.md) | :heavy_minus_sign: | N/A | {
"name": "George Clooney",
"obfuscatedId": "abc123"
} | -| `item_count` | *Optional[int]* | :heavy_minus_sign: | The number of items currently in the Collection. Separated from the actual items so we can grab the count without items. | | -| `child_count` | *Optional[int]* | :heavy_minus_sign: | The number of children Collections. Separated from the actual children so we can grab the count without children. | | -| `items` | List[[models.CollectionItem](../models/collectionitem.md)] | :heavy_minus_sign: | The items in this Collection. | | -| `pin_metadata` | [Optional[models.CollectionPinnedMetadata]](../models/collectionpinnedmetadata.md) | :heavy_minus_sign: | N/A | | -| `shortcuts` | List[*str*] | :heavy_minus_sign: | The names of the shortcuts (Go Links) that point to this Collection. | | -| `children` | List[[models.Collection](../models/collection.md)] | :heavy_minus_sign: | The children Collections of this Collection. | | -| `roles` | List[[models.UserRoleSpecification](../models/userrolespecification.md)] | :heavy_minus_sign: | A list of user roles for the Collection. | | -| `error_code` | [models.CreateCollectionResponseErrorCode](../models/createcollectionresponseerrorcode.md) | :heavy_check_mark: | N/A | | -| `collection` | [Optional[models.Collection]](../models/collection.md) | :heavy_minus_sign: | N/A | | -| `error` | [Optional[models.CollectionError]](../models/collectionerror.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file +# CreatecollectionResponse + +OK + + +## Supported Types + +### `models.ResponseBody1` + +```python +value: models.ResponseBody1 = /* values here */ +``` + +### `models.ResponseBody2` + +```python +value: models.ResponseBody2 = /* values here */ +``` + diff --git a/docs/models/createcollectionresponseerrorcode.md b/docs/models/createcollectionresponseerrorcode.md deleted file mode 100644 index 6a9b5ea4..00000000 --- a/docs/models/createcollectionresponseerrorcode.md +++ /dev/null @@ -1,14 +0,0 @@ -# CreateCollectionResponseErrorCode - - -## Values - -| Name | Value | -| --------------------------- | --------------------------- | -| `NAME_EXISTS` | NAME_EXISTS | -| `NOT_FOUND` | NOT_FOUND | -| `COLLECTION_PINNED` | COLLECTION_PINNED | -| `CONCURRENT_HIERARCHY_EDIT` | CONCURRENT_HIERARCHY_EDIT | -| `HEIGHT_VIOLATION` | HEIGHT_VIOLATION | -| `WIDTH_VIOLATION` | WIDTH_VIOLATION | -| `NO_PERMISSIONS` | NO_PERMISSIONS | \ No newline at end of file diff --git a/docs/models/datasourcecategory.md b/docs/models/datasourcecategory.md index 9ccbb806..44d81a93 100644 --- a/docs/models/datasourcecategory.md +++ b/docs/models/datasourcecategory.md @@ -23,4 +23,5 @@ The type of this datasource. It is an important signal for relevance and must be | `KNOWLEDGE_HUB` | KNOWLEDGE_HUB | | `EXTERNAL_SHORTCUT` | EXTERNAL_SHORTCUT | | `ENTITY` | ENTITY | -| `CALENDAR` | CALENDAR | \ No newline at end of file +| `CALENDAR` | CALENDAR | +| `AGENTS` | AGENTS | \ No newline at end of file diff --git a/docs/models/digest.md b/docs/models/digest.md new file mode 100644 index 00000000..69b303d5 --- /dev/null +++ b/docs/models/digest.md @@ -0,0 +1,11 @@ +# Digest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `podcast_file_id` | *Optional[str]* | :heavy_minus_sign: | Identifier for the podcast file generated from this digest content. | | +| `podcast_duration` | *Optional[float]* | :heavy_minus_sign: | Duration of the podcast file in seconds. | | +| `digest_date` | *Optional[str]* | :heavy_minus_sign: | The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available. | 2025-09-03 | +| `sections` | List[[models.DigestSection](../models/digestsection.md)] | :heavy_minus_sign: | Array of digest sections from which the podcast was created. | | \ No newline at end of file diff --git a/docs/models/digestsection.md b/docs/models/digestsection.md new file mode 100644 index 00000000..80a74c6f --- /dev/null +++ b/docs/models/digestsection.md @@ -0,0 +1,14 @@ +# DigestSection + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | Unique identifier for the digest section. | +| `type` | [models.SectionType](../models/sectiontype.md) | :heavy_check_mark: | Type of the section. This defines how the section should be interpreted and rendered in the digest. | +| `display_name` | *Optional[str]* | :heavy_minus_sign: | Human-readable name for the digest section. | +| `channel_name` | *Optional[str]* | :heavy_minus_sign: | Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. | +| `instance_id` | *Optional[str]* | :heavy_minus_sign: | Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. | +| `url` | *Optional[str]* | :heavy_minus_sign: | Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. | +| `updates` | List[[models.DigestUpdate](../models/digestupdate.md)] | :heavy_check_mark: | List of updates within this digest section. | \ No newline at end of file diff --git a/docs/models/digestupdate.md b/docs/models/digestupdate.md new file mode 100644 index 00000000..579ab92e --- /dev/null +++ b/docs/models/digestupdate.md @@ -0,0 +1,12 @@ +# DigestUpdate + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `url` | *Optional[str]* | :heavy_minus_sign: | URL link to the content or document. | +| `title` | *Optional[str]* | :heavy_minus_sign: | Title or headline of the update. | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | Name or identifier of the data source (e.g., slack, confluence, etc.). | +| `summary` | *Optional[str]* | :heavy_minus_sign: | Brief summary or description of the update content. | +| `type` | [Optional[models.UpdateType]](../models/updatetype.md) | :heavy_minus_sign: | Optional type classification for the update. | \ No newline at end of file diff --git a/docs/models/doccategory.md b/docs/models/doccategory.md index 88959b66..3f3a7ec6 100644 --- a/docs/models/doccategory.md +++ b/docs/models/doccategory.md @@ -23,4 +23,5 @@ The document category of this object type. | `KNOWLEDGE_HUB` | KNOWLEDGE_HUB | | `EXTERNAL_SHORTCUT` | EXTERNAL_SHORTCUT | | `ENTITY` | ENTITY | -| `CALENDAR` | CALENDAR | \ No newline at end of file +| `CALENDAR` | CALENDAR | +| `AGENTS` | AGENTS | \ No newline at end of file diff --git a/docs/models/documentspec1.md b/docs/models/documentspec1.md index 7fd1a9df..752d3825 100644 --- a/docs/models/documentspec1.md +++ b/docs/models/documentspec1.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | | ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `url` | *Optional[str]* | :heavy_minus_sign: | The URL of the document. | \ No newline at end of file +| `url` | *str* | :heavy_check_mark: | The URL of the document. | \ No newline at end of file diff --git a/docs/models/documentspec2.md b/docs/models/documentspec2.md index 057d611b..4186c95e 100644 --- a/docs/models/documentspec2.md +++ b/docs/models/documentspec2.md @@ -5,4 +5,4 @@ | Field | Type | Required | Description | | ----------------------- | ----------------------- | ----------------------- | ----------------------- | -| `id` | *Optional[str]* | :heavy_minus_sign: | The ID of the document. | \ No newline at end of file +| `id` | *str* | :heavy_check_mark: | The ID of the document. | \ No newline at end of file diff --git a/docs/models/documentspec3.md b/docs/models/documentspec3.md index 2586c391..e694c962 100644 --- a/docs/models/documentspec3.md +++ b/docs/models/documentspec3.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | -| `ugc_type` | [Optional[models.DocumentSpecUgcType]](../models/documentspecugctype.md) | :heavy_minus_sign: | The type of the user generated content (UGC datasource). | -| `content_id` | *Optional[int]* | :heavy_minus_sign: | The id for user generated content. | -| `doc_type` | *Optional[str]* | :heavy_minus_sign: | The specific type of the user generated content type. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | +| `ugc_type` | [models.DocumentSpecUgcType1](../models/documentspecugctype1.md) | :heavy_check_mark: | The type of the user generated content (UGC datasource). | +| `content_id` | *int* | :heavy_check_mark: | The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. | +| `doc_type` | *Optional[str]* | :heavy_minus_sign: | The specific type of the user generated content type. | \ No newline at end of file diff --git a/docs/models/documentspec4.md b/docs/models/documentspec4.md new file mode 100644 index 00000000..f97ba78e --- /dev/null +++ b/docs/models/documentspec4.md @@ -0,0 +1,10 @@ +# DocumentSpec4 + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `ugc_type` | [models.DocumentSpecUgcType2](../models/documentspecugctype2.md) | :heavy_check_mark: | The type of the user generated content (UGC datasource). | +| `ugc_id` | *str* | :heavy_check_mark: | The string id for user generated content. Used for CHATS. | +| `doc_type` | *Optional[str]* | :heavy_minus_sign: | The specific type of the user generated content type. | \ No newline at end of file diff --git a/docs/models/documentspecugctype.md b/docs/models/documentspecugctype1.md similarity index 72% rename from docs/models/documentspecugctype.md rename to docs/models/documentspecugctype1.md index aa1e4c9a..8dababc6 100644 --- a/docs/models/documentspecugctype.md +++ b/docs/models/documentspecugctype1.md @@ -1,4 +1,4 @@ -# DocumentSpecUgcType +# DocumentSpecUgcType1 The type of the user generated content (UGC datasource). @@ -10,4 +10,5 @@ The type of the user generated content (UGC datasource). | `ANNOUNCEMENTS` | ANNOUNCEMENTS | | `ANSWERS` | ANSWERS | | `COLLECTIONS` | COLLECTIONS | -| `SHORTCUTS` | SHORTCUTS | \ No newline at end of file +| `SHORTCUTS` | SHORTCUTS | +| `CHATS` | CHATS | \ No newline at end of file diff --git a/docs/models/documentspecugctype2.md b/docs/models/documentspecugctype2.md new file mode 100644 index 00000000..313e7a43 --- /dev/null +++ b/docs/models/documentspecugctype2.md @@ -0,0 +1,14 @@ +# DocumentSpecUgcType2 + +The type of the user generated content (UGC datasource). + + +## Values + +| Name | Value | +| --------------- | --------------- | +| `ANNOUNCEMENTS` | ANNOUNCEMENTS | +| `ANSWERS` | ANSWERS | +| `COLLECTIONS` | COLLECTIONS | +| `SHORTCUTS` | SHORTCUTS | +| `CHATS` | CHATS | \ No newline at end of file diff --git a/docs/models/documentspecunion.md b/docs/models/documentspecunion.md index 233fac1f..764502e7 100644 --- a/docs/models/documentspecunion.md +++ b/docs/models/documentspecunion.md @@ -21,3 +21,9 @@ value: models.DocumentSpec2 = /* values here */ value: models.DocumentSpec3 = /* values here */ ``` +### `models.DocumentSpec4` + +```python +value: models.DocumentSpec4 = /* values here */ +``` + diff --git a/docs/models/feedentry.md b/docs/models/feedentry.md index a4f499b8..d5dc57ee 100644 --- a/docs/models/feedentry.md +++ b/docs/models/feedentry.md @@ -17,6 +17,7 @@ | `document` | [Optional[models.Document]](../models/document.md) | :heavy_minus_sign: | N/A | | | `event` | [Optional[models.CalendarEvent]](../models/calendarevent.md) | :heavy_minus_sign: | N/A | | | `announcement` | [Optional[models.Announcement]](../models/announcement.md) | :heavy_minus_sign: | N/A | {
"draftId": 342
} | +| `digest` | [Optional[models.Digest]](../models/digest.md) | :heavy_minus_sign: | N/A | | | `collection` | [Optional[models.Collection]](../models/collection.md) | :heavy_minus_sign: | N/A | | | `collection_item` | [Optional[models.CollectionItem]](../models/collectionitem.md) | :heavy_minus_sign: | N/A | | | `person` | [Optional[models.Person]](../models/person.md) | :heavy_minus_sign: | N/A | {
"name": "George Clooney",
"obfuscatedId": "abc123"
} | diff --git a/docs/models/feedrequestcategory.md b/docs/models/feedrequestcategory.md index 63a39354..070f336d 100644 --- a/docs/models/feedrequestcategory.md +++ b/docs/models/feedrequestcategory.md @@ -27,4 +27,5 @@ | `ZERO_STATE_WORKFLOW_FAVORITES` | ZERO_STATE_WORKFLOW_FAVORITES | | `ZERO_STATE_WORKFLOW_POPULAR` | ZERO_STATE_WORKFLOW_POPULAR | | `ZERO_STATE_WORKFLOW_SUGGESTION` | ZERO_STATE_WORKFLOW_SUGGESTION | -| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | \ No newline at end of file +| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | +| `DAILY_DIGEST` | DAILY_DIGEST | \ No newline at end of file diff --git a/docs/models/feedresultcategory.md b/docs/models/feedresultcategory.md index ebff48c8..3a70f49a 100644 --- a/docs/models/feedresultcategory.md +++ b/docs/models/feedresultcategory.md @@ -29,4 +29,5 @@ Category of the result, one of the requested categories in incoming request. | `ZERO_STATE_WORKFLOW_FAVORITES` | ZERO_STATE_WORKFLOW_FAVORITES | | `ZERO_STATE_WORKFLOW_POPULAR` | ZERO_STATE_WORKFLOW_POPULAR | | `ZERO_STATE_WORKFLOW_SUGGESTION` | ZERO_STATE_WORKFLOW_SUGGESTION | -| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | \ No newline at end of file +| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | +| `DAILY_DIGEST` | DAILY_DIGEST | \ No newline at end of file diff --git a/docs/models/getchatfilesrequest.md b/docs/models/getchatfilesrequest.md index 13d9edec..15006766 100644 --- a/docs/models/getchatfilesrequest.md +++ b/docs/models/getchatfilesrequest.md @@ -3,6 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ---------------------- | ---------------------- | ---------------------- | ---------------------- | -| `file_ids` | List[*str*] | :heavy_check_mark: | IDs of files to fetch. | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `file_ids` | List[*str*] | :heavy_check_mark: | IDs of files to fetch. | +| `chat_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the chat that contains the chat file. | \ No newline at end of file diff --git a/docs/models/group.md b/docs/models/group.md index eafa63db..c1d48433 100644 --- a/docs/models/group.md +++ b/docs/models/group.md @@ -8,4 +8,5 @@ | `type` | [models.GroupType](../models/grouptype.md) | :heavy_check_mark: | The type of user group | | `id` | *str* | :heavy_check_mark: | A unique identifier for the group. May be the same as name. | | `name` | *Optional[str]* | :heavy_minus_sign: | Name of the group. | -| `datasource_instance` | *Optional[str]* | :heavy_minus_sign: | Datasource instance if the group belongs to one e.g. external groups. | \ No newline at end of file +| `datasource_instance` | *Optional[str]* | :heavy_minus_sign: | Datasource instance if the group belongs to one e.g. external groups. | +| `provisioning_id` | *Optional[str]* | :heavy_minus_sign: | identifier for greenlist provisioning, aka sciokey | \ No newline at end of file diff --git a/docs/models/justificationtype.md b/docs/models/justificationtype.md index db76867f..4bcceecf 100644 --- a/docs/models/justificationtype.md +++ b/docs/models/justificationtype.md @@ -39,4 +39,5 @@ Type of the justification. | `ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION` | ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION | | `ZERO_STATE_STATIC_WORKFLOW_SUGGESTION` | ZERO_STATE_STATIC_WORKFLOW_SUGGESTION | | `ZERO_STATE_AGENT_SUGGESTION` | ZERO_STATE_AGENT_SUGGESTION | -| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | \ No newline at end of file +| `PERSONALIZED_CHAT_SUGGESTION` | PERSONALIZED_CHAT_SUGGESTION | +| `DAILY_DIGEST` | DAILY_DIGEST | \ No newline at end of file diff --git a/docs/models/messagetype.md b/docs/models/messagetype.md index 7f2cd944..bbaf0ff5 100644 --- a/docs/models/messagetype.md +++ b/docs/models/messagetype.md @@ -14,4 +14,5 @@ Semantically groups content of a certain type. It can be used for purposes such | `DEBUG_EXTERNAL` | DEBUG_EXTERNAL | | `ERROR` | ERROR | | `HEADING` | HEADING | -| `WARNING` | WARNING | \ No newline at end of file +| `WARNING` | WARNING | +| `SERVER_TOOL` | SERVER_TOOL | \ No newline at end of file diff --git a/docs/models/responsebody1.md b/docs/models/responsebody1.md new file mode 100644 index 00000000..11d2fa8c --- /dev/null +++ b/docs/models/responsebody1.md @@ -0,0 +1,9 @@ +# ResponseBody1 + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `collection` | [models.Collection](../models/collection.md) | :heavy_check_mark: | N/A | +| `error` | [Optional[models.CollectionError]](../models/collectionerror.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/responsebody2.md b/docs/models/responsebody2.md new file mode 100644 index 00000000..5a64d4a2 --- /dev/null +++ b/docs/models/responsebody2.md @@ -0,0 +1,9 @@ +# ResponseBody2 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `collection` | [Optional[models.Collection]](../models/collection.md) | :heavy_minus_sign: | N/A | +| `error` | [models.CollectionError](../models/collectionerror.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/sectiontype.md b/docs/models/sectiontype.md new file mode 100644 index 00000000..efde2430 --- /dev/null +++ b/docs/models/sectiontype.md @@ -0,0 +1,12 @@ +# SectionType + +Type of the section. This defines how the section should be interpreted and rendered in the digest. + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `CHANNEL` | CHANNEL | +| `MENTIONS` | MENTIONS | +| `TOPIC` | TOPIC | \ No newline at end of file diff --git a/docs/models/updatetype.md b/docs/models/updatetype.md new file mode 100644 index 00000000..36f63fe0 --- /dev/null +++ b/docs/models/updatetype.md @@ -0,0 +1,11 @@ +# UpdateType + +Optional type classification for the update. + + +## Values + +| Name | Value | +| ------------- | ------------- | +| `ACTIONABLE` | ACTIONABLE | +| `INFORMATIVE` | INFORMATIVE | \ No newline at end of file diff --git a/docs/sdks/clientchat/README.md b/docs/sdks/clientchat/README.md index 0476d9e3..cf994862 100644 --- a/docs/sdks/clientchat/README.md +++ b/docs/sdks/clientchat/README.md @@ -340,6 +340,7 @@ with Glean( | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | | `file_ids` | List[*str*] | :heavy_check_mark: | IDs of files to fetch. | | `timezone_offset` | *Optional[int]* | :heavy_minus_sign: | The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. | +| `chat_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the chat that contains the chat file. | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | ### Response diff --git a/docs/sdks/clientdocuments/README.md b/docs/sdks/clientdocuments/README.md index 421ef846..a731f32c 100644 --- a/docs/sdks/clientdocuments/README.md +++ b/docs/sdks/clientdocuments/README.md @@ -158,7 +158,7 @@ Generate an AI summary of the requested documents. ```python -from glean.api_client import Glean +from glean.api_client import Glean, models import os @@ -167,7 +167,10 @@ with Glean( ) as glean: res = glean.client.documents.summarize(document_specs=[ - {}, + { + "ugc_type": models.DocumentSpecUgcType2.CHATS, + "ugc_id": "", + }, ]) # Handle response diff --git a/docs/sdks/collections/README.md b/docs/sdks/collections/README.md index 43979a3b..69992bcd 100644 --- a/docs/sdks/collections/README.md +++ b/docs/sdks/collections/README.md @@ -127,7 +127,7 @@ with Glean( ### Response -**[models.CreateCollectionResponse](../../models/createcollectionresponse.md)** +**[models.CreatecollectionResponse](../../models/createcollectionresponse.md)** ### Errors diff --git a/pyproject.toml b/pyproject.toml index eed71917..75a2945e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "glean-api-client" -version = "0.7.3" +version = "0.7.4" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Glean Technologies, Inc." }] license = "MIT" diff --git a/speakeasyusagegen/.speakeasy/logs/naming.log b/speakeasyusagegen/.speakeasy/logs/naming.log index d9641c8d..6fbcea61 100644 --- a/speakeasyusagegen/.speakeasy/logs/naming.log +++ b/speakeasyusagegen/.speakeasy/logs/naming.log @@ -7,6 +7,18 @@ DEBUG add_name: Renamed to "DocumentSpec" DEBUG add_name: Renamed to "DocumentSpec" labels: "scope:shared refName:DocumentSpec" registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:3 originalName:" +DEBUG add_name: Renamed to "DocumentSpec" + labels: "scope:shared refName:DocumentSpec" + registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:4 originalName:" +DEBUG add_name: Renamed to "ResponseBody" + labels: "operation:createcollection operationTag:client.collections requestResponse:response oneOf:ResponseBody" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json oneOf:ResponseBody oneOfPosition:1 originalName:" +DEBUG add_name: Renamed to "ResponseBody" + labels: "operation:createcollection operationTag:client.collections requestResponse:response oneOf:ResponseBody" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json oneOf:ResponseBody oneOfPosition:2 originalName:" +DEBUG prepend_op_id: Renamed to "createcollection_ResponseBody" + labels: "original_name:ResponseBody operation:createcollection operationTag:client.collections requestResponse:response data_type:union" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json originalName:ResponseBody" DEBUG add_name: Renamed to "DocumentOrError" labels: "scope:shared refName:DocumentOrError" registrationID: "scope:shared refType:Schemas refName:DocumentOrError component:true oneOfPosition:2 originalName:" @@ -129,7 +141,7 @@ DEBUG discriminated: Renamed to "CustomDatasourceConfig_connectorType" registrationID: "scope:shared refType:Schemas refName:CustomDatasourceConfig originalName:connectorType" DEBUG ---- Renaming 4 types with name "DocumentSpec" --- +--- Renaming 5 types with name "DocumentSpec" --- DEBUG discriminated: Renamed component to "DocumentSpec_union" labels: "original_name:DocumentSpec scope:shared data_type:union" registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true originalName:DocumentSpec" @@ -142,12 +154,24 @@ DEBUG incremented: Renamed to "DocumentSpec_2" DEBUG incremented: Renamed to "DocumentSpec_3" labels: "scope:shared refName:DocumentSpec duplicate_count:3" registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:3 originalName:" +DEBUG incremented: Renamed to "DocumentSpec_4" + labels: "scope:shared refName:DocumentSpec duplicate_count:4" + registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:4 originalName:" DEBUG ---- Renaming 2 types with name "ugcType" --- +--- Renaming 3 types with name "ugcType" --- DEBUG discriminated: Renamed to "DocumentSpec_ugcType" labels: "original_name:ugcType scope:shared data_type:enum refName:DocumentSpec" registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:3 originalName:ugcType" +DEBUG discriminated: Renamed to "DocumentSpec_ugcType" + labels: "original_name:ugcType scope:shared data_type:enum refName:DocumentSpec" + registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:4 originalName:ugcType" +DEBUG incremented: Renamed to "DocumentSpec_ugcType_1" + labels: "original_name:ugcType scope:shared data_type:enum refName:DocumentSpec duplicate_count:1" + registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:3 originalName:ugcType" +DEBUG incremented: Renamed to "DocumentSpec_ugcType_2" + labels: "original_name:ugcType scope:shared data_type:enum refName:DocumentSpec duplicate_count:2" + registrationID: "scope:shared refType:Schemas refName:DocumentSpec component:true oneOfPosition:4 originalName:ugcType" DEBUG --- Renaming 7 types with name "type" --- @@ -282,10 +306,7 @@ DEBUG discriminated: Renamed to "agent_enum" registrationID: "scope:shared refType:Schemas refName:AgentConfig originalName:agent" DEBUG ---- Renaming 3 types with name "errorCode" --- -DEBUG discriminated: Renamed to "CreateCollectionResponse_errorCode" - labels: "original_name:errorCode scope:shared data_type:enum refName:CreateCollectionResponse" - registrationID: "scope:shared refType:Schemas refName:CreateCollectionResponse originalName:errorCode" +--- Renaming 2 types with name "errorCode" --- DEBUG discriminated: Renamed to "CollectionError_errorCode" labels: "original_name:errorCode scope:shared data_type:enum refName:CollectionError" registrationID: "scope:shared refType:Schemas refName:CollectionError originalName:errorCode" @@ -346,6 +367,18 @@ DEBUG discriminated: Renamed to "DocumentVisibilityOverride_override" DEBUG discriminated: Renamed to "DocumentVisibilityUpdateResult_override" labels: "original_name:override scope:shared data_type:enum refName:DocumentVisibilityUpdateResult" registrationID: "scope:shared refType:Schemas refName:DocumentVisibilityUpdateResult originalName:override" +DEBUG + +--- Renaming 2 types with name "ResponseBody" --- +DEBUG incremented: Renamed to "ResponseBody_1" + labels: "operation:createcollection operationTag:client.collections requestResponse:response oneOf:ResponseBody duplicate_count:1" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json oneOf:ResponseBody oneOfPosition:1 originalName:" +DEBUG incremented: Renamed to "ResponseBody_2" + labels: "operation:createcollection operationTag:client.collections requestResponse:response oneOf:ResponseBody duplicate_count:2" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json oneOf:ResponseBody oneOfPosition:2 originalName:" +DEBUG prepend_op_id: N/A rename "createcollection_ResponseBody" + labels: "original_name:ResponseBody operation:createcollection operationTag:client.collections requestResponse:response data_type:union" + registrationID: "scope:operations operationTag:client.collections operation:createcollection requestResponse:response responseStatusCode:200 responseMediaType:application/json originalName:ResponseBody" DEBUG prepend_op_id: N/A rename "listpins_request" labels: "original_name:request operation:listpins operationTag:client.pins" registrationID: "scope:operations operationTag:client.pins operation:listpins requestResponse:request originalName:RequestBody" @@ -409,7 +442,9 @@ CreateAnnouncementRequest (startTime: date-time, endTime: date-time, title: stri DocumentSpec1 (url: string) DocumentSpec2 (id: string) DocumentSpec3 (ugcType: enum, contentId: integer, docType: string) - DocumentSpecUgcType (enum: ANNOUNCEMENTS, ANSWERS, COLLECTIONS ...) + DocumentSpecUgcType1 (enum: ANNOUNCEMENTS, ANSWERS, COLLECTIONS ...) + DocumentSpec4 (ugcType: enum, ugcId: string, docType: string) + DocumentSpecUgcType2 (enum: ANNOUNCEMENTS, ANSWERS, COLLECTIONS ...) TextRange (startIndex: integer, endIndex: integer, type: enum ...) TextRangeType (enum: BOLD, CITATION, HIGHLIGHT ...) DocumentSection (title: string, url: string) @@ -608,7 +643,7 @@ UploadchatfilesRequest (timezoneOffset: integer, UploadChatFilesRequest: UploadC UploadchatfilesResponse (HttpMeta: HTTPMetadata, UploadChatFilesResponse: UploadChatFilesResponse) UploadChatFilesResponse (files: array) GetchatfilesRequest (timezoneOffset: integer, GetChatFilesRequest: GetChatFilesRequest) - GetChatFilesRequest (fileIds: array) + GetChatFilesRequest (fileIds: array, chatId: string) GetchatfilesResponse (HttpMeta: HTTPMetadata, GetChatFilesResponse: GetChatFilesResponse) GetChatFilesResponse (files: map) DeletechatfilesRequest (timezoneOffset: integer, DeleteChatFilesRequest: DeleteChatFilesRequest) @@ -648,11 +683,12 @@ AddcollectionitemsResponse (HttpMeta: HTTPMetadata, AddCollectionItemsResponse: AddCollectionItemsError (errorType: enum) AddCollectionItemsErrorErrorType (enum: EXISTING_ITEM) CreateCollectionRequest (name: string, description: string, addedRoles: array ...) -CreatecollectionResponse (HttpMeta: HTTPMetadata, CreateCollectionResponse: CreateCollectionResponse) - CreateCollectionResponse (name: string, description: string, addedRoles: array ...) - CreateCollectionResponseErrorCode (enum: NAME_EXISTS, NOT_FOUND, COLLECTION_PINNED ...) - CollectionError (errorCode: enum) - CollectionErrorErrorCode (enum: NAME_EXISTS, NOT_FOUND, COLLECTION_PINNED ...) +CreatecollectionResponse (HttpMeta: HTTPMetadata, oneOf: union) + CreatecollectionResponseBody (union) + ResponseBody1 (collection: Collection, error: CollectionError) + CollectionError (errorCode: enum) + CollectionErrorErrorCode (enum: NAME_EXISTS, NOT_FOUND, COLLECTION_PINNED ...) + ResponseBody2 (collection: Collection, error: CollectionError) CollectionError (error) DeleteCollectionRequest (ids: array, allowedDatasource: string) DeletecollectionResponse (HttpMeta: HTTPMetadata) @@ -785,6 +821,11 @@ FeedResponse (HttpMeta: HTTPMetadata, FeedResponse: FeedResponse) GeneratedAttachment (strategyName: EventStrategyName, documents: array, person: Person ...) StructuredLink (name: string, url: string, iconConfig: IconConfig) GeneratedAttachmentContent (displayHeader: string, text: string) + Digest (podcastFileId: string, podcastDuration: float32, digestDate: string ...) + DigestSection (id: string, type: SectionType, displayName: string ...) + SectionType (enum: CHANNEL, MENTIONS, TOPIC) + DigestUpdate (url: string, title: string, datasource: string ...) + UpdateType (enum: ACTIONABLE, INFORMATIVE) ChatSuggestion (query: string, feature: string) PromptTemplateResult (promptTemplate: PromptTemplate, trackingToken: string, favoriteInfo: FavoriteInfo ...) PromptTemplate (name: string, template: string, applicationId: string ...) diff --git a/src/glean/api_client/_version.py b/src/glean/api_client/_version.py index d09cffc0..a5af5190 100644 --- a/src/glean/api_client/_version.py +++ b/src/glean/api_client/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "glean" -__version__: str = "0.7.3" +__version__: str = "0.7.4" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.687.13" -__user_agent__: str = "speakeasy-sdk/python 0.7.3 2.687.13 0.9.0 glean" +__gen_version__: str = "2.709.0" +__user_agent__: str = "speakeasy-sdk/python 0.7.4 2.709.0 0.9.0 glean" try: if __package__ is not None: diff --git a/src/glean/api_client/client_chat.py b/src/glean/api_client/client_chat.py index c36f2ba2..f06f608e 100644 --- a/src/glean/api_client/client_chat.py +++ b/src/glean/api_client/client_chat.py @@ -1373,6 +1373,7 @@ def retrieve_files( *, file_ids: List[str], timezone_offset: Optional[int] = None, + chat_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1384,6 +1385,7 @@ def retrieve_files( :param file_ids: IDs of files to fetch. :param timezone_offset: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + :param chat_id: The ID of the chat that contains the chat file. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1403,6 +1405,7 @@ def retrieve_files( timezone_offset=timezone_offset, get_chat_files_request=models.GetChatFilesRequest( file_ids=file_ids, + chat_id=chat_id, ), ) @@ -1468,6 +1471,7 @@ async def retrieve_files_async( *, file_ids: List[str], timezone_offset: Optional[int] = None, + chat_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -1479,6 +1483,7 @@ async def retrieve_files_async( :param file_ids: IDs of files to fetch. :param timezone_offset: The offset of the client's timezone in minutes from UTC. e.g. PDT is -420 because it's 7 hours behind UTC. + :param chat_id: The ID of the chat that contains the chat file. :param retries: Override the default retry configuration for this method :param server_url: Override the default server URL for this method :param timeout_ms: Override the default request timeout configuration for this method in milliseconds @@ -1498,6 +1503,7 @@ async def retrieve_files_async( timezone_offset=timezone_offset, get_chat_files_request=models.GetChatFilesRequest( file_ids=file_ids, + chat_id=chat_id, ), ) diff --git a/src/glean/api_client/collections.py b/src/glean/api_client/collections.py index 0dcf3044..5ab397c6 100644 --- a/src/glean/api_client/collections.py +++ b/src/glean/api_client/collections.py @@ -234,7 +234,7 @@ def create( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CreateCollectionResponse: + ) -> models.CreatecollectionResponse: r"""Create Collection Create a publicly visible (empty) Collection of documents. @@ -329,7 +329,7 @@ def create( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CreateCollectionResponse, http_res) + return unmarshal_json_response(models.CreatecollectionResponse, http_res) if utils.match_response(http_res, "422", "application/json"): response_data = unmarshal_json_response( errors.CollectionErrorData, http_res @@ -374,7 +374,7 @@ async def create_async( server_url: Optional[str] = None, timeout_ms: Optional[int] = None, http_headers: Optional[Mapping[str, str]] = None, - ) -> models.CreateCollectionResponse: + ) -> models.CreatecollectionResponse: r"""Create Collection Create a publicly visible (empty) Collection of documents. @@ -469,7 +469,7 @@ async def create_async( response_data: Any = None if utils.match_response(http_res, "200", "application/json"): - return unmarshal_json_response(models.CreateCollectionResponse, http_res) + return unmarshal_json_response(models.CreatecollectionResponse, http_res) if utils.match_response(http_res, "422", "application/json"): response_data = unmarshal_json_response( errors.CollectionErrorData, http_res diff --git a/src/glean/api_client/errors/collectionerror.py b/src/glean/api_client/errors/collectionerror.py index 686fff1a..8acd8b4b 100644 --- a/src/glean/api_client/errors/collectionerror.py +++ b/src/glean/api_client/errors/collectionerror.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from dataclasses import dataclass, field from glean.api_client.errors import GleanBaseError from glean.api_client.models import collectionerror as models_collectionerror from glean.api_client.types import BaseModel @@ -17,8 +18,9 @@ class CollectionErrorData(BaseModel): ] +@dataclass(frozen=True) class CollectionError(GleanBaseError): - data: CollectionErrorData + data: CollectionErrorData = field(hash=False) def __init__( self, @@ -28,4 +30,4 @@ def __init__( ): message = body or raw_response.text super().__init__(message, raw_response, body) - self.data = data + object.__setattr__(self, "data", data) diff --git a/src/glean/api_client/errors/gleanbaseerror.py b/src/glean/api_client/errors/gleanbaseerror.py index b3ca1543..6b0969d7 100644 --- a/src/glean/api_client/errors/gleanbaseerror.py +++ b/src/glean/api_client/errors/gleanbaseerror.py @@ -2,25 +2,29 @@ import httpx from typing import Optional +from dataclasses import dataclass, field +@dataclass(frozen=True) class GleanBaseError(Exception): """The base class for all HTTP error responses.""" message: str status_code: int body: str - headers: httpx.Headers - raw_response: httpx.Response + headers: httpx.Headers = field(hash=False) + raw_response: httpx.Response = field(hash=False) def __init__( self, message: str, raw_response: httpx.Response, body: Optional[str] = None ): - self.message = message - self.status_code = raw_response.status_code - self.body = body if body is not None else raw_response.text - self.headers = raw_response.headers - self.raw_response = raw_response + object.__setattr__(self, "message", message) + object.__setattr__(self, "status_code", raw_response.status_code) + object.__setattr__( + self, "body", body if body is not None else raw_response.text + ) + object.__setattr__(self, "headers", raw_response.headers) + object.__setattr__(self, "raw_response", raw_response) def __str__(self): return self.message diff --git a/src/glean/api_client/errors/gleandataerror.py b/src/glean/api_client/errors/gleandataerror.py index f2ac2305..a17d348d 100644 --- a/src/glean/api_client/errors/gleandataerror.py +++ b/src/glean/api_client/errors/gleandataerror.py @@ -1,6 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from dataclasses import dataclass, field from glean.api_client.errors import GleanBaseError from glean.api_client.models import ( errormessage as models_errormessage, @@ -36,8 +37,9 @@ class GleanDataErrorData(BaseModel): ] = None +@dataclass(frozen=True) class GleanDataError(GleanBaseError): - data: GleanDataErrorData + data: GleanDataErrorData = field(hash=False) def __init__( self, @@ -47,4 +49,4 @@ def __init__( ): message = body or raw_response.text super().__init__(message, raw_response, body) - self.data = data + object.__setattr__(self, "data", data) diff --git a/src/glean/api_client/errors/gleanerror.py b/src/glean/api_client/errors/gleanerror.py index 272b00ca..10bef4a8 100644 --- a/src/glean/api_client/errors/gleanerror.py +++ b/src/glean/api_client/errors/gleanerror.py @@ -2,12 +2,14 @@ import httpx from typing import Optional +from dataclasses import dataclass from glean.api_client.errors import GleanBaseError MAX_MESSAGE_LEN = 10_000 +@dataclass(frozen=True) class GleanError(GleanBaseError): """The fallback error class if no more specific error class is matched.""" diff --git a/src/glean/api_client/errors/no_response_error.py b/src/glean/api_client/errors/no_response_error.py index f98beea2..b710ea2b 100644 --- a/src/glean/api_client/errors/no_response_error.py +++ b/src/glean/api_client/errors/no_response_error.py @@ -1,12 +1,16 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" +from dataclasses import dataclass + + +@dataclass(frozen=True) class NoResponseError(Exception): """Error raised when no HTTP response is received from the server.""" message: str def __init__(self, message: str = "No response received"): - self.message = message + object.__setattr__(self, "message", message) super().__init__(message) def __str__(self): diff --git a/src/glean/api_client/errors/responsevalidationerror.py b/src/glean/api_client/errors/responsevalidationerror.py index 0c279c12..b4c200af 100644 --- a/src/glean/api_client/errors/responsevalidationerror.py +++ b/src/glean/api_client/errors/responsevalidationerror.py @@ -2,10 +2,12 @@ import httpx from typing import Optional +from dataclasses import dataclass from glean.api_client.errors import GleanBaseError +@dataclass(frozen=True) class ResponseValidationError(GleanBaseError): """Error raised when there is a type mismatch between the response data and the expected Pydantic model.""" diff --git a/src/glean/api_client/models/__init__.py b/src/glean/api_client/models/__init__.py index fc9afeb6..ee4959dc 100644 --- a/src/glean/api_client/models/__init__.py +++ b/src/glean/api_client/models/__init__.py @@ -301,15 +301,18 @@ CreateAuthTokenResponse, CreateAuthTokenResponseTypedDict, ) + from .createcollectionop import ( + CreatecollectionResponse, + CreatecollectionResponseTypedDict, + ResponseBody1, + ResponseBody1TypedDict, + ResponseBody2, + ResponseBody2TypedDict, + ) from .createcollectionrequest import ( CreateCollectionRequest, CreateCollectionRequestTypedDict, ) - from .createcollectionresponse import ( - CreateCollectionResponse, - CreateCollectionResponseErrorCode, - CreateCollectionResponseTypedDict, - ) from .createdlpreportrequest import ( CreateDlpReportRequest, CreateDlpReportRequestTypedDict, @@ -455,6 +458,9 @@ ) from .deleteteamrequest import DeleteTeamRequest, DeleteTeamRequestTypedDict from .deleteuserrequest import DeleteUserRequest, DeleteUserRequestTypedDict + from .digest import Digest, DigestTypedDict + from .digestsection import DigestSection, DigestSectionTypedDict + from .digestupdate import DigestUpdate, DigestUpdateTypedDict from .disambiguation import Disambiguation, DisambiguationTypedDict from .displayablelistitemuiconfig import ( DisplayableListItemUIConfig, @@ -492,7 +498,10 @@ DocumentSpec2TypedDict, DocumentSpec3, DocumentSpec3TypedDict, - DocumentSpecUgcType, + DocumentSpec4, + DocumentSpec4TypedDict, + DocumentSpecUgcType1, + DocumentSpecUgcType2, DocumentSpecUnion, DocumentSpecUnionTypedDict, ) @@ -992,6 +1001,7 @@ ) from .searchresultprominenceenum import SearchResultProminenceEnum from .searchwarning import SearchWarning, SearchWarningTypedDict, WarningType + from .sectiontype import SectionType from .security import Security, SecurityTypedDict from .seenfeedbackinfo import SeenFeedbackInfo, SeenFeedbackInfoTypedDict from .sensitivecontentoptions import ( @@ -1117,6 +1127,7 @@ UpdateShortcutResponse, UpdateShortcutResponseTypedDict, ) + from .updatetype import UpdateType from .uploadchatfilesop import ( UploadchatfilesRequestRequest, UploadchatfilesRequestRequestTypedDict, @@ -1438,9 +1449,6 @@ "CreateAuthTokenResponseTypedDict", "CreateCollectionRequest", "CreateCollectionRequestTypedDict", - "CreateCollectionResponse", - "CreateCollectionResponseErrorCode", - "CreateCollectionResponseTypedDict", "CreateDlpReportRequest", "CreateDlpReportRequestTypedDict", "CreateDlpReportResponse", @@ -1449,6 +1457,8 @@ "CreateShortcutRequestTypedDict", "CreateShortcutResponse", "CreateShortcutResponseTypedDict", + "CreatecollectionResponse", + "CreatecollectionResponseTypedDict", "CustomDataValue", "CustomDataValueTypedDict", "CustomDatasourceConfig", @@ -1546,6 +1556,12 @@ "DeletechatfilesRequestRequestTypedDict", "DeletechatsRequestRequest", "DeletechatsRequestRequestTypedDict", + "Digest", + "DigestSection", + "DigestSectionTypedDict", + "DigestTypedDict", + "DigestUpdate", + "DigestUpdateTypedDict", "Direction", "Disambiguation", "DisambiguationTypedDict", @@ -1590,7 +1606,10 @@ "DocumentSpec2TypedDict", "DocumentSpec3", "DocumentSpec3TypedDict", - "DocumentSpecUgcType", + "DocumentSpec4", + "DocumentSpec4TypedDict", + "DocumentSpecUgcType1", + "DocumentSpecUgcType2", "DocumentSpecUnion", "DocumentSpecUnionTypedDict", "DocumentStatusResponse", @@ -2005,6 +2024,10 @@ "ReportStatusResponseStatus", "ReportStatusResponseTypedDict", "RequestType", + "ResponseBody1", + "ResponseBody1TypedDict", + "ResponseBody2", + "ResponseBody2TypedDict", "ResponseHint", "ResponseMetadata", "ResponseMetadataTypedDict", @@ -2047,6 +2070,7 @@ "SearchResultTypedDict", "SearchWarning", "SearchWarningTypedDict", + "SectionType", "Security", "SecurityTypedDict", "SeenFeedbackInfo", @@ -2172,6 +2196,7 @@ "UpdateShortcutRequestTypedDict", "UpdateShortcutResponse", "UpdateShortcutResponseTypedDict", + "UpdateType", "UpdatepolicyRequest", "UpdatepolicyRequestTypedDict", "UploadChatFilesRequest", @@ -2420,11 +2445,14 @@ "CreateAnswerRequestTypedDict": ".createanswerrequest", "CreateAuthTokenResponse": ".createauthtokenresponse", "CreateAuthTokenResponseTypedDict": ".createauthtokenresponse", + "CreatecollectionResponse": ".createcollectionop", + "CreatecollectionResponseTypedDict": ".createcollectionop", + "ResponseBody1": ".createcollectionop", + "ResponseBody1TypedDict": ".createcollectionop", + "ResponseBody2": ".createcollectionop", + "ResponseBody2TypedDict": ".createcollectionop", "CreateCollectionRequest": ".createcollectionrequest", "CreateCollectionRequestTypedDict": ".createcollectionrequest", - "CreateCollectionResponse": ".createcollectionresponse", - "CreateCollectionResponseErrorCode": ".createcollectionresponse", - "CreateCollectionResponseTypedDict": ".createcollectionresponse", "CreateDlpReportRequest": ".createdlpreportrequest", "CreateDlpReportRequestTypedDict": ".createdlpreportrequest", "CreateDlpReportResponse": ".createdlpreportresponse", @@ -2523,6 +2551,12 @@ "DeleteTeamRequestTypedDict": ".deleteteamrequest", "DeleteUserRequest": ".deleteuserrequest", "DeleteUserRequestTypedDict": ".deleteuserrequest", + "Digest": ".digest", + "DigestTypedDict": ".digest", + "DigestSection": ".digestsection", + "DigestSectionTypedDict": ".digestsection", + "DigestUpdate": ".digestupdate", + "DigestUpdateTypedDict": ".digestupdate", "Disambiguation": ".disambiguation", "DisambiguationTypedDict": ".disambiguation", "DisplayableListItemUIConfig": ".displayablelistitemuiconfig", @@ -2561,7 +2595,10 @@ "DocumentSpec2TypedDict": ".documentspec_union", "DocumentSpec3": ".documentspec_union", "DocumentSpec3TypedDict": ".documentspec_union", - "DocumentSpecUgcType": ".documentspec_union", + "DocumentSpec4": ".documentspec_union", + "DocumentSpec4TypedDict": ".documentspec_union", + "DocumentSpecUgcType1": ".documentspec_union", + "DocumentSpecUgcType2": ".documentspec_union", "DocumentSpecUnion": ".documentspec_union", "DocumentSpecUnionTypedDict": ".documentspec_union", "DocumentStatusResponse": ".documentstatusresponse", @@ -2966,6 +3003,7 @@ "SearchWarning": ".searchwarning", "SearchWarningTypedDict": ".searchwarning", "WarningType": ".searchwarning", + "SectionType": ".sectiontype", "Security": ".security", "SecurityTypedDict": ".security", "SeenFeedbackInfo": ".seenfeedbackinfo", @@ -3080,6 +3118,7 @@ "UpdateShortcutRequestTypedDict": ".updateshortcutrequest", "UpdateShortcutResponse": ".updateshortcutresponse", "UpdateShortcutResponseTypedDict": ".updateshortcutresponse", + "UpdateType": ".updatetype", "UploadchatfilesRequestRequest": ".uploadchatfilesop", "UploadchatfilesRequestRequestTypedDict": ".uploadchatfilesop", "File": ".uploadchatfilesrequest", diff --git a/src/glean/api_client/models/chat.py b/src/glean/api_client/models/chat.py index 95ad4589..22eb78f0 100644 --- a/src/glean/api_client/models/chat.py +++ b/src/glean/api_client/models/chat.py @@ -3,7 +3,9 @@ from __future__ import annotations from .chatmessage import ChatMessage, ChatMessageTypedDict from .iconconfig import IconConfig, IconConfigTypedDict +from .objectpermissions import ObjectPermissions, ObjectPermissionsTypedDict from .person import Person, PersonTypedDict +from .userrolespecification import UserRoleSpecification, UserRoleSpecificationTypedDict from glean.api_client.types import BaseModel import pydantic from typing import List, Optional @@ -28,8 +30,11 @@ class ChatTypedDict(TypedDict): r"""The display name of the AI App that this Chat is associated to.""" icon: NotRequired[IconConfigTypedDict] r"""Defines how to render an icon""" + permissions: NotRequired[ObjectPermissionsTypedDict] messages: NotRequired[List[ChatMessageTypedDict]] r"""The chat messages within a Chat.""" + roles: NotRequired[List[UserRoleSpecificationTypedDict]] + r"""A list of roles for this Chat.""" class Chat(BaseModel): @@ -62,5 +67,10 @@ class Chat(BaseModel): icon: Optional[IconConfig] = None r"""Defines how to render an icon""" + permissions: Optional[ObjectPermissions] = None + messages: Optional[List[ChatMessage]] = None r"""The chat messages within a Chat.""" + + roles: Optional[List[UserRoleSpecification]] = None + r"""A list of roles for this Chat.""" diff --git a/src/glean/api_client/models/chatmessage.py b/src/glean/api_client/models/chatmessage.py index df2d9d20..fd66b5ce 100644 --- a/src/glean/api_client/models/chatmessage.py +++ b/src/glean/api_client/models/chatmessage.py @@ -27,6 +27,7 @@ class MessageType(str, Enum): ERROR = "ERROR" HEADING = "HEADING" WARNING = "WARNING" + SERVER_TOOL = "SERVER_TOOL" class ChatMessageTypedDict(TypedDict): diff --git a/src/glean/api_client/models/chatmessagefragment.py b/src/glean/api_client/models/chatmessagefragment.py index 6f2886d6..fb28a83b 100644 --- a/src/glean/api_client/models/chatmessagefragment.py +++ b/src/glean/api_client/models/chatmessagefragment.py @@ -13,7 +13,7 @@ class ChatMessageFragmentTypedDict(TypedDict): - r"""Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file.""" + r"""Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file.""" structured_results: NotRequired[List[StructuredResultTypedDict]] r"""An array of entities in the work graph retrieved via a data request.""" @@ -29,7 +29,7 @@ class ChatMessageFragmentTypedDict(TypedDict): class ChatMessageFragment(BaseModel): - r"""Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file.""" + r"""Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file.""" structured_results: Annotated[ Optional[List[StructuredResult]], pydantic.Field(alias="structuredResults") diff --git a/src/glean/api_client/models/createcollectionop.py b/src/glean/api_client/models/createcollectionop.py new file mode 100644 index 00000000..279215a4 --- /dev/null +++ b/src/glean/api_client/models/createcollectionop.py @@ -0,0 +1,43 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .collection import Collection, CollectionTypedDict +from .collectionerror import CollectionError, CollectionErrorTypedDict +from glean.api_client.types import BaseModel +from typing import Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict + + +class ResponseBody2TypedDict(TypedDict): + error: CollectionErrorTypedDict + collection: NotRequired[CollectionTypedDict] + + +class ResponseBody2(BaseModel): + error: CollectionError + + collection: Optional[Collection] = None + + +class ResponseBody1TypedDict(TypedDict): + collection: CollectionTypedDict + error: NotRequired[CollectionErrorTypedDict] + + +class ResponseBody1(BaseModel): + collection: Collection + + error: Optional[CollectionError] = None + + +CreatecollectionResponseTypedDict = TypeAliasType( + "CreatecollectionResponseTypedDict", + Union[ResponseBody1TypedDict, ResponseBody2TypedDict], +) +r"""OK""" + + +CreatecollectionResponse = TypeAliasType( + "CreatecollectionResponse", Union[ResponseBody1, ResponseBody2] +) +r"""OK""" diff --git a/src/glean/api_client/models/createcollectionresponse.py b/src/glean/api_client/models/createcollectionresponse.py deleted file mode 100644 index 902d8c71..00000000 --- a/src/glean/api_client/models/createcollectionresponse.py +++ /dev/null @@ -1,162 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from .collection import Collection, CollectionTypedDict -from .collectionerror import CollectionError, CollectionErrorTypedDict -from .collectionitem import CollectionItem, CollectionItemTypedDict -from .collectionpinnedmetadata import ( - CollectionPinnedMetadata, - CollectionPinnedMetadataTypedDict, -) -from .facetfilter import FacetFilter, FacetFilterTypedDict -from .objectpermissions import ObjectPermissions, ObjectPermissionsTypedDict -from .person import Person, PersonTypedDict -from .thumbnail import Thumbnail, ThumbnailTypedDict -from .userrolespecification import UserRoleSpecification, UserRoleSpecificationTypedDict -from datetime import datetime -from enum import Enum -from glean.api_client.types import BaseModel -import pydantic -from typing import List, Optional -from typing_extensions import Annotated, NotRequired, TypedDict - - -class CreateCollectionResponseErrorCode(str, Enum): - NAME_EXISTS = "NAME_EXISTS" - NOT_FOUND = "NOT_FOUND" - COLLECTION_PINNED = "COLLECTION_PINNED" - CONCURRENT_HIERARCHY_EDIT = "CONCURRENT_HIERARCHY_EDIT" - HEIGHT_VIOLATION = "HEIGHT_VIOLATION" - WIDTH_VIOLATION = "WIDTH_VIOLATION" - NO_PERMISSIONS = "NO_PERMISSIONS" - - -class CreateCollectionResponseTypedDict(TypedDict): - name: str - r"""The unique name of the Collection.""" - description: str - r"""A brief summary of the Collection's contents.""" - id: int - r"""The unique ID of the Collection.""" - error_code: CreateCollectionResponseErrorCode - added_roles: NotRequired[List[UserRoleSpecificationTypedDict]] - r"""A list of added user roles for the Collection.""" - removed_roles: NotRequired[List[UserRoleSpecificationTypedDict]] - r"""A list of removed user roles for the Collection.""" - audience_filters: NotRequired[List[FacetFilterTypedDict]] - r"""Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search.""" - icon: NotRequired[str] - r"""The emoji icon of this Collection.""" - admin_locked: NotRequired[bool] - r"""Indicates whether edits are allowed for everyone or only admins.""" - parent_id: NotRequired[int] - r"""The parent of this Collection, or 0 if it's a top-level Collection.""" - thumbnail: NotRequired[ThumbnailTypedDict] - allowed_datasource: NotRequired[str] - r"""The datasource type this Collection can hold.""" - permissions: NotRequired[ObjectPermissionsTypedDict] - create_time: NotRequired[datetime] - update_time: NotRequired[datetime] - creator: NotRequired[PersonTypedDict] - updated_by: NotRequired[PersonTypedDict] - item_count: NotRequired[int] - r"""The number of items currently in the Collection. Separated from the actual items so we can grab the count without items.""" - child_count: NotRequired[int] - r"""The number of children Collections. Separated from the actual children so we can grab the count without children.""" - items: NotRequired[List[CollectionItemTypedDict]] - r"""The items in this Collection.""" - pin_metadata: NotRequired[CollectionPinnedMetadataTypedDict] - shortcuts: NotRequired[List[str]] - r"""The names of the shortcuts (Go Links) that point to this Collection.""" - children: NotRequired[List[CollectionTypedDict]] - r"""The children Collections of this Collection.""" - roles: NotRequired[List[UserRoleSpecificationTypedDict]] - r"""A list of user roles for the Collection.""" - collection: NotRequired[CollectionTypedDict] - error: NotRequired[CollectionErrorTypedDict] - - -class CreateCollectionResponse(BaseModel): - name: str - r"""The unique name of the Collection.""" - - description: str - r"""A brief summary of the Collection's contents.""" - - id: int - r"""The unique ID of the Collection.""" - - error_code: Annotated[ - CreateCollectionResponseErrorCode, pydantic.Field(alias="errorCode") - ] - - added_roles: Annotated[ - Optional[List[UserRoleSpecification]], pydantic.Field(alias="addedRoles") - ] = None - r"""A list of added user roles for the Collection.""" - - removed_roles: Annotated[ - Optional[List[UserRoleSpecification]], pydantic.Field(alias="removedRoles") - ] = None - r"""A list of removed user roles for the Collection.""" - - audience_filters: Annotated[ - Optional[List[FacetFilter]], pydantic.Field(alias="audienceFilters") - ] = None - r"""Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search.""" - - icon: Optional[str] = None - r"""The emoji icon of this Collection.""" - - admin_locked: Annotated[Optional[bool], pydantic.Field(alias="adminLocked")] = None - r"""Indicates whether edits are allowed for everyone or only admins.""" - - parent_id: Annotated[Optional[int], pydantic.Field(alias="parentId")] = None - r"""The parent of this Collection, or 0 if it's a top-level Collection.""" - - thumbnail: Optional[Thumbnail] = None - - allowed_datasource: Annotated[ - Optional[str], pydantic.Field(alias="allowedDatasource") - ] = None - r"""The datasource type this Collection can hold.""" - - permissions: Optional[ObjectPermissions] = None - - create_time: Annotated[Optional[datetime], pydantic.Field(alias="createTime")] = ( - None - ) - - update_time: Annotated[Optional[datetime], pydantic.Field(alias="updateTime")] = ( - None - ) - - creator: Optional[Person] = None - - updated_by: Annotated[Optional[Person], pydantic.Field(alias="updatedBy")] = None - - item_count: Annotated[Optional[int], pydantic.Field(alias="itemCount")] = None - r"""The number of items currently in the Collection. Separated from the actual items so we can grab the count without items.""" - - child_count: Annotated[Optional[int], pydantic.Field(alias="childCount")] = None - r"""The number of children Collections. Separated from the actual children so we can grab the count without children.""" - - items: Optional[List[CollectionItem]] = None - r"""The items in this Collection.""" - - pin_metadata: Annotated[ - Optional[CollectionPinnedMetadata], pydantic.Field(alias="pinMetadata") - ] = None - - shortcuts: Optional[List[str]] = None - r"""The names of the shortcuts (Go Links) that point to this Collection.""" - - children: Optional[List[Collection]] = None - r"""The children Collections of this Collection.""" - - roles: Optional[List[UserRoleSpecification]] = None - r"""A list of user roles for the Collection.""" - - collection: Optional[Collection] = None - - error: Optional[CollectionError] = None diff --git a/src/glean/api_client/models/customdatasourceconfig.py b/src/glean/api_client/models/customdatasourceconfig.py index 2a808ccb..635ed2be 100644 --- a/src/glean/api_client/models/customdatasourceconfig.py +++ b/src/glean/api_client/models/customdatasourceconfig.py @@ -34,6 +34,7 @@ class DatasourceCategory(str, Enum): EXTERNAL_SHORTCUT = "EXTERNAL_SHORTCUT" ENTITY = "ENTITY" CALENDAR = "CALENDAR" + AGENTS = "AGENTS" class HideBuiltInFacet(str, Enum): diff --git a/src/glean/api_client/models/digest.py b/src/glean/api_client/models/digest.py new file mode 100644 index 00000000..36da6227 --- /dev/null +++ b/src/glean/api_client/models/digest.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .digestsection import DigestSection, DigestSectionTypedDict +from glean.api_client.types import BaseModel +import pydantic +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class DigestTypedDict(TypedDict): + podcast_file_id: NotRequired[str] + r"""Identifier for the podcast file generated from this digest content.""" + podcast_duration: NotRequired[float] + r"""Duration of the podcast file in seconds.""" + digest_date: NotRequired[str] + r"""The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available.""" + sections: NotRequired[List[DigestSectionTypedDict]] + r"""Array of digest sections from which the podcast was created.""" + + +class Digest(BaseModel): + podcast_file_id: Annotated[Optional[str], pydantic.Field(alias="podcastFileId")] = ( + None + ) + r"""Identifier for the podcast file generated from this digest content.""" + + podcast_duration: Annotated[ + Optional[float], pydantic.Field(alias="podcastDuration") + ] = None + r"""Duration of the podcast file in seconds.""" + + digest_date: Annotated[Optional[str], pydantic.Field(alias="digestDate")] = None + r"""The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available.""" + + sections: Optional[List[DigestSection]] = None + r"""Array of digest sections from which the podcast was created.""" diff --git a/src/glean/api_client/models/digestsection.py b/src/glean/api_client/models/digestsection.py new file mode 100644 index 00000000..97cdffee --- /dev/null +++ b/src/glean/api_client/models/digestsection.py @@ -0,0 +1,49 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .digestupdate import DigestUpdate, DigestUpdateTypedDict +from .sectiontype import SectionType +from glean.api_client.types import BaseModel +import pydantic +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class DigestSectionTypedDict(TypedDict): + id: str + r"""Unique identifier for the digest section.""" + type: SectionType + r"""Type of the section. This defines how the section should be interpreted and rendered in the digest.""" + updates: List[DigestUpdateTypedDict] + r"""List of updates within this digest section.""" + display_name: NotRequired[str] + r"""Human-readable name for the digest section.""" + channel_name: NotRequired[str] + r"""Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend.""" + instance_id: NotRequired[str] + r"""Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend.""" + url: NotRequired[str] + r"""Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section.""" + + +class DigestSection(BaseModel): + id: str + r"""Unique identifier for the digest section.""" + + type: SectionType + r"""Type of the section. This defines how the section should be interpreted and rendered in the digest.""" + + updates: List[DigestUpdate] + r"""List of updates within this digest section.""" + + display_name: Annotated[Optional[str], pydantic.Field(alias="displayName")] = None + r"""Human-readable name for the digest section.""" + + channel_name: Annotated[Optional[str], pydantic.Field(alias="channelName")] = None + r"""Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend.""" + + instance_id: Annotated[Optional[str], pydantic.Field(alias="instanceId")] = None + r"""Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend.""" + + url: Optional[str] = None + r"""Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section.""" diff --git a/src/glean/api_client/models/digestupdate.py b/src/glean/api_client/models/digestupdate.py new file mode 100644 index 00000000..10e4d1cd --- /dev/null +++ b/src/glean/api_client/models/digestupdate.py @@ -0,0 +1,37 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .updatetype import UpdateType +from glean.api_client.types import BaseModel +from typing import Optional +from typing_extensions import NotRequired, TypedDict + + +class DigestUpdateTypedDict(TypedDict): + url: NotRequired[str] + r"""URL link to the content or document.""" + title: NotRequired[str] + r"""Title or headline of the update.""" + datasource: NotRequired[str] + r"""Name or identifier of the data source (e.g., slack, confluence, etc.).""" + summary: NotRequired[str] + r"""Brief summary or description of the update content.""" + type: NotRequired[UpdateType] + r"""Optional type classification for the update.""" + + +class DigestUpdate(BaseModel): + url: Optional[str] = None + r"""URL link to the content or document.""" + + title: Optional[str] = None + r"""Title or headline of the update.""" + + datasource: Optional[str] = None + r"""Name or identifier of the data source (e.g., slack, confluence, etc.).""" + + summary: Optional[str] = None + r"""Brief summary or description of the update content.""" + + type: Optional[UpdateType] = None + r"""Optional type classification for the update.""" diff --git a/src/glean/api_client/models/documentspec_union.py b/src/glean/api_client/models/documentspec_union.py index a6e1da28..c87ae384 100644 --- a/src/glean/api_client/models/documentspec_union.py +++ b/src/glean/api_client/models/documentspec_union.py @@ -8,63 +8,98 @@ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict -class DocumentSpecUgcType(str, Enum): +class DocumentSpecUgcType2(str, Enum): r"""The type of the user generated content (UGC datasource).""" ANNOUNCEMENTS = "ANNOUNCEMENTS" ANSWERS = "ANSWERS" COLLECTIONS = "COLLECTIONS" SHORTCUTS = "SHORTCUTS" + CHATS = "CHATS" + + +class DocumentSpec4TypedDict(TypedDict): + ugc_type: DocumentSpecUgcType2 + r"""The type of the user generated content (UGC datasource).""" + ugc_id: str + r"""The string id for user generated content. Used for CHATS.""" + doc_type: NotRequired[str] + r"""The specific type of the user generated content type.""" + + +class DocumentSpec4(BaseModel): + ugc_type: Annotated[DocumentSpecUgcType2, pydantic.Field(alias="ugcType")] + r"""The type of the user generated content (UGC datasource).""" + + ugc_id: Annotated[str, pydantic.Field(alias="ugcId")] + r"""The string id for user generated content. Used for CHATS.""" + + doc_type: Annotated[Optional[str], pydantic.Field(alias="docType")] = None + r"""The specific type of the user generated content type.""" + + +class DocumentSpecUgcType1(str, Enum): + r"""The type of the user generated content (UGC datasource).""" + + ANNOUNCEMENTS = "ANNOUNCEMENTS" + ANSWERS = "ANSWERS" + COLLECTIONS = "COLLECTIONS" + SHORTCUTS = "SHORTCUTS" + CHATS = "CHATS" class DocumentSpec3TypedDict(TypedDict): - ugc_type: NotRequired[DocumentSpecUgcType] + ugc_type: DocumentSpecUgcType1 r"""The type of the user generated content (UGC datasource).""" - content_id: NotRequired[int] - r"""The id for user generated content.""" + content_id: int + r"""The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS.""" doc_type: NotRequired[str] r"""The specific type of the user generated content type.""" class DocumentSpec3(BaseModel): - ugc_type: Annotated[ - Optional[DocumentSpecUgcType], pydantic.Field(alias="ugcType") - ] = None + ugc_type: Annotated[DocumentSpecUgcType1, pydantic.Field(alias="ugcType")] r"""The type of the user generated content (UGC datasource).""" - content_id: Annotated[Optional[int], pydantic.Field(alias="contentId")] = None - r"""The id for user generated content.""" + content_id: Annotated[int, pydantic.Field(alias="contentId")] + r"""The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS.""" doc_type: Annotated[Optional[str], pydantic.Field(alias="docType")] = None r"""The specific type of the user generated content type.""" class DocumentSpec2TypedDict(TypedDict): - id: NotRequired[str] + id: str r"""The ID of the document.""" class DocumentSpec2(BaseModel): - id: Optional[str] = None + id: str r"""The ID of the document.""" class DocumentSpec1TypedDict(TypedDict): - url: NotRequired[str] + url: str r"""The URL of the document.""" class DocumentSpec1(BaseModel): - url: Optional[str] = None + url: str r"""The URL of the document.""" DocumentSpecUnionTypedDict = TypeAliasType( "DocumentSpecUnionTypedDict", - Union[DocumentSpec1TypedDict, DocumentSpec2TypedDict, DocumentSpec3TypedDict], + Union[ + DocumentSpec1TypedDict, + DocumentSpec2TypedDict, + DocumentSpec3TypedDict, + DocumentSpec4TypedDict, + ], ) DocumentSpecUnion = TypeAliasType( - "DocumentSpecUnion", Union[DocumentSpec1, DocumentSpec2, DocumentSpec3] + "DocumentSpecUnion", + Union[DocumentSpec1, DocumentSpec2, DocumentSpec3, DocumentSpec4], ) diff --git a/src/glean/api_client/models/feedentry.py b/src/glean/api_client/models/feedentry.py index 1584109f..7abf66ea 100644 --- a/src/glean/api_client/models/feedentry.py +++ b/src/glean/api_client/models/feedentry.py @@ -8,6 +8,7 @@ from .collection import Collection, CollectionTypedDict from .collectionitem import CollectionItem, CollectionItemTypedDict from .countinfo import CountInfo, CountInfoTypedDict +from .digest import Digest, DigestTypedDict from .displayablelistitemuiconfig import ( DisplayableListItemUIConfig, DisplayableListItemUIConfigTypedDict, @@ -84,6 +85,7 @@ class JustificationType(str, Enum): ZERO_STATE_STATIC_WORKFLOW_SUGGESTION = "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION" ZERO_STATE_AGENT_SUGGESTION = "ZERO_STATE_AGENT_SUGGESTION" PERSONALIZED_CHAT_SUGGESTION = "PERSONALIZED_CHAT_SUGGESTION" + DAILY_DIGEST = "DAILY_DIGEST" class FeedEntryTypedDict(TypedDict): @@ -105,6 +107,7 @@ class FeedEntryTypedDict(TypedDict): document: NotRequired[DocumentTypedDict] event: NotRequired[CalendarEventTypedDict] announcement: NotRequired[AnnouncementTypedDict] + digest: NotRequired[DigestTypedDict] collection: NotRequired[CollectionTypedDict] collection_item: NotRequired[CollectionItemTypedDict] person: NotRequired[PersonTypedDict] @@ -152,6 +155,8 @@ class FeedEntry(BaseModel): announcement: Optional[Announcement] = None + digest: Optional[Digest] = None + collection: Optional[Collection] = None collection_item: Annotated[ diff --git a/src/glean/api_client/models/feedrequest.py b/src/glean/api_client/models/feedrequest.py index c20d3f3a..aed5d769 100644 --- a/src/glean/api_client/models/feedrequest.py +++ b/src/glean/api_client/models/feedrequest.py @@ -34,6 +34,7 @@ class FeedRequestCategory(str, Enum): ZERO_STATE_WORKFLOW_POPULAR = "ZERO_STATE_WORKFLOW_POPULAR" ZERO_STATE_WORKFLOW_SUGGESTION = "ZERO_STATE_WORKFLOW_SUGGESTION" PERSONALIZED_CHAT_SUGGESTION = "PERSONALIZED_CHAT_SUGGESTION" + DAILY_DIGEST = "DAILY_DIGEST" class FeedRequestTypedDict(TypedDict): diff --git a/src/glean/api_client/models/feedresult.py b/src/glean/api_client/models/feedresult.py index a5e99bac..da88e21a 100644 --- a/src/glean/api_client/models/feedresult.py +++ b/src/glean/api_client/models/feedresult.py @@ -35,6 +35,7 @@ class FeedResultCategory(str, Enum): ZERO_STATE_WORKFLOW_POPULAR = "ZERO_STATE_WORKFLOW_POPULAR" ZERO_STATE_WORKFLOW_SUGGESTION = "ZERO_STATE_WORKFLOW_SUGGESTION" PERSONALIZED_CHAT_SUGGESTION = "PERSONALIZED_CHAT_SUGGESTION" + DAILY_DIGEST = "DAILY_DIGEST" class FeedResultTypedDict(TypedDict): diff --git a/src/glean/api_client/models/getchatfilesrequest.py b/src/glean/api_client/models/getchatfilesrequest.py index 86c92b64..cb6ede12 100644 --- a/src/glean/api_client/models/getchatfilesrequest.py +++ b/src/glean/api_client/models/getchatfilesrequest.py @@ -3,15 +3,20 @@ from __future__ import annotations from glean.api_client.types import BaseModel import pydantic -from typing import List -from typing_extensions import Annotated, TypedDict +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict class GetChatFilesRequestTypedDict(TypedDict): file_ids: List[str] r"""IDs of files to fetch.""" + chat_id: NotRequired[str] + r"""The ID of the chat that contains the chat file.""" class GetChatFilesRequest(BaseModel): file_ids: Annotated[List[str], pydantic.Field(alias="fileIds")] r"""IDs of files to fetch.""" + + chat_id: Annotated[Optional[str], pydantic.Field(alias="chatId")] = None + r"""The ID of the chat that contains the chat file.""" diff --git a/src/glean/api_client/models/group.py b/src/glean/api_client/models/group.py index ede5ff53..d6fc82f7 100644 --- a/src/glean/api_client/models/group.py +++ b/src/glean/api_client/models/group.py @@ -17,6 +17,8 @@ class GroupTypedDict(TypedDict): r"""Name of the group.""" datasource_instance: NotRequired[str] r"""Datasource instance if the group belongs to one e.g. external groups.""" + provisioning_id: NotRequired[str] + r"""identifier for greenlist provisioning, aka sciokey""" class Group(BaseModel): @@ -33,3 +35,8 @@ class Group(BaseModel): Optional[str], pydantic.Field(alias="datasourceInstance") ] = None r"""Datasource instance if the group belongs to one e.g. external groups.""" + + provisioning_id: Annotated[ + Optional[str], pydantic.Field(alias="provisioningId") + ] = None + r"""identifier for greenlist provisioning, aka sciokey""" diff --git a/src/glean/api_client/models/objectdefinition.py b/src/glean/api_client/models/objectdefinition.py index b6cfddb5..400f64bf 100644 --- a/src/glean/api_client/models/objectdefinition.py +++ b/src/glean/api_client/models/objectdefinition.py @@ -30,6 +30,7 @@ class DocCategory(str, Enum): EXTERNAL_SHORTCUT = "EXTERNAL_SHORTCUT" ENTITY = "ENTITY" CALENDAR = "CALENDAR" + AGENTS = "AGENTS" class ObjectDefinitionTypedDict(TypedDict): diff --git a/src/glean/api_client/models/sectiontype.py b/src/glean/api_client/models/sectiontype.py new file mode 100644 index 00000000..067e6954 --- /dev/null +++ b/src/glean/api_client/models/sectiontype.py @@ -0,0 +1,12 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum + + +class SectionType(str, Enum): + r"""Type of the section. This defines how the section should be interpreted and rendered in the digest.""" + + CHANNEL = "CHANNEL" + MENTIONS = "MENTIONS" + TOPIC = "TOPIC" diff --git a/src/glean/api_client/models/updatetype.py b/src/glean/api_client/models/updatetype.py new file mode 100644 index 00000000..06b01a55 --- /dev/null +++ b/src/glean/api_client/models/updatetype.py @@ -0,0 +1,11 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from enum import Enum + + +class UpdateType(str, Enum): + r"""Optional type classification for the update.""" + + ACTIONABLE = "ACTIONABLE" + INFORMATIVE = "INFORMATIVE" diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go b/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go index 7cd6cb7c..371b9023 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1createcollection.go @@ -8,6 +8,7 @@ import ( "mockserver/internal/handler/assert" "mockserver/internal/logging" "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/models/operations" "mockserver/internal/sdk/types" "mockserver/internal/sdk/utils" "mockserver/internal/tracking" @@ -51,166 +52,109 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ http.Error(w, err.Error(), http.StatusBadRequest) return } - var respBody *components.CreateCollectionResponse = &components.CreateCollectionResponse{ - Name: "", - Description: "aw frozen solemnly physically appreciate fluffy that roughly frizzy", - AddedRoles: []components.UserRoleSpecification{ - components.UserRoleSpecification{ - Person: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Role: components.UserRoleOwner, - }, - }, - RemovedRoles: []components.UserRoleSpecification{ - components.UserRoleSpecification{ - Person: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Role: components.UserRoleAnswerModerator, - }, - }, - AudienceFilters: []components.FacetFilter{ - components.FacetFilter{ - FieldName: types.String("type"), - Values: []components.FacetFilterValue{ - components.FacetFilterValue{ - Value: types.String("Spreadsheet"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - components.FacetFilterValue{ - Value: types.String("Presentation"), - RelationType: components.RelationTypeEquals.ToPointer(), + var respBody *operations.CreatecollectionResponseBody = types.Pointer(operations.CreateCreatecollectionResponseBodyResponseBody2( + operations.ResponseBody2{ + Collection: &components.Collection{ + Name: "", + Description: "whole busily jive hawk gee basic minus hence", + AddedRoles: []components.UserRoleSpecification{ + components.UserRoleSpecification{ + Person: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + Role: components.UserRoleAnswerModerator, }, }, - }, - }, - ID: 299869, - Creator: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Items: []components.CollectionItem{ - components.CollectionItem{ - CollectionID: 981434, - CreatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Document: &components.Document{ - ContainerDocument: &components.Document{ - Metadata: &components.DocumentMetadata{ - Datasource: types.String("datasource"), - ObjectType: types.String("Feature Request"), - Container: types.String("container"), - ParentID: types.String("JIRA_EN-1337"), - MimeType: types.String("mimeType"), - DocumentID: types.String("documentId"), - CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - Author: &components.Person{ - Name: "name", - ObfuscatedID: "", - }, - Components: []string{ - "Backend", - "Networking", - }, - Status: types.String("[\"Done\"]"), - CustomData: map[string]components.CustomDataValue{ - "someCustomField": components.CustomDataValue{}, - }, + RemovedRoles: []components.UserRoleSpecification{ + components.UserRoleSpecification{ + Person: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", }, + Role: components.UserRoleViewer, }, - ParentDocument: &components.Document{ - Metadata: &components.DocumentMetadata{ - Datasource: types.String("datasource"), - ObjectType: types.String("Feature Request"), - Container: types.String("container"), - ParentID: types.String("JIRA_EN-1337"), - MimeType: types.String("mimeType"), - DocumentID: types.String("documentId"), - CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - Author: &components.Person{ - Name: "name", - ObfuscatedID: "", - }, - Components: []string{ - "Backend", - "Networking", + }, + AudienceFilters: []components.FacetFilter{ + components.FacetFilter{ + FieldName: types.String("type"), + Values: []components.FacetFilterValue{ + components.FacetFilterValue{ + Value: types.String("Spreadsheet"), + RelationType: components.RelationTypeEquals.ToPointer(), }, - Status: types.String("[\"Done\"]"), - CustomData: map[string]components.CustomDataValue{ - "someCustomField": components.CustomDataValue{}, + components.FacetFilterValue{ + Value: types.String("Presentation"), + RelationType: components.RelationTypeEquals.ToPointer(), }, }, }, - Metadata: &components.DocumentMetadata{ - Datasource: types.String("datasource"), - ObjectType: types.String("Feature Request"), - Container: types.String("container"), - ParentID: types.String("JIRA_EN-1337"), - MimeType: types.String("mimeType"), - DocumentID: types.String("documentId"), - CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - Author: &components.Person{ - Name: "name", - ObfuscatedID: "", - }, - Components: []string{ - "Backend", - "Networking", - }, - Status: types.String("[\"Done\"]"), - CustomData: map[string]components.CustomDataValue{ - "someCustomField": components.CustomDataValue{}, - }, - }, }, - Shortcut: &components.Shortcut{ - InputAlias: "", - CreatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - DestinationDocument: &components.Document{ - ContainerDocument: &components.Document{ - Metadata: &components.DocumentMetadata{ - Datasource: types.String("datasource"), - ObjectType: types.String("Feature Request"), - Container: types.String("container"), - ParentID: types.String("JIRA_EN-1337"), - MimeType: types.String("mimeType"), - DocumentID: types.String("documentId"), - CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - Author: &components.Person{ - Name: "name", - ObfuscatedID: "", - }, - Components: []string{ - "Backend", - "Networking", + ID: 158969, + Creator: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + UpdatedBy: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + Items: []components.CollectionItem{ + components.CollectionItem{ + CollectionID: 110375, + CreatedBy: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + Document: &components.Document{ + ContainerDocument: &components.Document{ + Metadata: &components.DocumentMetadata{ + Datasource: types.String("datasource"), + ObjectType: types.String("Feature Request"), + Container: types.String("container"), + ParentID: types.String("JIRA_EN-1337"), + MimeType: types.String("mimeType"), + DocumentID: types.String("documentId"), + CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + Author: &components.Person{ + Name: "name", + ObfuscatedID: "", + }, + Components: []string{ + "Backend", + "Networking", + }, + Status: types.String("[\"Done\"]"), + CustomData: map[string]components.CustomDataValue{ + "someCustomField": components.CustomDataValue{}, + }, }, - Status: types.String("[\"Done\"]"), - CustomData: map[string]components.CustomDataValue{ - "someCustomField": components.CustomDataValue{}, + }, + ParentDocument: &components.Document{ + Metadata: &components.DocumentMetadata{ + Datasource: types.String("datasource"), + ObjectType: types.String("Feature Request"), + Container: types.String("container"), + ParentID: types.String("JIRA_EN-1337"), + MimeType: types.String("mimeType"), + DocumentID: types.String("documentId"), + CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + Author: &components.Person{ + Name: "name", + ObfuscatedID: "", + }, + Components: []string{ + "Backend", + "Networking", + }, + Status: types.String("[\"Done\"]"), + CustomData: map[string]components.CustomDataValue{ + "someCustomField": components.CustomDataValue{}, + }, }, }, - }, - ParentDocument: &components.Document{ Metadata: &components.DocumentMetadata{ Datasource: types.String("datasource"), ObjectType: types.String("Feature Request"), @@ -234,70 +178,101 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - Metadata: &components.DocumentMetadata{ - Datasource: types.String("datasource"), - ObjectType: types.String("Feature Request"), - Container: types.String("container"), - ParentID: types.String("JIRA_EN-1337"), - MimeType: types.String("mimeType"), - DocumentID: types.String("documentId"), - CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), - Author: &components.Person{ - Name: "name", - ObfuscatedID: "", - }, - Components: []string{ - "Backend", - "Networking", - }, - Status: types.String("[\"Done\"]"), - CustomData: map[string]components.CustomDataValue{ - "someCustomField": components.CustomDataValue{}, + Shortcut: &components.Shortcut{ + InputAlias: "", + CreatedBy: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", }, - }, - }, - Roles: []components.UserRoleSpecification{ - components.UserRoleSpecification{ - Person: &components.Person{ + UpdatedBy: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", }, - Role: components.UserRoleViewer, - }, - }, - }, - Collection: &components.Collection{ - Name: "", - Description: "synthesise transcend seriously frail happy", - AudienceFilters: []components.FacetFilter{ - components.FacetFilter{ - FieldName: types.String("type"), - Values: []components.FacetFilterValue{ - components.FacetFilterValue{ - Value: types.String("Spreadsheet"), - RelationType: components.RelationTypeEquals.ToPointer(), + DestinationDocument: &components.Document{ + ContainerDocument: &components.Document{ + Metadata: &components.DocumentMetadata{ + Datasource: types.String("datasource"), + ObjectType: types.String("Feature Request"), + Container: types.String("container"), + ParentID: types.String("JIRA_EN-1337"), + MimeType: types.String("mimeType"), + DocumentID: types.String("documentId"), + CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + Author: &components.Person{ + Name: "name", + ObfuscatedID: "", + }, + Components: []string{ + "Backend", + "Networking", + }, + Status: types.String("[\"Done\"]"), + CustomData: map[string]components.CustomDataValue{ + "someCustomField": components.CustomDataValue{}, + }, + }, + }, + ParentDocument: &components.Document{ + Metadata: &components.DocumentMetadata{ + Datasource: types.String("datasource"), + ObjectType: types.String("Feature Request"), + Container: types.String("container"), + ParentID: types.String("JIRA_EN-1337"), + MimeType: types.String("mimeType"), + DocumentID: types.String("documentId"), + CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + Author: &components.Person{ + Name: "name", + ObfuscatedID: "", + }, + Components: []string{ + "Backend", + "Networking", + }, + Status: types.String("[\"Done\"]"), + CustomData: map[string]components.CustomDataValue{ + "someCustomField": components.CustomDataValue{}, + }, + }, }, - components.FacetFilterValue{ - Value: types.String("Presentation"), - RelationType: components.RelationTypeEquals.ToPointer(), + Metadata: &components.DocumentMetadata{ + Datasource: types.String("datasource"), + ObjectType: types.String("Feature Request"), + Container: types.String("container"), + ParentID: types.String("JIRA_EN-1337"), + MimeType: types.String("mimeType"), + DocumentID: types.String("documentId"), + CreateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + UpdateTime: types.MustNewTimeFromString("2000-01-23T04:56:07.000Z"), + Author: &components.Person{ + Name: "name", + ObfuscatedID: "", + }, + Components: []string{ + "Backend", + "Networking", + }, + Status: types.String("[\"Done\"]"), + CustomData: map[string]components.CustomDataValue{ + "someCustomField": components.CustomDataValue{}, + }, + }, + }, + Roles: []components.UserRoleSpecification{ + components.UserRoleSpecification{ + Person: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + Role: components.UserRoleEditor, }, }, }, - }, - ID: 400845, - Creator: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Children: []components.Collection{ - components.Collection{ + Collection: &components.Collection{ Name: "", - Description: "adjudge lest grandiose out athwart", + Description: "wedge colorfully orientate rally", AudienceFilters: []components.FacetFilter{ components.FacetFilter{ FieldName: types.String("type"), @@ -313,7 +288,7 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ }, }, }, - ID: 597565, + ID: 131797, Creator: &components.Person{ Name: "George Clooney", ObfuscatedID: "abc123", @@ -322,111 +297,46 @@ func testCreatecollectionCreatecollection0(w http.ResponseWriter, req *http.Requ Name: "George Clooney", ObfuscatedID: "abc123", }, - }, - }, - }, - ItemType: components.CollectionItemItemTypeDocument, - }, - }, - Children: []components.Collection{ - components.Collection{ - Name: "", - Description: "adjudge lest grandiose out athwart", - AudienceFilters: []components.FacetFilter{ - components.FacetFilter{ - FieldName: types.String("type"), - Values: []components.FacetFilterValue{ - components.FacetFilterValue{ - Value: types.String("Spreadsheet"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - components.FacetFilterValue{ - Value: types.String("Presentation"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - }, - }, - }, - ID: 597565, - Creator: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - }, - }, - Roles: []components.UserRoleSpecification{ - components.UserRoleSpecification{ - Person: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Role: components.UserRoleViewer, - }, - }, - ErrorCode: components.CreateCollectionResponseErrorCodeCollectionPinned, - Collection: &components.Collection{ - Name: "", - Description: "synthesise transcend seriously frail happy", - AudienceFilters: []components.FacetFilter{ - components.FacetFilter{ - FieldName: types.String("type"), - Values: []components.FacetFilterValue{ - components.FacetFilterValue{ - Value: types.String("Spreadsheet"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - components.FacetFilterValue{ - Value: types.String("Presentation"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - }, - }, - }, - ID: 400845, - Creator: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - Children: []components.Collection{ - components.Collection{ - Name: "", - Description: "adjudge lest grandiose out athwart", - AudienceFilters: []components.FacetFilter{ - components.FacetFilter{ - FieldName: types.String("type"), - Values: []components.FacetFilterValue{ - components.FacetFilterValue{ - Value: types.String("Spreadsheet"), - RelationType: components.RelationTypeEquals.ToPointer(), - }, - components.FacetFilterValue{ - Value: types.String("Presentation"), - RelationType: components.RelationTypeEquals.ToPointer(), + Children: []components.Collection{ + components.Collection{ + Name: "", + Description: "outside yippee sidetrack mature regularly mouser inject worth", + AudienceFilters: []components.FacetFilter{ + components.FacetFilter{ + FieldName: types.String("type"), + Values: []components.FacetFilterValue{ + components.FacetFilterValue{ + Value: types.String("Spreadsheet"), + RelationType: components.RelationTypeEquals.ToPointer(), + }, + components.FacetFilterValue{ + Value: types.String("Presentation"), + RelationType: components.RelationTypeEquals.ToPointer(), + }, + }, + }, + }, + ID: 149448, + Creator: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, + UpdatedBy: &components.Person{ + Name: "George Clooney", + ObfuscatedID: "abc123", + }, }, }, }, - }, - ID: 597565, - Creator: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", - }, - UpdatedBy: &components.Person{ - Name: "George Clooney", - ObfuscatedID: "abc123", + ItemType: components.CollectionItemItemTypeCollection, }, }, }, + Error: components.CollectionError{ + ErrorCode: components.CollectionErrorErrorCodeNotFound, + }, }, - } + )) respBodyBytes, err := utils.MarshalJSON(respBody, "", true) if err != nil { diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 29605b82..35e69d35 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -626,8 +626,11 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { AddedRoles: []components.UserRoleSpecification{}, RemovedRoles: []components.UserRoleSpecification{}, Roles: []components.UserRoleSpecification{}, - SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec1( - components.DocumentSpec1{}, + SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( + components.DocumentSpec3{ + UgcType: components.DocumentSpecUgcType1Shortcuts, + ContentID: 602763, + }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), CombinedAnswerText: &components.StructuredText{ diff --git a/tests/mockserver/internal/sdk/models/components/chat.go b/tests/mockserver/internal/sdk/models/components/chat.go index 316d4889..6d99873d 100644 --- a/tests/mockserver/internal/sdk/models/components/chat.go +++ b/tests/mockserver/internal/sdk/models/components/chat.go @@ -18,9 +18,12 @@ type Chat struct { // The display name of the AI App that this Chat is associated to. ApplicationName *string `json:"applicationName,omitempty"` // Defines how to render an icon - Icon *IconConfig `json:"icon,omitempty"` + Icon *IconConfig `json:"icon,omitempty"` + Permissions *ObjectPermissions `json:"permissions,omitempty"` // The chat messages within a Chat. Messages []ChatMessage `json:"messages,omitempty"` + // A list of roles for this Chat. + Roles []UserRoleSpecification `json:"roles,omitempty"` } func (o *Chat) GetID() *string { @@ -79,9 +82,23 @@ func (o *Chat) GetIcon() *IconConfig { return o.Icon } +func (o *Chat) GetPermissions() *ObjectPermissions { + if o == nil { + return nil + } + return o.Permissions +} + func (o *Chat) GetMessages() []ChatMessage { if o == nil { return nil } return o.Messages } + +func (o *Chat) GetRoles() []UserRoleSpecification { + if o == nil { + return nil + } + return o.Roles +} diff --git a/tests/mockserver/internal/sdk/models/components/chatmessage.go b/tests/mockserver/internal/sdk/models/components/chatmessage.go index 2af76481..3e9895b5 100644 --- a/tests/mockserver/internal/sdk/models/components/chatmessage.go +++ b/tests/mockserver/internal/sdk/models/components/chatmessage.go @@ -46,6 +46,7 @@ const ( MessageTypeError MessageType = "ERROR" MessageTypeHeading MessageType = "HEADING" MessageTypeWarning MessageType = "WARNING" + MessageTypeServerTool MessageType = "SERVER_TOOL" ) func (e MessageType) ToPointer() *MessageType { @@ -72,6 +73,8 @@ func (e *MessageType) UnmarshalJSON(data []byte) error { case "HEADING": fallthrough case "WARNING": + fallthrough + case "SERVER_TOOL": *e = MessageType(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go b/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go index e153531a..be2b3866 100644 --- a/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go +++ b/tests/mockserver/internal/sdk/models/components/chatmessagefragment.go @@ -2,7 +2,7 @@ package components -// ChatMessageFragment - Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, or file. +// ChatMessageFragment - Represents a part of a ChatMessage that originates from a single action/tool. It is designed to support rich data formats beyond simple text, allowing for a more dynamic and interactive chat experience. Each fragment can include various types of content, such as text, search queries, action information, and more. Also, each ChatMessageFragment should only have one of structuredResults, querySuggestion, writeAction, followupAction, agentRecommendation or file. type ChatMessageFragment struct { // An array of entities in the work graph retrieved via a data request. StructuredResults []StructuredResult `json:"structuredResults,omitempty"` diff --git a/tests/mockserver/internal/sdk/models/components/collectionerror.go b/tests/mockserver/internal/sdk/models/components/collectionerror.go index 79eef1da..1cf4a37d 100644 --- a/tests/mockserver/internal/sdk/models/components/collectionerror.go +++ b/tests/mockserver/internal/sdk/models/components/collectionerror.go @@ -5,6 +5,7 @@ package components import ( "encoding/json" "fmt" + "mockserver/internal/sdk/utils" ) type CollectionErrorErrorCode string @@ -52,6 +53,17 @@ type CollectionError struct { ErrorCode CollectionErrorErrorCode `json:"errorCode"` } +func (c CollectionError) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(c, "", false) +} + +func (c *CollectionError) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &c, "", false, []string{"errorCode"}); err != nil { + return err + } + return nil +} + func (o *CollectionError) GetErrorCode() CollectionErrorErrorCode { if o == nil { return CollectionErrorErrorCode("") diff --git a/tests/mockserver/internal/sdk/models/components/createcollectionresponse.go b/tests/mockserver/internal/sdk/models/components/createcollectionresponse.go deleted file mode 100644 index 9e9f36a2..00000000 --- a/tests/mockserver/internal/sdk/models/components/createcollectionresponse.go +++ /dev/null @@ -1,289 +0,0 @@ -// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - -package components - -import ( - "encoding/json" - "fmt" - "mockserver/internal/sdk/utils" - "time" -) - -type CreateCollectionResponseErrorCode string - -const ( - CreateCollectionResponseErrorCodeNameExists CreateCollectionResponseErrorCode = "NAME_EXISTS" - CreateCollectionResponseErrorCodeNotFound CreateCollectionResponseErrorCode = "NOT_FOUND" - CreateCollectionResponseErrorCodeCollectionPinned CreateCollectionResponseErrorCode = "COLLECTION_PINNED" - CreateCollectionResponseErrorCodeConcurrentHierarchyEdit CreateCollectionResponseErrorCode = "CONCURRENT_HIERARCHY_EDIT" - CreateCollectionResponseErrorCodeHeightViolation CreateCollectionResponseErrorCode = "HEIGHT_VIOLATION" - CreateCollectionResponseErrorCodeWidthViolation CreateCollectionResponseErrorCode = "WIDTH_VIOLATION" - CreateCollectionResponseErrorCodeNoPermissions CreateCollectionResponseErrorCode = "NO_PERMISSIONS" -) - -func (e CreateCollectionResponseErrorCode) ToPointer() *CreateCollectionResponseErrorCode { - return &e -} -func (e *CreateCollectionResponseErrorCode) UnmarshalJSON(data []byte) error { - var v string - if err := json.Unmarshal(data, &v); err != nil { - return err - } - switch v { - case "NAME_EXISTS": - fallthrough - case "NOT_FOUND": - fallthrough - case "COLLECTION_PINNED": - fallthrough - case "CONCURRENT_HIERARCHY_EDIT": - fallthrough - case "HEIGHT_VIOLATION": - fallthrough - case "WIDTH_VIOLATION": - fallthrough - case "NO_PERMISSIONS": - *e = CreateCollectionResponseErrorCode(v) - return nil - default: - return fmt.Errorf("invalid value for CreateCollectionResponseErrorCode: %v", v) - } -} - -type CreateCollectionResponse struct { - // The unique name of the Collection. - Name string `json:"name"` - // A brief summary of the Collection's contents. - Description string `json:"description"` - // A list of added user roles for the Collection. - AddedRoles []UserRoleSpecification `json:"addedRoles,omitempty"` - // A list of removed user roles for the Collection. - RemovedRoles []UserRoleSpecification `json:"removedRoles,omitempty"` - // Filters which restrict who should see this Collection. Values are taken from the corresponding filters in people search. - AudienceFilters []FacetFilter `json:"audienceFilters,omitempty"` - // The emoji icon of this Collection. - Icon *string `json:"icon,omitempty"` - // Indicates whether edits are allowed for everyone or only admins. - AdminLocked *bool `json:"adminLocked,omitempty"` - // The parent of this Collection, or 0 if it's a top-level Collection. - ParentID *int64 `json:"parentId,omitempty"` - Thumbnail *Thumbnail `json:"thumbnail,omitempty"` - // The datasource type this Collection can hold. - AllowedDatasource *string `json:"allowedDatasource,omitempty"` - Permissions *ObjectPermissions `json:"permissions,omitempty"` - // The unique ID of the Collection. - ID int64 `json:"id"` - CreateTime *time.Time `json:"createTime,omitempty"` - UpdateTime *time.Time `json:"updateTime,omitempty"` - Creator *Person `json:"creator,omitempty"` - UpdatedBy *Person `json:"updatedBy,omitempty"` - // The number of items currently in the Collection. Separated from the actual items so we can grab the count without items. - ItemCount *int64 `json:"itemCount,omitempty"` - // The number of children Collections. Separated from the actual children so we can grab the count without children. - ChildCount *int64 `json:"childCount,omitempty"` - // The items in this Collection. - Items []CollectionItem `json:"items,omitempty"` - PinMetadata *CollectionPinnedMetadata `json:"pinMetadata,omitempty"` - // The names of the shortcuts (Go Links) that point to this Collection. - Shortcuts []string `json:"shortcuts,omitempty"` - // The children Collections of this Collection. - Children []Collection `json:"children,omitempty"` - // A list of user roles for the Collection. - Roles []UserRoleSpecification `json:"roles,omitempty"` - ErrorCode CreateCollectionResponseErrorCode `json:"errorCode"` - Collection *Collection `json:"collection,omitempty"` - Error *CollectionError `json:"error,omitempty"` -} - -func (c CreateCollectionResponse) MarshalJSON() ([]byte, error) { - return utils.MarshalJSON(c, "", false) -} - -func (c *CreateCollectionResponse) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &c, "", false, []string{"name", "description", "id", "errorCode"}); err != nil { - return err - } - return nil -} - -func (o *CreateCollectionResponse) GetName() string { - if o == nil { - return "" - } - return o.Name -} - -func (o *CreateCollectionResponse) GetDescription() string { - if o == nil { - return "" - } - return o.Description -} - -func (o *CreateCollectionResponse) GetAddedRoles() []UserRoleSpecification { - if o == nil { - return nil - } - return o.AddedRoles -} - -func (o *CreateCollectionResponse) GetRemovedRoles() []UserRoleSpecification { - if o == nil { - return nil - } - return o.RemovedRoles -} - -func (o *CreateCollectionResponse) GetAudienceFilters() []FacetFilter { - if o == nil { - return nil - } - return o.AudienceFilters -} - -func (o *CreateCollectionResponse) GetIcon() *string { - if o == nil { - return nil - } - return o.Icon -} - -func (o *CreateCollectionResponse) GetAdminLocked() *bool { - if o == nil { - return nil - } - return o.AdminLocked -} - -func (o *CreateCollectionResponse) GetParentID() *int64 { - if o == nil { - return nil - } - return o.ParentID -} - -func (o *CreateCollectionResponse) GetThumbnail() *Thumbnail { - if o == nil { - return nil - } - return o.Thumbnail -} - -func (o *CreateCollectionResponse) GetAllowedDatasource() *string { - if o == nil { - return nil - } - return o.AllowedDatasource -} - -func (o *CreateCollectionResponse) GetPermissions() *ObjectPermissions { - if o == nil { - return nil - } - return o.Permissions -} - -func (o *CreateCollectionResponse) GetID() int64 { - if o == nil { - return 0 - } - return o.ID -} - -func (o *CreateCollectionResponse) GetCreateTime() *time.Time { - if o == nil { - return nil - } - return o.CreateTime -} - -func (o *CreateCollectionResponse) GetUpdateTime() *time.Time { - if o == nil { - return nil - } - return o.UpdateTime -} - -func (o *CreateCollectionResponse) GetCreator() *Person { - if o == nil { - return nil - } - return o.Creator -} - -func (o *CreateCollectionResponse) GetUpdatedBy() *Person { - if o == nil { - return nil - } - return o.UpdatedBy -} - -func (o *CreateCollectionResponse) GetItemCount() *int64 { - if o == nil { - return nil - } - return o.ItemCount -} - -func (o *CreateCollectionResponse) GetChildCount() *int64 { - if o == nil { - return nil - } - return o.ChildCount -} - -func (o *CreateCollectionResponse) GetItems() []CollectionItem { - if o == nil { - return nil - } - return o.Items -} - -func (o *CreateCollectionResponse) GetPinMetadata() *CollectionPinnedMetadata { - if o == nil { - return nil - } - return o.PinMetadata -} - -func (o *CreateCollectionResponse) GetShortcuts() []string { - if o == nil { - return nil - } - return o.Shortcuts -} - -func (o *CreateCollectionResponse) GetChildren() []Collection { - if o == nil { - return nil - } - return o.Children -} - -func (o *CreateCollectionResponse) GetRoles() []UserRoleSpecification { - if o == nil { - return nil - } - return o.Roles -} - -func (o *CreateCollectionResponse) GetErrorCode() CreateCollectionResponseErrorCode { - if o == nil { - return CreateCollectionResponseErrorCode("") - } - return o.ErrorCode -} - -func (o *CreateCollectionResponse) GetCollection() *Collection { - if o == nil { - return nil - } - return o.Collection -} - -func (o *CreateCollectionResponse) GetError() *CollectionError { - if o == nil { - return nil - } - return o.Error -} diff --git a/tests/mockserver/internal/sdk/models/components/customdatasourceconfig.go b/tests/mockserver/internal/sdk/models/components/customdatasourceconfig.go index 01737ea6..74d5523a 100644 --- a/tests/mockserver/internal/sdk/models/components/customdatasourceconfig.go +++ b/tests/mockserver/internal/sdk/models/components/customdatasourceconfig.go @@ -29,6 +29,7 @@ const ( DatasourceCategoryExternalShortcut DatasourceCategory = "EXTERNAL_SHORTCUT" DatasourceCategoryEntity DatasourceCategory = "ENTITY" DatasourceCategoryCalendar DatasourceCategory = "CALENDAR" + DatasourceCategoryAgents DatasourceCategory = "AGENTS" ) func (e DatasourceCategory) ToPointer() *DatasourceCategory { @@ -73,6 +74,8 @@ func (e *DatasourceCategory) UnmarshalJSON(data []byte) error { case "ENTITY": fallthrough case "CALENDAR": + fallthrough + case "AGENTS": *e = DatasourceCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/digest.go b/tests/mockserver/internal/sdk/models/components/digest.go new file mode 100644 index 00000000..5cbcb560 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/digest.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type Digest struct { + // Identifier for the podcast file generated from this digest content. + PodcastFileID *string `json:"podcastFileId,omitempty"` + // Duration of the podcast file in seconds. + PodcastDuration *float32 `json:"podcastDuration,omitempty"` + // The date this digest covers, in YYYY-MM-DD format. Represents the specific day for which the digest content and updates were compiled. This can be empty if the digest is not yet available. + DigestDate *string `json:"digestDate,omitempty"` + // Array of digest sections from which the podcast was created. + Sections []DigestSection `json:"sections,omitempty"` +} + +func (o *Digest) GetPodcastFileID() *string { + if o == nil { + return nil + } + return o.PodcastFileID +} + +func (o *Digest) GetPodcastDuration() *float32 { + if o == nil { + return nil + } + return o.PodcastDuration +} + +func (o *Digest) GetDigestDate() *string { + if o == nil { + return nil + } + return o.DigestDate +} + +func (o *Digest) GetSections() []DigestSection { + if o == nil { + return nil + } + return o.Sections +} diff --git a/tests/mockserver/internal/sdk/models/components/digestsection.go b/tests/mockserver/internal/sdk/models/components/digestsection.go new file mode 100644 index 00000000..da5e9a2f --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/digestsection.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type DigestSection struct { + // Unique identifier for the digest section. + ID string `json:"id"` + // Type of the section. This defines how the section should be interpreted and rendered in the digest. + Type SectionType `json:"type"` + // Human-readable name for the digest section. + DisplayName *string `json:"displayName,omitempty"` + // Name of the channel (applicable for CHANNEL type sections). Used to display in the frontend. + ChannelName *string `json:"channelName,omitempty"` + // Instance identifier for the channel or workspace. Used for constructing channel URLs to display in the frontend. + InstanceID *string `json:"instanceId,omitempty"` + // Optional URL for the digest section. Should be populated only if the section is a CHANNEL type section. + URL *string `json:"url,omitempty"` + // List of updates within this digest section. + Updates []DigestUpdate `json:"updates"` +} + +func (o *DigestSection) GetID() string { + if o == nil { + return "" + } + return o.ID +} + +func (o *DigestSection) GetType() SectionType { + if o == nil { + return SectionType("") + } + return o.Type +} + +func (o *DigestSection) GetDisplayName() *string { + if o == nil { + return nil + } + return o.DisplayName +} + +func (o *DigestSection) GetChannelName() *string { + if o == nil { + return nil + } + return o.ChannelName +} + +func (o *DigestSection) GetInstanceID() *string { + if o == nil { + return nil + } + return o.InstanceID +} + +func (o *DigestSection) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} + +func (o *DigestSection) GetUpdates() []DigestUpdate { + if o == nil { + return []DigestUpdate{} + } + return o.Updates +} diff --git a/tests/mockserver/internal/sdk/models/components/digestupdate.go b/tests/mockserver/internal/sdk/models/components/digestupdate.go new file mode 100644 index 00000000..0f1dbc89 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/digestupdate.go @@ -0,0 +1,51 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +type DigestUpdate struct { + // URL link to the content or document. + URL *string `json:"url,omitempty"` + // Title or headline of the update. + Title *string `json:"title,omitempty"` + // Name or identifier of the data source (e.g., slack, confluence, etc.). + Datasource *string `json:"datasource,omitempty"` + // Brief summary or description of the update content. + Summary *string `json:"summary,omitempty"` + // Optional type classification for the update. + Type *UpdateType `json:"type,omitempty"` +} + +func (o *DigestUpdate) GetURL() *string { + if o == nil { + return nil + } + return o.URL +} + +func (o *DigestUpdate) GetTitle() *string { + if o == nil { + return nil + } + return o.Title +} + +func (o *DigestUpdate) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} + +func (o *DigestUpdate) GetSummary() *string { + if o == nil { + return nil + } + return o.Summary +} + +func (o *DigestUpdate) GetType() *UpdateType { + if o == nil { + return nil + } + return o.Type +} diff --git a/tests/mockserver/internal/sdk/models/components/documentspecunion.go b/tests/mockserver/internal/sdk/models/components/documentspecunion.go index ca5f78f9..e6206deb 100644 --- a/tests/mockserver/internal/sdk/models/components/documentspecunion.go +++ b/tests/mockserver/internal/sdk/models/components/documentspecunion.go @@ -9,20 +9,21 @@ import ( "mockserver/internal/sdk/utils" ) -// DocumentSpecUgcType - The type of the user generated content (UGC datasource). -type DocumentSpecUgcType string +// DocumentSpecUgcType2 - The type of the user generated content (UGC datasource). +type DocumentSpecUgcType2 string const ( - DocumentSpecUgcTypeAnnouncements DocumentSpecUgcType = "ANNOUNCEMENTS" - DocumentSpecUgcTypeAnswers DocumentSpecUgcType = "ANSWERS" - DocumentSpecUgcTypeCollections DocumentSpecUgcType = "COLLECTIONS" - DocumentSpecUgcTypeShortcuts DocumentSpecUgcType = "SHORTCUTS" + DocumentSpecUgcType2Announcements DocumentSpecUgcType2 = "ANNOUNCEMENTS" + DocumentSpecUgcType2Answers DocumentSpecUgcType2 = "ANSWERS" + DocumentSpecUgcType2Collections DocumentSpecUgcType2 = "COLLECTIONS" + DocumentSpecUgcType2Shortcuts DocumentSpecUgcType2 = "SHORTCUTS" + DocumentSpecUgcType2Chats DocumentSpecUgcType2 = "CHATS" ) -func (e DocumentSpecUgcType) ToPointer() *DocumentSpecUgcType { +func (e DocumentSpecUgcType2) ToPointer() *DocumentSpecUgcType2 { return &e } -func (e *DocumentSpecUgcType) UnmarshalJSON(data []byte) error { +func (e *DocumentSpecUgcType2) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -35,18 +36,97 @@ func (e *DocumentSpecUgcType) UnmarshalJSON(data []byte) error { case "COLLECTIONS": fallthrough case "SHORTCUTS": - *e = DocumentSpecUgcType(v) + fallthrough + case "CHATS": + *e = DocumentSpecUgcType2(v) + return nil + default: + return fmt.Errorf("invalid value for DocumentSpecUgcType2: %v", v) + } +} + +type DocumentSpec4 struct { + // The type of the user generated content (UGC datasource). + UgcType DocumentSpecUgcType2 `json:"ugcType"` + // The string id for user generated content. Used for CHATS. + UgcID string `json:"ugcId"` + // The specific type of the user generated content type. + DocType *string `json:"docType,omitempty"` +} + +func (d DocumentSpec4) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(d, "", false) +} + +func (d *DocumentSpec4) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &d, "", false, []string{"ugcType", "ugcId"}); err != nil { + return err + } + return nil +} + +func (o *DocumentSpec4) GetUgcType() DocumentSpecUgcType2 { + if o == nil { + return DocumentSpecUgcType2("") + } + return o.UgcType +} + +func (o *DocumentSpec4) GetUgcID() string { + if o == nil { + return "" + } + return o.UgcID +} + +func (o *DocumentSpec4) GetDocType() *string { + if o == nil { + return nil + } + return o.DocType +} + +// DocumentSpecUgcType1 - The type of the user generated content (UGC datasource). +type DocumentSpecUgcType1 string + +const ( + DocumentSpecUgcType1Announcements DocumentSpecUgcType1 = "ANNOUNCEMENTS" + DocumentSpecUgcType1Answers DocumentSpecUgcType1 = "ANSWERS" + DocumentSpecUgcType1Collections DocumentSpecUgcType1 = "COLLECTIONS" + DocumentSpecUgcType1Shortcuts DocumentSpecUgcType1 = "SHORTCUTS" + DocumentSpecUgcType1Chats DocumentSpecUgcType1 = "CHATS" +) + +func (e DocumentSpecUgcType1) ToPointer() *DocumentSpecUgcType1 { + return &e +} +func (e *DocumentSpecUgcType1) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "ANNOUNCEMENTS": + fallthrough + case "ANSWERS": + fallthrough + case "COLLECTIONS": + fallthrough + case "SHORTCUTS": + fallthrough + case "CHATS": + *e = DocumentSpecUgcType1(v) return nil default: - return fmt.Errorf("invalid value for DocumentSpecUgcType: %v", v) + return fmt.Errorf("invalid value for DocumentSpecUgcType1: %v", v) } } type DocumentSpec3 struct { // The type of the user generated content (UGC datasource). - UgcType *DocumentSpecUgcType `json:"ugcType,omitempty"` - // The id for user generated content. - ContentID *int64 `json:"contentId,omitempty"` + UgcType DocumentSpecUgcType1 `json:"ugcType"` + // The numeric id for user generated content. Used for ANNOUNCEMENTS, ANSWERS, COLLECTIONS, SHORTCUTS. + ContentID int64 `json:"contentId"` // The specific type of the user generated content type. DocType *string `json:"docType,omitempty"` } @@ -56,22 +136,22 @@ func (d DocumentSpec3) MarshalJSON() ([]byte, error) { } func (d *DocumentSpec3) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &d, "", false, nil); err != nil { + if err := utils.UnmarshalJSON(data, &d, "", false, []string{"ugcType", "contentId"}); err != nil { return err } return nil } -func (o *DocumentSpec3) GetUgcType() *DocumentSpecUgcType { +func (o *DocumentSpec3) GetUgcType() DocumentSpecUgcType1 { if o == nil { - return nil + return DocumentSpecUgcType1("") } return o.UgcType } -func (o *DocumentSpec3) GetContentID() *int64 { +func (o *DocumentSpec3) GetContentID() int64 { if o == nil { - return nil + return 0 } return o.ContentID } @@ -85,7 +165,7 @@ func (o *DocumentSpec3) GetDocType() *string { type DocumentSpec2 struct { // The ID of the document. - ID *string `json:"id,omitempty"` + ID string `json:"id"` } func (d DocumentSpec2) MarshalJSON() ([]byte, error) { @@ -93,22 +173,22 @@ func (d DocumentSpec2) MarshalJSON() ([]byte, error) { } func (d *DocumentSpec2) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &d, "", false, nil); err != nil { + if err := utils.UnmarshalJSON(data, &d, "", false, []string{"id"}); err != nil { return err } return nil } -func (o *DocumentSpec2) GetID() *string { +func (o *DocumentSpec2) GetID() string { if o == nil { - return nil + return "" } return o.ID } type DocumentSpec1 struct { // The URL of the document. - URL *string `json:"url,omitempty"` + URL string `json:"url"` } func (d DocumentSpec1) MarshalJSON() ([]byte, error) { @@ -116,15 +196,15 @@ func (d DocumentSpec1) MarshalJSON() ([]byte, error) { } func (d *DocumentSpec1) UnmarshalJSON(data []byte) error { - if err := utils.UnmarshalJSON(data, &d, "", false, nil); err != nil { + if err := utils.UnmarshalJSON(data, &d, "", false, []string{"url"}); err != nil { return err } return nil } -func (o *DocumentSpec1) GetURL() *string { +func (o *DocumentSpec1) GetURL() string { if o == nil { - return nil + return "" } return o.URL } @@ -135,12 +215,14 @@ const ( DocumentSpecUnionTypeDocumentSpec1 DocumentSpecUnionType = "DocumentSpec_1" DocumentSpecUnionTypeDocumentSpec2 DocumentSpecUnionType = "DocumentSpec_2" DocumentSpecUnionTypeDocumentSpec3 DocumentSpecUnionType = "DocumentSpec_3" + DocumentSpecUnionTypeDocumentSpec4 DocumentSpecUnionType = "DocumentSpec_4" ) type DocumentSpecUnion struct { DocumentSpec1 *DocumentSpec1 `queryParam:"inline"` DocumentSpec2 *DocumentSpec2 `queryParam:"inline"` DocumentSpec3 *DocumentSpec3 `queryParam:"inline"` + DocumentSpec4 *DocumentSpec4 `queryParam:"inline"` Type DocumentSpecUnionType } @@ -172,8 +254,31 @@ func CreateDocumentSpecUnionDocumentSpec3(documentSpec3 DocumentSpec3) DocumentS } } +func CreateDocumentSpecUnionDocumentSpec4(documentSpec4 DocumentSpec4) DocumentSpecUnion { + typ := DocumentSpecUnionTypeDocumentSpec4 + + return DocumentSpecUnion{ + DocumentSpec4: &documentSpec4, + Type: typ, + } +} + func (u *DocumentSpecUnion) UnmarshalJSON(data []byte) error { + var documentSpec3 DocumentSpec3 = DocumentSpec3{} + if err := utils.UnmarshalJSON(data, &documentSpec3, "", true, nil); err == nil { + u.DocumentSpec3 = &documentSpec3 + u.Type = DocumentSpecUnionTypeDocumentSpec3 + return nil + } + + var documentSpec4 DocumentSpec4 = DocumentSpec4{} + if err := utils.UnmarshalJSON(data, &documentSpec4, "", true, nil); err == nil { + u.DocumentSpec4 = &documentSpec4 + u.Type = DocumentSpecUnionTypeDocumentSpec4 + return nil + } + var documentSpec1 DocumentSpec1 = DocumentSpec1{} if err := utils.UnmarshalJSON(data, &documentSpec1, "", true, nil); err == nil { u.DocumentSpec1 = &documentSpec1 @@ -188,13 +293,6 @@ func (u *DocumentSpecUnion) UnmarshalJSON(data []byte) error { return nil } - var documentSpec3 DocumentSpec3 = DocumentSpec3{} - if err := utils.UnmarshalJSON(data, &documentSpec3, "", true, nil); err == nil { - u.DocumentSpec3 = &documentSpec3 - u.Type = DocumentSpecUnionTypeDocumentSpec3 - return nil - } - return fmt.Errorf("could not unmarshal `%s` into any supported union types for DocumentSpecUnion", string(data)) } @@ -211,5 +309,9 @@ func (u DocumentSpecUnion) MarshalJSON() ([]byte, error) { return utils.MarshalJSON(u.DocumentSpec3, "", true) } + if u.DocumentSpec4 != nil { + return utils.MarshalJSON(u.DocumentSpec4, "", true) + } + return nil, errors.New("could not marshal union type DocumentSpecUnion: all fields are null") } diff --git a/tests/mockserver/internal/sdk/models/components/feedentry.go b/tests/mockserver/internal/sdk/models/components/feedentry.go index c0c46e7f..930d5c91 100644 --- a/tests/mockserver/internal/sdk/models/components/feedentry.go +++ b/tests/mockserver/internal/sdk/models/components/feedentry.go @@ -89,6 +89,7 @@ const ( JustificationTypeZeroStateStaticWorkflowSuggestion JustificationType = "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION" JustificationTypeZeroStateAgentSuggestion JustificationType = "ZERO_STATE_AGENT_SUGGESTION" JustificationTypePersonalizedChatSuggestion JustificationType = "PERSONALIZED_CHAT_SUGGESTION" + JustificationTypeDailyDigest JustificationType = "DAILY_DIGEST" ) func (e JustificationType) ToPointer() *JustificationType { @@ -165,6 +166,8 @@ func (e *JustificationType) UnmarshalJSON(data []byte) error { case "ZERO_STATE_AGENT_SUGGESTION": fallthrough case "PERSONALIZED_CHAT_SUGGESTION": + fallthrough + case "DAILY_DIGEST": *e = JustificationType(v) return nil default: @@ -191,6 +194,7 @@ type FeedEntry struct { Document *Document `json:"document,omitempty"` Event *CalendarEvent `json:"event,omitempty"` Announcement *Announcement `json:"announcement,omitempty"` + Digest *Digest `json:"digest,omitempty"` Collection *Collection `json:"collection,omitempty"` CollectionItem *CollectionItem `json:"collectionItem,omitempty"` Person *Person `json:"person,omitempty"` @@ -287,6 +291,13 @@ func (o *FeedEntry) GetAnnouncement() *Announcement { return o.Announcement } +func (o *FeedEntry) GetDigest() *Digest { + if o == nil { + return nil + } + return o.Digest +} + func (o *FeedEntry) GetCollection() *Collection { if o == nil { return nil diff --git a/tests/mockserver/internal/sdk/models/components/feedrequest.go b/tests/mockserver/internal/sdk/models/components/feedrequest.go index 968ccbe1..385cfb4e 100644 --- a/tests/mockserver/internal/sdk/models/components/feedrequest.go +++ b/tests/mockserver/internal/sdk/models/components/feedrequest.go @@ -33,6 +33,7 @@ const ( FeedRequestCategoryZeroStateWorkflowPopular FeedRequestCategory = "ZERO_STATE_WORKFLOW_POPULAR" FeedRequestCategoryZeroStateWorkflowSuggestion FeedRequestCategory = "ZERO_STATE_WORKFLOW_SUGGESTION" FeedRequestCategoryPersonalizedChatSuggestion FeedRequestCategory = "PERSONALIZED_CHAT_SUGGESTION" + FeedRequestCategoryDailyDigest FeedRequestCategory = "DAILY_DIGEST" ) func (e FeedRequestCategory) ToPointer() *FeedRequestCategory { @@ -89,6 +90,8 @@ func (e *FeedRequestCategory) UnmarshalJSON(data []byte) error { case "ZERO_STATE_WORKFLOW_SUGGESTION": fallthrough case "PERSONALIZED_CHAT_SUGGESTION": + fallthrough + case "DAILY_DIGEST": *e = FeedRequestCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/feedresult.go b/tests/mockserver/internal/sdk/models/components/feedresult.go index 11c3eb4c..300d9e7c 100644 --- a/tests/mockserver/internal/sdk/models/components/feedresult.go +++ b/tests/mockserver/internal/sdk/models/components/feedresult.go @@ -34,6 +34,7 @@ const ( FeedResultCategoryZeroStateWorkflowPopular FeedResultCategory = "ZERO_STATE_WORKFLOW_POPULAR" FeedResultCategoryZeroStateWorkflowSuggestion FeedResultCategory = "ZERO_STATE_WORKFLOW_SUGGESTION" FeedResultCategoryPersonalizedChatSuggestion FeedResultCategory = "PERSONALIZED_CHAT_SUGGESTION" + FeedResultCategoryDailyDigest FeedResultCategory = "DAILY_DIGEST" ) func (e FeedResultCategory) ToPointer() *FeedResultCategory { @@ -90,6 +91,8 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { case "ZERO_STATE_WORKFLOW_SUGGESTION": fallthrough case "PERSONALIZED_CHAT_SUGGESTION": + fallthrough + case "DAILY_DIGEST": *e = FeedResultCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/getchatfilesrequest.go b/tests/mockserver/internal/sdk/models/components/getchatfilesrequest.go index 01e36cf0..e23c00f3 100644 --- a/tests/mockserver/internal/sdk/models/components/getchatfilesrequest.go +++ b/tests/mockserver/internal/sdk/models/components/getchatfilesrequest.go @@ -5,6 +5,8 @@ package components type GetChatFilesRequest struct { // IDs of files to fetch. FileIds []string `json:"fileIds"` + // The ID of the chat that contains the chat file. + ChatID *string `json:"chatId,omitempty"` } func (o *GetChatFilesRequest) GetFileIds() []string { @@ -13,3 +15,10 @@ func (o *GetChatFilesRequest) GetFileIds() []string { } return o.FileIds } + +func (o *GetChatFilesRequest) GetChatID() *string { + if o == nil { + return nil + } + return o.ChatID +} diff --git a/tests/mockserver/internal/sdk/models/components/group.go b/tests/mockserver/internal/sdk/models/components/group.go index 2292c163..ecd7ddb6 100644 --- a/tests/mockserver/internal/sdk/models/components/group.go +++ b/tests/mockserver/internal/sdk/models/components/group.go @@ -15,6 +15,8 @@ type Group struct { Name *string `json:"name,omitempty"` // Datasource instance if the group belongs to one e.g. external groups. DatasourceInstance *string `json:"datasourceInstance,omitempty"` + // identifier for greenlist provisioning, aka sciokey + ProvisioningID *string `json:"provisioningId,omitempty"` } func (g Group) MarshalJSON() ([]byte, error) { @@ -55,3 +57,10 @@ func (o *Group) GetDatasourceInstance() *string { } return o.DatasourceInstance } + +func (o *Group) GetProvisioningID() *string { + if o == nil { + return nil + } + return o.ProvisioningID +} diff --git a/tests/mockserver/internal/sdk/models/components/objectdefinition.go b/tests/mockserver/internal/sdk/models/components/objectdefinition.go index 4c33e759..9a9c55c6 100644 --- a/tests/mockserver/internal/sdk/models/components/objectdefinition.go +++ b/tests/mockserver/internal/sdk/models/components/objectdefinition.go @@ -28,6 +28,7 @@ const ( DocCategoryExternalShortcut DocCategory = "EXTERNAL_SHORTCUT" DocCategoryEntity DocCategory = "ENTITY" DocCategoryCalendar DocCategory = "CALENDAR" + DocCategoryAgents DocCategory = "AGENTS" ) func (e DocCategory) ToPointer() *DocCategory { @@ -72,6 +73,8 @@ func (e *DocCategory) UnmarshalJSON(data []byte) error { case "ENTITY": fallthrough case "CALENDAR": + fallthrough + case "AGENTS": *e = DocCategory(v) return nil default: diff --git a/tests/mockserver/internal/sdk/models/components/sectiontype.go b/tests/mockserver/internal/sdk/models/components/sectiontype.go new file mode 100644 index 00000000..395b5e46 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/sectiontype.go @@ -0,0 +1,38 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// SectionType - Type of the section. This defines how the section should be interpreted and rendered in the digest. +type SectionType string + +const ( + SectionTypeChannel SectionType = "CHANNEL" + SectionTypeMentions SectionType = "MENTIONS" + SectionTypeTopic SectionType = "TOPIC" +) + +func (e SectionType) ToPointer() *SectionType { + return &e +} +func (e *SectionType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "CHANNEL": + fallthrough + case "MENTIONS": + fallthrough + case "TOPIC": + *e = SectionType(v) + return nil + default: + return fmt.Errorf("invalid value for SectionType: %v", v) + } +} diff --git a/tests/mockserver/internal/sdk/models/components/updatetype.go b/tests/mockserver/internal/sdk/models/components/updatetype.go new file mode 100644 index 00000000..1d45f587 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/updatetype.go @@ -0,0 +1,35 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +import ( + "encoding/json" + "fmt" +) + +// UpdateType - Optional type classification for the update. +type UpdateType string + +const ( + UpdateTypeActionable UpdateType = "ACTIONABLE" + UpdateTypeInformative UpdateType = "INFORMATIVE" +) + +func (e UpdateType) ToPointer() *UpdateType { + return &e +} +func (e *UpdateType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "ACTIONABLE": + fallthrough + case "INFORMATIVE": + *e = UpdateType(v) + return nil + default: + return fmt.Errorf("invalid value for UpdateType: %v", v) + } +} diff --git a/tests/mockserver/internal/sdk/models/operations/createcollection.go b/tests/mockserver/internal/sdk/models/operations/createcollection.go index f4d44e36..04eaedbc 100644 --- a/tests/mockserver/internal/sdk/models/operations/createcollection.go +++ b/tests/mockserver/internal/sdk/models/operations/createcollection.go @@ -3,13 +3,140 @@ package operations import ( + "errors" + "fmt" "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" ) +type ResponseBody2 struct { + Collection *components.Collection `json:"collection,omitempty"` + Error components.CollectionError `json:"error"` +} + +func (r ResponseBody2) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(r, "", false) +} + +func (r *ResponseBody2) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &r, "", false, []string{"error"}); err != nil { + return err + } + return nil +} + +func (o *ResponseBody2) GetCollection() *components.Collection { + if o == nil { + return nil + } + return o.Collection +} + +func (o *ResponseBody2) GetError() components.CollectionError { + if o == nil { + return components.CollectionError{} + } + return o.Error +} + +type ResponseBody1 struct { + Collection components.Collection `json:"collection"` + Error *components.CollectionError `json:"error,omitempty"` +} + +func (r ResponseBody1) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(r, "", false) +} + +func (r *ResponseBody1) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &r, "", false, []string{"collection"}); err != nil { + return err + } + return nil +} + +func (o *ResponseBody1) GetCollection() components.Collection { + if o == nil { + return components.Collection{} + } + return o.Collection +} + +func (o *ResponseBody1) GetError() *components.CollectionError { + if o == nil { + return nil + } + return o.Error +} + +type CreatecollectionResponseBodyType string + +const ( + CreatecollectionResponseBodyTypeResponseBody1 CreatecollectionResponseBodyType = "ResponseBody_1" + CreatecollectionResponseBodyTypeResponseBody2 CreatecollectionResponseBodyType = "ResponseBody_2" +) + +// CreatecollectionResponseBody - OK +type CreatecollectionResponseBody struct { + ResponseBody1 *ResponseBody1 `queryParam:"inline"` + ResponseBody2 *ResponseBody2 `queryParam:"inline"` + + Type CreatecollectionResponseBodyType +} + +func CreateCreatecollectionResponseBodyResponseBody1(responseBody1 ResponseBody1) CreatecollectionResponseBody { + typ := CreatecollectionResponseBodyTypeResponseBody1 + + return CreatecollectionResponseBody{ + ResponseBody1: &responseBody1, + Type: typ, + } +} + +func CreateCreatecollectionResponseBodyResponseBody2(responseBody2 ResponseBody2) CreatecollectionResponseBody { + typ := CreatecollectionResponseBodyTypeResponseBody2 + + return CreatecollectionResponseBody{ + ResponseBody2: &responseBody2, + Type: typ, + } +} + +func (u *CreatecollectionResponseBody) UnmarshalJSON(data []byte) error { + + var responseBody1 ResponseBody1 = ResponseBody1{} + if err := utils.UnmarshalJSON(data, &responseBody1, "", true, nil); err == nil { + u.ResponseBody1 = &responseBody1 + u.Type = CreatecollectionResponseBodyTypeResponseBody1 + return nil + } + + var responseBody2 ResponseBody2 = ResponseBody2{} + if err := utils.UnmarshalJSON(data, &responseBody2, "", true, nil); err == nil { + u.ResponseBody2 = &responseBody2 + u.Type = CreatecollectionResponseBodyTypeResponseBody2 + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for CreatecollectionResponseBody", string(data)) +} + +func (u CreatecollectionResponseBody) MarshalJSON() ([]byte, error) { + if u.ResponseBody1 != nil { + return utils.MarshalJSON(u.ResponseBody1, "", true) + } + + if u.ResponseBody2 != nil { + return utils.MarshalJSON(u.ResponseBody2, "", true) + } + + return nil, errors.New("could not marshal union type CreatecollectionResponseBody: all fields are null") +} + type CreatecollectionResponse struct { HTTPMeta components.HTTPMetadata `json:"-"` // OK - CreateCollectionResponse *components.CreateCollectionResponse + OneOf *CreatecollectionResponseBody } func (o *CreatecollectionResponse) GetHTTPMeta() components.HTTPMetadata { @@ -19,9 +146,9 @@ func (o *CreatecollectionResponse) GetHTTPMeta() components.HTTPMetadata { return o.HTTPMeta } -func (o *CreatecollectionResponse) GetCreateCollectionResponse() *components.CreateCollectionResponse { +func (o *CreatecollectionResponse) GetOneOf() *CreatecollectionResponseBody { if o == nil { return nil } - return o.CreateCollectionResponse + return o.OneOf } diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 883c2b6f..cac8e978 100644 --- a/tests/test_summarize.py +++ b/tests/test_summarize.py @@ -1,6 +1,6 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from glean.api_client import Glean +from glean.api_client import Glean, models import os from tests.test_client import create_test_http_client @@ -17,8 +17,14 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ - {}, - {}, + { + "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, + "content_id": 602763, + }, + { + "ugc_type": models.DocumentSpecUgcType1.SHORTCUTS, + "content_id": 602763, + }, ] ) assert res is not None