diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index b12b56a7..b97bd58f 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 3e3290ca-0ee8-4981-b1bc-14536048fa63 management: - docChecksum: 95495705a106bf02a21467a7d00ea312 + docChecksum: 02c031b7248e8c1df275b524638100fe docVersion: 0.9.0 - speakeasyVersion: 1.761.3 - generationVersion: 2.879.11 - releaseVersion: 0.12.21 - configChecksum: 20ebb8ffe32a0f4d771511e5395aafc8 + speakeasyVersion: 1.761.5 + generationVersion: 2.879.13 + releaseVersion: 0.12.22 + configChecksum: 22d1acb6e428a7cf1ec40fb7dc31fa4c repoURL: https://github.com/gleanwork/api-client-python.git installationURL: https://github.com/gleanwork/api-client-python.git published: true persistentEdits: - generation_id: 45b8f216-e35e-4495-942f-08a4b1272ac9 - pristine_commit_hash: c42a88b536429df12f99b42c9a15526ad2791f77 - pristine_tree_hash: f72f9384f611751da7762964b3835ba7a93b43f8 + generation_id: ce0da22b-770d-4707-98c5-4c071a90a337 + pristine_commit_hash: 3e5c3d8fb69c4aed3ea2f002673acdf12c0b54dd + pristine_tree_hash: 2b19820632a8760fb58e976d205ba8dc4ffd7e22 features: python: additionalDependencies: 1.0.0 @@ -187,8 +187,8 @@ trackedFiles: pristine_git_object: dba88e1e980221c133143d71febe10860c6d6a11 docs/models/agentstimesavedinsight.md: id: c998db614c46 - last_write_checksum: sha1:3d385b1b58b2fc13b30f1b93a62ebfba57549f4a - pristine_git_object: 3a84fa9ff9a66340187f4f85c0cf96113d68cedc + last_write_checksum: sha1:0653ac44dfc9ed51985aec9a129941b91501812a + pristine_git_object: 552714b4d8aeed7dba72e1b11880f3fb71884e53 docs/models/agentsusagebydepartmentinsight.md: id: 8e00b4ec28db last_write_checksum: sha1:ba6bc3369d70a9f8b0cd136e5ffa9318b54222d3 @@ -919,8 +919,12 @@ trackedFiles: pristine_git_object: eec4bb2823477745162b6a604d6ed6547bdfcdbd docs/models/dlpexportfindingsrequest.md: id: 846a7d063614 - last_write_checksum: sha1:d02690a672d76a1cc09129f514205d2fdb4d2252 - pristine_git_object: 1ecf20234bdf5b3eef7acf6fd64a3cab21e8f426 + last_write_checksum: sha1:9ca5aec938795a317d000ea1f234a9c64d85be47 + pristine_git_object: 3b8f7ff6562ca538b5d24f5c0a2b3c8f403e78e1 + docs/models/dlpexportfindingsrequestexporttype.md: + id: 7dd2a90d5769 + last_write_checksum: sha1:5f8fdc9eed3f5729b296eb59c1fc38157b5dfc0a + pristine_git_object: 7e9aee477a448c831c541e857c45255b826159c5 docs/models/dlpfindingfilter.md: id: 72eab9f49f83 last_write_checksum: sha1:266f51fd4af5f9a986ec5e5d417b971de887913f @@ -929,6 +933,10 @@ trackedFiles: id: f4604a8ff945 last_write_checksum: sha1:59cf084fba6095ff5151b96ca8dfd4269f728456 pristine_git_object: 17476f3f5a6693576fd0c699271fa1bad636427e + docs/models/dlpissuefilter.md: + id: 015c17ef6125 + last_write_checksum: sha1:2554635c00b4906fe04b46dc616963faf58504fd + pristine_git_object: 9769c13471fcee3a3b04e39a063e0abf2d8bb939 docs/models/dlpissuestatus.md: id: bd67979c68c1 last_write_checksum: sha1:1f9b9f3090255714b1ece78a71f0a4fa71d6b38f @@ -1163,16 +1171,16 @@ trackedFiles: pristine_git_object: 9fa8de74a849d5f7628c70defcd8e7f6d0f8121c docs/models/exportinfo.md: id: 08c8529beddd - last_write_checksum: sha1:52c974d3e1a4740f5b41a2c96ef2674c4872a1d9 - pristine_git_object: fd1547a8a4890b6565e01918acdef4dc255e82b4 + last_write_checksum: sha1:fd668b48fbff594629afdc2a988ffff580eb0b99 + pristine_git_object: 606ef59e99f439c2cfe4f7a64b0e2953b5d3af6e + docs/models/exportinfoexporttype.md: + id: 122be1d02850 + last_write_checksum: sha1:d3626d4bfae8e63435d8d874c360d6fa3512b3b1 + pristine_git_object: fd269c2f34b80de158597191405d54914a41b319 docs/models/exportinfostatus.md: id: 00e8b292b3fb last_write_checksum: sha1:a0c9f47ee9e748357aace4b84079d18a321aa52c pristine_git_object: f257dc5200e63afb4c756a25661244c101e2363b - docs/models/exporttype.md: - id: b7a0e6ea465b - last_write_checksum: sha1:6adf430de3351b7007a5c6a7b6fd8c78a4553765 - pristine_git_object: 9db29a82aad3b1bc16476946ead94f4d47bc8455 docs/models/externalsharingoptions.md: id: f1ff0bb532c4 last_write_checksum: sha1:4aa8737cc989465e7ae6d0aecb0dd18d31e1acf6 @@ -2703,8 +2711,8 @@ trackedFiles: pristine_git_object: 0ac68e93afbd65e5cff4a3c8cd5a91527446a41c docs/sdks/governance/README.md: id: 87817eb7bf48 - last_write_checksum: sha1:a7fdbdffd43d79ba890418507c27e5d7a94254a0 - pristine_git_object: 8debef429b415a7e7ffd486ab69c81a9b84dd4ca + last_write_checksum: sha1:43e1f885a19db073f545980c51b23c82d3ec0389 + pristine_git_object: 8708b51c2c40d9f2d5556b71b2d5af8ff6c3f463 docs/sdks/indexingauthentication/README.md: id: 3d8b5fccff24 last_write_checksum: sha1:db7a93bc9a6bad6ef56063825b85e78a032df1f5 @@ -2779,8 +2787,8 @@ trackedFiles: pristine_git_object: e2fda7fe263c2a111e53872e3ad5bc324b4dccfe pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:65e0f2d22f0fc121be7ef0c65018a5d97077de6e - pristine_git_object: b482729a93c5c3738efa4e3b29751599f6aa54e0 + last_write_checksum: sha1:dcebfbd2e1a84ba743e5f844ebb3a507b2e8bae8 + pristine_git_object: cc9c33750aad0593d077fcbb178be828304b7232 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:c2c83f71dea61eb50c9e05da83b16d18b4da8794 @@ -2807,8 +2815,8 @@ trackedFiles: pristine_git_object: 58c4d70ac1797b86ff5c4237cafbc344c42d8f64 src/glean/api_client/_version.py: id: 0ce22b26136b - last_write_checksum: sha1:4cc8ce7a84ff2626e04510f8fe3be0bbe6476271 - pristine_git_object: 8e3c4c8b151a4190bad120974fe3ca6b523ef504 + last_write_checksum: sha1:a09e73fcef58c4a8690e8004c017b62737144327 + pristine_git_object: dac31135bdb889d15d2c86f7c959415e12cdc219 src/glean/api_client/agents.py: id: b925701a9217 last_write_checksum: sha1:ee99ae3d58f7f77ac2eba99c104d04d53c16c09c @@ -2911,8 +2919,8 @@ trackedFiles: pristine_git_object: 3e029c12197bb87be06e01323afbc495968a6eaa src/glean/api_client/governance.py: id: e30db8f06e58 - last_write_checksum: sha1:d19e7fe4afc8e15ed67758d1553b14ff8c0bd4e7 - pristine_git_object: 7f8a45f29d0a2db4b33932bdd4794129a03ff6c0 + last_write_checksum: sha1:aa85e617cbca4a57451a4d3aff33a3286687de85 + pristine_git_object: 3321373ae4bcec4a97ebeec327d1d078e34bd744 src/glean/api_client/governance_documents.py: id: e5ab033181fd last_write_checksum: sha1:761beada29ea72f570c55e6377706671d3b8fcbd @@ -2959,8 +2967,8 @@ trackedFiles: pristine_git_object: 1c182cb0150642014463e1ceec8bc8b785e5b9f3 src/glean/api_client/models/__init__.py: id: d5f6ea5efcbe - last_write_checksum: sha1:5abe6d9d2cf653ea24d2fd2a703ecbd26034a6f8 - pristine_git_object: d494a4156b79ac66d7e746dcfc9af56209eabe56 + last_write_checksum: sha1:1639cfb1dfa4c246c39ee46c77863c719496dbdd + pristine_git_object: 1a54febc4288800bfdbb82e1afdbe73a08a088a5 src/glean/api_client/models/actionsummary.py: id: 34ccdf9f1526 last_write_checksum: sha1:cfefc6678a5612dc8d50f2b0074dc54bb88e00e0 @@ -3043,8 +3051,8 @@ trackedFiles: pristine_git_object: cf04728a8f53f60e72d88d6c9cb7396ba3c04ecb src/glean/api_client/models/agentstimesavedinsight.py: id: a0f77b3b907e - last_write_checksum: sha1:35ead2111d854eb693eca7afd85af70cb69e4b41 - pristine_git_object: f81071aa0f0fe1f453f7c084811d028dae28f05d + last_write_checksum: sha1:ade060149f91b527306789ab799f7aa5174416f5 + pristine_git_object: 25a613c6e515b61c98f37ae345c340b725593aed src/glean/api_client/models/agentsusagebydepartmentinsight.py: id: 50317bf09cb6 last_write_checksum: sha1:6ee545d0cdd6246b7b743870984e71276ab7dfd6 @@ -3651,8 +3659,8 @@ trackedFiles: pristine_git_object: f68bba2b791930a7eff5708502c833d255211f18 src/glean/api_client/models/dlpexportfindingsrequest.py: id: 8776242985ea - last_write_checksum: sha1:d2a71519821ae410a1120df3f5da7570ad7e3a01 - pristine_git_object: b4c54bb45ee19a6e674696ea3ad214a0317c8bd9 + last_write_checksum: sha1:12a9bc4ffea8f15dbedc67be21158106a56d6ea1 + pristine_git_object: 44fedb771abc99c4cebd9768d49051f9a9d5ce30 src/glean/api_client/models/dlpfindingfilter.py: id: 6ef2e5304df7 last_write_checksum: sha1:504b384e6f9de3dbc8d4ba7622cf1bf543a1ec97 @@ -3661,6 +3669,10 @@ trackedFiles: id: f6f484c2d7a4 last_write_checksum: sha1:487ce5e7651214ea7906d0d4e74371544cc436f8 pristine_git_object: 334f894fe2a36391f40ff6831cfdc5aeecddbf21 + src/glean/api_client/models/dlpissuefilter.py: + id: a52d7e96ee6d + last_write_checksum: sha1:b754d99c89be127d516be7b3dde33a9badb27ef8 + pristine_git_object: ac7f76b7a6a188349267d04952d4216494578af8 src/glean/api_client/models/dlpissuestatus.py: id: ef4c7e63fafc last_write_checksum: sha1:f09d760baab7e130d011d8e27adeffdf8f4ac6bf @@ -3835,8 +3847,8 @@ trackedFiles: pristine_git_object: 2fc0a34fb83cf361d4167e22685f67eaa1cd269c src/glean/api_client/models/exportinfo.py: id: 7039fdf82b53 - last_write_checksum: sha1:17551757c1ced91bbfbf1c5c1f98aa3f55d0a4c8 - pristine_git_object: 039b187ecc533dbd35fe6819fa438b554e6d9cc2 + last_write_checksum: sha1:ac8f1a1b597ec1a6dd301410f4a8012d63d9c860 + pristine_git_object: 859689a25f6322e75e7acaa50dbed2843bd885dc src/glean/api_client/models/externalsharingoptions.py: id: 0df611382e60 last_write_checksum: sha1:ff79f9f97203c88bc89c051e73e9082c3861b6c5 @@ -5266,7 +5278,7 @@ trackedFiles: tests/mockserver/internal/handler/pathpostrestapiv1getanswer.go: last_write_checksum: sha1:80bc08894cebfd78f82d3d80f93fd85a11b55d45 tests/mockserver/internal/handler/pathpostrestapiv1getchat.go: - last_write_checksum: sha1:b48e2313407814ee4f8ed181b8e5299a84960c44 + last_write_checksum: sha1:2267292ba8173cf8df70ddbc6ac02ff3439cb879 tests/mockserver/internal/handler/pathpostrestapiv1getchatapplication.go: last_write_checksum: sha1:7b81898137fdb3a89b4dcfa318b9b5b92e8860c0 tests/mockserver/internal/handler/pathpostrestapiv1getchatfiles.go: @@ -5374,7 +5386,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/agentsinsightsv2response.go: last_write_checksum: sha1:37dfa579c66588425502ca91ae07cb9529bebd65 tests/mockserver/internal/sdk/models/components/agentstimesavedinsight.go: - last_write_checksum: sha1:4c8368b220ca2cc15463104f6abcfe89bda8d574 + last_write_checksum: sha1:1c07a7a8e8de690de25bddba511878bc5d40a515 tests/mockserver/internal/sdk/models/components/agentsusagebydepartmentinsight.go: last_write_checksum: sha1:21c46d3f5363b157c2e4ee70451c7d0b3e8d77df tests/mockserver/internal/sdk/models/components/agentusersinsight.go: @@ -5646,11 +5658,13 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/dlpconfig.go: last_write_checksum: sha1:d7f7202ea98f70853dbe57afbbf046a63a59f8d0 tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go: - last_write_checksum: sha1:3fe8136a1f411c8fc5a8afd6bd18fdd953e94d11 + last_write_checksum: sha1:a6fa9927945d74ba513e8299c8102f5f4545c2ab tests/mockserver/internal/sdk/models/components/dlpfindingfilter.go: last_write_checksum: sha1:3a7776befd51d54ad43802b3e808bed01f7ceb31 tests/mockserver/internal/sdk/models/components/dlpfrequency.go: last_write_checksum: sha1:a43530a5536fc8d7e9e059f9256acb659e57f636 + tests/mockserver/internal/sdk/models/components/dlpissuefilter.go: + last_write_checksum: sha1:f36da04b86943e0b5b381b30ad96a3169a5be43d tests/mockserver/internal/sdk/models/components/dlpissuestatus.go: last_write_checksum: sha1:f1df49753a10f9d160ba746f973a2b37f0c32dc6 tests/mockserver/internal/sdk/models/components/dlpperson.go: @@ -5724,7 +5738,7 @@ trackedFiles: tests/mockserver/internal/sdk/models/components/eventstrategyname.go: last_write_checksum: sha1:acecfa3fb469871561d21b30275631ced4a4a11c tests/mockserver/internal/sdk/models/components/exportinfo.go: - last_write_checksum: sha1:a211dd685d03fa0b8d7e0186d15abf9756d1bf4e + last_write_checksum: sha1:aa247f4086aa7f07a7342a5478116adea95ad8a2 tests/mockserver/internal/sdk/models/components/externalsharingoptions.go: last_write_checksum: sha1:129d60a6464700de75963f0f71ce88c5cde095f2 tests/mockserver/internal/sdk/models/components/externalshortcut.go: @@ -6611,8 +6625,8 @@ trackedFiles: pristine_git_object: df2944ebda36db652b2770dd1c23be83df90fc99 tests/test_summarize.py: id: a255d8a6f627 - last_write_checksum: sha1:71c419bc1a3c07cc4fd6a509adb08f3aca93230f - pristine_git_object: 5917ddcb71c5d7818d0f075ade899d7908897c28 + last_write_checksum: sha1:0a66e5784eb0a938b4399c0829e4fd716735482b + pristine_git_object: ef4774cfa7c7777478cd7081760ef38fbb9a0f32 tests/test_tools.py: id: 70889bdf7321 last_write_checksum: sha1:3c0c220f8975b050c322f6475e95f7af4e65b995 @@ -7540,7 +7554,7 @@ generatedTests: checkdatasourceauth: "2026-02-19T15:48:52Z" getDatasourceInstanceConfiguration: "2026-03-09T18:34:29Z" updateDatasourceInstanceConfiguration: "2026-03-09T18:34:29Z" -releaseNotes: "## Python SDK Changes:\n* `glean.client.activity.feedback()`: \n * `request.feedback1.manual_feedback_info.issues[]` **Changed**\n* `glean.client.search.retrieve_feed()`: `response.results[].primary_entry.workflow.workflow.last_draft_saved_at` **Added**\n* `glean.governance.createfindingsexport()`: \n * `request.filter.statuses` **Added**\n * `response.filter.statuses` **Added**\n* `glean.governance.listfindingsexports()`: `response.exports[].filter.statuses` **Added**\n" +releaseNotes: "## Python SDK Changes:\n* `glean.client.insights.retrieve()`: `response.agents_response.agents_time_saved_insights[].feedback_user_count` **Added**\n* `glean.governance.createfindingsexport()`: \n * `request.issue_filter` **Added**\n * `response` **Changed**\n* `glean.governance.listfindingsexports()`: `response.exports[]` **Changed**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 8ff17aec..a0c5c84a 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -34,7 +34,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true python: - version: 0.12.21 + version: 0.12.22 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index a9e5c1ac..77d73f8a 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: version: 0.9.0 title: Glean API - x-source-commit-sha: 56c43aab30e05c50c9e3277f877d2ca261a345cf + x-source-commit-sha: a9a6d4f331a3052d3347e7366e1166f483ff5cb7 description: | # Introduction In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean. @@ -22,7 +22,7 @@ info: These API clients provide type-safe, idiomatic interfaces for working with Glean IndexingAPIs in your language of choice. x-logo: url: https://app.glean.com/images/glean-text2.svg - x-open-api-commit-sha: 791388b111dd5bdcce38c309f76e984ebd268577 + x-open-api-commit-sha: bee9d999e037d7c61bcd75eafa0755e05e88dba7 x-speakeasy-name: 'Glean API' servers: - url: https://{instance}-be.glean.com @@ -9354,6 +9354,9 @@ components: type: number format: float description: Average minutes saved per run for this agent over the specified time period. + feedbackUserCount: + type: integer + description: Total number of users who provided feedback on time saved for this agent over the specified time period. AgentsInsightsV2Response: allOf: - $ref: "#/components/schemas/CurrentActiveUsers" @@ -13681,6 +13684,42 @@ components: $ref: '#/components/schemas/TimeRangeFilter' archived: type: boolean + DlpIssueFilter: + properties: + searchText: + type: string + description: Text to search for in issue fields. + statuses: + type: array + items: + $ref: '#/components/schemas/DlpIssueStatus' + description: Filter by one or more issue statuses. + assigneeId: + type: string + description: Filter by assignee user ID. + infoType: + type: string + regexId: + type: string + reportIds: + type: array + items: + type: string + description: Filter by one or more report/policy IDs. + docId: + type: string + datasource: + type: string + visibility: + type: string + severities: + type: array + items: + $ref: '#/components/schemas/DlpSeverity' + description: Filter by one or more severity levels. + timeRange: + $ref: '#/components/schemas/TimeRangeFilter' + description: Filter for DLP issues. Includes document-level filters and issue-specific filters. ExportInfo: properties: createdBy: @@ -13700,9 +13739,19 @@ components: fileName: type: string description: The name of the file to export the findings to + exportType: + type: string + enum: + - FINDINGS + - DOCUMENTS + - ISSUES + description: The type of export to perform filter: $ref: '#/components/schemas/DlpFindingFilter' - description: The filters used to export the findings + description: The filters used to export the findings. Set for FINDINGS and DOCUMENTS exports. + issueFilter: + $ref: '#/components/schemas/DlpIssueFilter' + description: The filters used for ISSUES exports. status: type: string enum: @@ -13731,6 +13780,9 @@ components: description: The type of export to perform filter: $ref: '#/components/schemas/DlpFindingFilter' + issueFilter: + $ref: '#/components/schemas/DlpIssueFilter' + description: Filter for ISSUE-level exports. Used when exportType is ISSUES. fileName: type: string description: The name of the file to export the findings to diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index f9d9228d..40a893f4 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.761.3 +speakeasyVersion: 1.761.5 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:a7f1dd4dfe40c270cebc7e772bc8ef4049bc950da1ea685b954e9a2d7e118a8d - sourceBlobDigest: sha256:e781f366e902117f472dd7e69c4e5dd653f820e6141a60670a17c24dc46930b3 + sourceRevisionDigest: sha256:9e0b4fca588f78b58f6328e574fbca05e933d4154bba67ec143ad776d8c8088d + sourceBlobDigest: sha256:b9465f539f87ad950381cb10d709405eb1be8b15b32153fcc868a7f0a621db39 tags: - latest Glean Client API: @@ -16,10 +16,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:a7f1dd4dfe40c270cebc7e772bc8ef4049bc950da1ea685b954e9a2d7e118a8d - sourceBlobDigest: sha256:e781f366e902117f472dd7e69c4e5dd653f820e6141a60670a17c24dc46930b3 + sourceRevisionDigest: sha256:9e0b4fca588f78b58f6328e574fbca05e933d4154bba67ec143ad776d8c8088d + sourceBlobDigest: sha256:b9465f539f87ad950381cb10d709405eb1be8b15b32153fcc868a7f0a621db39 codeSamplesNamespace: glean-api-specs-python-code-samples - codeSamplesRevisionDigest: sha256:a88babde35272bb8f62fe6b45bde03c7a407f5a14b40f1302b05749f9f4ec1d3 + codeSamplesRevisionDigest: sha256:bc78a7bd1f9c3a21f81396a93ee9382698221d20071a8fc6d28ee3f460c5180c workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index b645dae5..e943086b 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -718,4 +718,14 @@ Based on: ### Generated - [python v0.12.21] . ### Releases -- [PyPI v0.12.21] https://pypi.org/project/glean-api-client/0.12.21 - . \ No newline at end of file +- [PyPI v0.12.21] https://pypi.org/project/glean-api-client/0.12.21 - . + +## 2026-04-15 08:37:31 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.761.5 (2.879.13) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.12.22] . +### Releases +- [PyPI v0.12.22] https://pypi.org/project/glean-api-client/0.12.22 - . \ No newline at end of file diff --git a/docs/models/agentstimesavedinsight.md b/docs/models/agentstimesavedinsight.md index 3a84fa9f..552714b4 100644 --- a/docs/models/agentstimesavedinsight.md +++ b/docs/models/agentstimesavedinsight.md @@ -3,11 +3,12 @@ ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `agent_id` | *Optional[str]* | :heavy_minus_sign: | Agent ID | | -| `agent_name` | *Optional[str]* | :heavy_minus_sign: | Agent name | | -| `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"
} | -| `is_deleted` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the agent has been deleted | | -| `run_count` | *Optional[int]* | :heavy_minus_sign: | Total number of runs for this agent over the specified time period. | | -| `mins_per_run` | *Optional[float]* | :heavy_minus_sign: | Average minutes saved per run for this agent over the specified time period. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `agent_id` | *Optional[str]* | :heavy_minus_sign: | Agent ID | | +| `agent_name` | *Optional[str]* | :heavy_minus_sign: | Agent name | | +| `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"
} | +| `is_deleted` | *Optional[bool]* | :heavy_minus_sign: | Indicates whether the agent has been deleted | | +| `run_count` | *Optional[int]* | :heavy_minus_sign: | Total number of runs for this agent over the specified time period. | | +| `mins_per_run` | *Optional[float]* | :heavy_minus_sign: | Average minutes saved per run for this agent over the specified time period. | | +| `feedback_user_count` | *Optional[int]* | :heavy_minus_sign: | Total number of users who provided feedback on time saved for this agent over the specified time period. | | \ No newline at end of file diff --git a/docs/models/dlpexportfindingsrequest.md b/docs/models/dlpexportfindingsrequest.md index 1ecf2023..3b8f7ff6 100644 --- a/docs/models/dlpexportfindingsrequest.md +++ b/docs/models/dlpexportfindingsrequest.md @@ -3,10 +3,11 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `export_type` | [Optional[models.ExportType]](../models/exporttype.md) | :heavy_minus_sign: | The type of export to perform | -| `filter_` | [Optional[models.DlpFindingFilter]](../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | -| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | -| `field_scope` | [Optional[models.FieldScope]](../models/fieldscope.md) | :heavy_minus_sign: | Controls which fields to include in the export | -| `fields_to_exclude` | List[*str*] | :heavy_minus_sign: | List of field names to exclude from the export | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `export_type` | [Optional[models.DlpExportFindingsRequestExportType]](../models/dlpexportfindingsrequestexporttype.md) | :heavy_minus_sign: | The type of export to perform | +| `filter_` | [Optional[models.DlpFindingFilter]](../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | +| `issue_filter` | [Optional[models.DlpIssueFilter]](../models/dlpissuefilter.md) | :heavy_minus_sign: | Filter for DLP issues. Includes document-level filters and issue-specific filters. | +| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | +| `field_scope` | [Optional[models.FieldScope]](../models/fieldscope.md) | :heavy_minus_sign: | Controls which fields to include in the export | +| `fields_to_exclude` | List[*str*] | :heavy_minus_sign: | List of field names to exclude from the export | \ No newline at end of file diff --git a/docs/models/exporttype.md b/docs/models/dlpexportfindingsrequestexporttype.md similarity index 58% rename from docs/models/exporttype.md rename to docs/models/dlpexportfindingsrequestexporttype.md index 9db29a82..7e9aee47 100644 --- a/docs/models/exporttype.md +++ b/docs/models/dlpexportfindingsrequestexporttype.md @@ -1,13 +1,13 @@ -# ExportType +# DlpExportFindingsRequestExportType The type of export to perform ## Example Usage ```python -from glean.api_client.models import ExportType +from glean.api_client.models import DlpExportFindingsRequestExportType -value = ExportType.FINDINGS +value = DlpExportFindingsRequestExportType.FINDINGS ``` diff --git a/docs/models/dlpissuefilter.md b/docs/models/dlpissuefilter.md new file mode 100644 index 00000000..9769c134 --- /dev/null +++ b/docs/models/dlpissuefilter.md @@ -0,0 +1,20 @@ +# DlpIssueFilter + +Filter for DLP issues. Includes document-level filters and issue-specific filters. + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `search_text` | *Optional[str]* | :heavy_minus_sign: | Text to search for in issue fields. | +| `statuses` | List[[models.DlpIssueStatus](../models/dlpissuestatus.md)] | :heavy_minus_sign: | Filter by one or more issue statuses. | +| `assignee_id` | *Optional[str]* | :heavy_minus_sign: | Filter by assignee user ID. | +| `info_type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `regex_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `report_ids` | List[*str*] | :heavy_minus_sign: | Filter by one or more report/policy IDs. | +| `doc_id` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `datasource` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `visibility` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `severities` | List[[models.DlpSeverity](../models/dlpseverity.md)] | :heavy_minus_sign: | Filter by one or more severity levels. | +| `time_range` | [Optional[models.TimeRangeFilter]](../models/timerangefilter.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/exportinfo.md b/docs/models/exportinfo.md index fd1547a8..606ef59e 100644 --- a/docs/models/exportinfo.md +++ b/docs/models/exportinfo.md @@ -3,13 +3,15 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `created_by` | [Optional[models.DlpPerson]](../models/dlpperson.md) | :heavy_minus_sign: | Details about the person who created this report/policy. | -| `start_time` | *Optional[str]* | :heavy_minus_sign: | Timestamp at which this export started. | -| `end_time` | *Optional[str]* | :heavy_minus_sign: | Timestamp at which this export completed. | -| `export_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the export | -| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | -| `filter_` | [Optional[models.DlpFindingFilter]](../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | -| `status` | [Optional[models.ExportInfoStatus]](../models/exportinfostatus.md) | :heavy_minus_sign: | The status of the export | -| `export_size` | *Optional[int]* | :heavy_minus_sign: | The size of the exported file in bytes | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `created_by` | [Optional[models.DlpPerson]](../models/dlpperson.md) | :heavy_minus_sign: | Details about the person who created this report/policy. | +| `start_time` | *Optional[str]* | :heavy_minus_sign: | Timestamp at which this export started. | +| `end_time` | *Optional[str]* | :heavy_minus_sign: | Timestamp at which this export completed. | +| `export_id` | *Optional[str]* | :heavy_minus_sign: | The ID of the export | +| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | +| `export_type` | [Optional[models.ExportInfoExportType]](../models/exportinfoexporttype.md) | :heavy_minus_sign: | The type of export to perform | +| `filter_` | [Optional[models.DlpFindingFilter]](../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | +| `issue_filter` | [Optional[models.DlpIssueFilter]](../models/dlpissuefilter.md) | :heavy_minus_sign: | Filter for DLP issues. Includes document-level filters and issue-specific filters. | +| `status` | [Optional[models.ExportInfoStatus]](../models/exportinfostatus.md) | :heavy_minus_sign: | The status of the export | +| `export_size` | *Optional[int]* | :heavy_minus_sign: | The size of the exported file in bytes | \ No newline at end of file diff --git a/docs/models/exportinfoexporttype.md b/docs/models/exportinfoexporttype.md new file mode 100644 index 00000000..fd269c2f --- /dev/null +++ b/docs/models/exportinfoexporttype.md @@ -0,0 +1,22 @@ +# ExportInfoExportType + +The type of export to perform + +## Example Usage + +```python +from glean.api_client.models import ExportInfoExportType + +value = ExportInfoExportType.FINDINGS + +# Open enum: unrecognized values are captured as UnrecognizedStr +``` + + +## Values + +| Name | Value | +| ----------- | ----------- | +| `FINDINGS` | FINDINGS | +| `DOCUMENTS` | DOCUMENTS | +| `ISSUES` | ISSUES | \ No newline at end of file diff --git a/docs/sdks/governance/README.md b/docs/sdks/governance/README.md index 8debef42..8708b51c 100644 --- a/docs/sdks/governance/README.md +++ b/docs/sdks/governance/README.md @@ -34,14 +34,15 @@ with Glean( ### Parameters -| Parameter | Type | Required | Description | -| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `export_type` | [Optional[models.ExportType]](../../models/exporttype.md) | :heavy_minus_sign: | The type of export to perform | -| `filter_` | [Optional[models.DlpFindingFilter]](../../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | -| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | -| `field_scope` | [Optional[models.FieldScope]](../../models/fieldscope.md) | :heavy_minus_sign: | Controls which fields to include in the export | -| `fields_to_exclude` | List[*str*] | :heavy_minus_sign: | List of field names to exclude from the export | -| `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.md) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | +| Parameter | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| `export_type` | [Optional[models.DlpExportFindingsRequestExportType]](../../models/dlpexportfindingsrequestexporttype.md) | :heavy_minus_sign: | The type of export to perform | +| `filter_` | [Optional[models.DlpFindingFilter]](../../models/dlpfindingfilter.md) | :heavy_minus_sign: | N/A | +| `issue_filter` | [Optional[models.DlpIssueFilter]](../../models/dlpissuefilter.md) | :heavy_minus_sign: | Filter for DLP issues. Includes document-level filters and issue-specific filters. | +| `file_name` | *Optional[str]* | :heavy_minus_sign: | The name of the file to export the findings to | +| `field_scope` | [Optional[models.FieldScope]](../../models/fieldscope.md) | :heavy_minus_sign: | Controls which fields to include in the export | +| `fields_to_exclude` | List[*str*] | :heavy_minus_sign: | List of field names to exclude from the export | +| `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/pyproject.toml b/pyproject.toml index b482729a..cc9c3375 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "glean-api-client" -version = "0.12.21" +version = "0.12.22" description = "Python Client SDK Generated by Speakeasy." authors = [{ name = "Glean Technologies, Inc." },] readme = "README-PYPI.md" diff --git a/src/glean/api_client/_version.py b/src/glean/api_client/_version.py index 8e3c4c8b..dac31135 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-api-client" -__version__: str = "0.12.21" +__version__: str = "0.12.22" __openapi_doc_version__: str = "0.9.0" -__gen_version__: str = "2.879.11" -__user_agent__: str = "speakeasy-sdk/python 0.12.21 2.879.11 0.9.0 glean-api-client" +__gen_version__: str = "2.879.13" +__user_agent__: str = "speakeasy-sdk/python 0.12.22 2.879.13 0.9.0 glean-api-client" try: if __package__ is not None: diff --git a/src/glean/api_client/governance.py b/src/glean/api_client/governance.py index 7f8a45f2..3321373a 100644 --- a/src/glean/api_client/governance.py +++ b/src/glean/api_client/governance.py @@ -13,10 +13,13 @@ class Governance(BaseSDK): def createfindingsexport( self, *, - export_type: Optional[models.ExportType] = None, + export_type: Optional[models.DlpExportFindingsRequestExportType] = None, filter_: Optional[ Union[models.DlpFindingFilter, models.DlpFindingFilterTypedDict] ] = None, + issue_filter: Optional[ + Union[models.DlpIssueFilter, models.DlpIssueFilterTypedDict] + ] = None, file_name: Optional[str] = None, field_scope: Optional[models.FieldScope] = None, fields_to_exclude: Optional[List[str]] = None, @@ -31,6 +34,7 @@ def createfindingsexport( :param export_type: The type of export to perform :param filter_: + :param issue_filter: Filter for DLP issues. Includes document-level filters and issue-specific filters. :param file_name: The name of the file to export the findings to :param field_scope: Controls which fields to include in the export :param fields_to_exclude: List of field names to exclude from the export @@ -54,6 +58,9 @@ def createfindingsexport( filter_=utils.get_pydantic_model( filter_, Optional[models.DlpFindingFilter] ), + issue_filter=utils.get_pydantic_model( + issue_filter, Optional[models.DlpIssueFilter] + ), file_name=file_name, field_scope=field_scope, fields_to_exclude=fields_to_exclude, @@ -116,10 +123,13 @@ def createfindingsexport( async def createfindingsexport_async( self, *, - export_type: Optional[models.ExportType] = None, + export_type: Optional[models.DlpExportFindingsRequestExportType] = None, filter_: Optional[ Union[models.DlpFindingFilter, models.DlpFindingFilterTypedDict] ] = None, + issue_filter: Optional[ + Union[models.DlpIssueFilter, models.DlpIssueFilterTypedDict] + ] = None, file_name: Optional[str] = None, field_scope: Optional[models.FieldScope] = None, fields_to_exclude: Optional[List[str]] = None, @@ -134,6 +144,7 @@ async def createfindingsexport_async( :param export_type: The type of export to perform :param filter_: + :param issue_filter: Filter for DLP issues. Includes document-level filters and issue-specific filters. :param file_name: The name of the file to export the findings to :param field_scope: Controls which fields to include in the export :param fields_to_exclude: List of field names to exclude from the export @@ -157,6 +168,9 @@ async def createfindingsexport_async( filter_=utils.get_pydantic_model( filter_, Optional[models.DlpFindingFilter] ), + issue_filter=utils.get_pydantic_model( + issue_filter, Optional[models.DlpIssueFilter] + ), file_name=file_name, field_scope=field_scope, fields_to_exclude=fields_to_exclude, diff --git a/src/glean/api_client/models/__init__.py b/src/glean/api_client/models/__init__.py index d494a415..1a54febc 100644 --- a/src/glean/api_client/models/__init__.py +++ b/src/glean/api_client/models/__init__.py @@ -556,12 +556,13 @@ from .dlpconfig import DlpConfig, DlpConfigTypedDict from .dlpexportfindingsrequest import ( DlpExportFindingsRequest, + DlpExportFindingsRequestExportType, DlpExportFindingsRequestTypedDict, - ExportType, FieldScope, ) from .dlpfindingfilter import DlpFindingFilter, DlpFindingFilterTypedDict from .dlpfrequency import DlpFrequency + from .dlpissuefilter import DlpIssueFilter, DlpIssueFilterTypedDict from .dlpissuestatus import DlpIssueStatus from .dlpperson import DlpPerson, DlpPersonTypedDict from .dlppersonmetadata import DlpPersonMetadata, DlpPersonMetadataTypedDict @@ -675,7 +676,12 @@ from .eventclassification import EventClassification, EventClassificationTypedDict from .eventclassificationname import EventClassificationName from .eventstrategyname import EventStrategyName - from .exportinfo import ExportInfo, ExportInfoStatus, ExportInfoTypedDict + from .exportinfo import ( + ExportInfo, + ExportInfoExportType, + ExportInfoStatus, + ExportInfoTypedDict, + ) from .externalsharingoptions import ( ExternalSharingOptions, ExternalSharingOptionsTypedDict, @@ -1814,10 +1820,13 @@ "DlpConfig", "DlpConfigTypedDict", "DlpExportFindingsRequest", + "DlpExportFindingsRequestExportType", "DlpExportFindingsRequestTypedDict", "DlpFindingFilter", "DlpFindingFilterTypedDict", "DlpFrequency", + "DlpIssueFilter", + "DlpIssueFilterTypedDict", "DlpIssueStatus", "DlpPerson", "DlpPersonMetadata", @@ -1918,9 +1927,9 @@ "EventClassificationTypedDict", "EventStrategyName", "ExportInfo", + "ExportInfoExportType", "ExportInfoStatus", "ExportInfoTypedDict", - "ExportType", "ExternalSharingOptions", "ExternalSharingOptionsTypedDict", "ExternalShortcut", @@ -2942,12 +2951,14 @@ "DlpConfig": ".dlpconfig", "DlpConfigTypedDict": ".dlpconfig", "DlpExportFindingsRequest": ".dlpexportfindingsrequest", + "DlpExportFindingsRequestExportType": ".dlpexportfindingsrequest", "DlpExportFindingsRequestTypedDict": ".dlpexportfindingsrequest", - "ExportType": ".dlpexportfindingsrequest", "FieldScope": ".dlpexportfindingsrequest", "DlpFindingFilter": ".dlpfindingfilter", "DlpFindingFilterTypedDict": ".dlpfindingfilter", "DlpFrequency": ".dlpfrequency", + "DlpIssueFilter": ".dlpissuefilter", + "DlpIssueFilterTypedDict": ".dlpissuefilter", "DlpIssueStatus": ".dlpissuestatus", "DlpPerson": ".dlpperson", "DlpPersonTypedDict": ".dlpperson", @@ -3037,6 +3048,7 @@ "EventClassificationName": ".eventclassificationname", "EventStrategyName": ".eventstrategyname", "ExportInfo": ".exportinfo", + "ExportInfoExportType": ".exportinfo", "ExportInfoStatus": ".exportinfo", "ExportInfoTypedDict": ".exportinfo", "ExternalSharingOptions": ".externalsharingoptions", diff --git a/src/glean/api_client/models/agentstimesavedinsight.py b/src/glean/api_client/models/agentstimesavedinsight.py index f81071aa..25a613c6 100644 --- a/src/glean/api_client/models/agentstimesavedinsight.py +++ b/src/glean/api_client/models/agentstimesavedinsight.py @@ -22,6 +22,8 @@ class AgentsTimeSavedInsightTypedDict(TypedDict): r"""Total number of runs for this agent over the specified time period.""" mins_per_run: NotRequired[float] r"""Average minutes saved per run for this agent over the specified time period.""" + feedback_user_count: NotRequired[int] + r"""Total number of users who provided feedback on time saved for this agent over the specified time period.""" class AgentsTimeSavedInsight(BaseModel): @@ -43,10 +45,23 @@ class AgentsTimeSavedInsight(BaseModel): mins_per_run: Annotated[Optional[float], pydantic.Field(alias="minsPerRun")] = None r"""Average minutes saved per run for this agent over the specified time period.""" + feedback_user_count: Annotated[ + Optional[int], pydantic.Field(alias="feedbackUserCount") + ] = None + r"""Total number of users who provided feedback on time saved for this agent over the specified time period.""" + @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["agentId", "agentName", "icon", "isDeleted", "runCount", "minsPerRun"] + [ + "agentId", + "agentName", + "icon", + "isDeleted", + "runCount", + "minsPerRun", + "feedbackUserCount", + ] ) serialized = handler(self) m = {} diff --git a/src/glean/api_client/models/dlpexportfindingsrequest.py b/src/glean/api_client/models/dlpexportfindingsrequest.py index b4c54bb4..44fedb77 100644 --- a/src/glean/api_client/models/dlpexportfindingsrequest.py +++ b/src/glean/api_client/models/dlpexportfindingsrequest.py @@ -2,6 +2,7 @@ from __future__ import annotations from .dlpfindingfilter import DlpFindingFilter, DlpFindingFilterTypedDict +from .dlpissuefilter import DlpIssueFilter, DlpIssueFilterTypedDict from enum import Enum from glean.api_client.types import BaseModel, UNSET_SENTINEL import pydantic @@ -10,7 +11,7 @@ from typing_extensions import Annotated, NotRequired, TypedDict -class ExportType(str, Enum): +class DlpExportFindingsRequestExportType(str, Enum): r"""The type of export to perform""" FINDINGS = "FINDINGS" @@ -27,9 +28,11 @@ class FieldScope(str, Enum): class DlpExportFindingsRequestTypedDict(TypedDict): - export_type: NotRequired[ExportType] + export_type: NotRequired[DlpExportFindingsRequestExportType] r"""The type of export to perform""" filter_: NotRequired[DlpFindingFilterTypedDict] + issue_filter: NotRequired[DlpIssueFilterTypedDict] + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" file_name: NotRequired[str] r"""The name of the file to export the findings to""" field_scope: NotRequired[FieldScope] @@ -39,15 +42,20 @@ class DlpExportFindingsRequestTypedDict(TypedDict): class DlpExportFindingsRequest(BaseModel): - export_type: Annotated[Optional[ExportType], pydantic.Field(alias="exportType")] = ( - None - ) + export_type: Annotated[ + Optional[DlpExportFindingsRequestExportType], pydantic.Field(alias="exportType") + ] = None r"""The type of export to perform""" filter_: Annotated[Optional[DlpFindingFilter], pydantic.Field(alias="filter")] = ( None ) + issue_filter: Annotated[ + Optional[DlpIssueFilter], pydantic.Field(alias="issueFilter") + ] = None + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" + file_name: Annotated[Optional[str], pydantic.Field(alias="fileName")] = None r"""The name of the file to export the findings to""" @@ -64,7 +72,14 @@ class DlpExportFindingsRequest(BaseModel): @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["exportType", "filter", "fileName", "fieldScope", "fieldsToExclude"] + [ + "exportType", + "filter", + "issueFilter", + "fileName", + "fieldScope", + "fieldsToExclude", + ] ) serialized = handler(self) m = {} diff --git a/src/glean/api_client/models/dlpissuefilter.py b/src/glean/api_client/models/dlpissuefilter.py new file mode 100644 index 00000000..ac7f76b7 --- /dev/null +++ b/src/glean/api_client/models/dlpissuefilter.py @@ -0,0 +1,101 @@ +"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" + +from __future__ import annotations +from .dlpissuestatus import DlpIssueStatus +from .dlpseverity import DlpSeverity +from .timerangefilter import TimeRangeFilter, TimeRangeFilterTypedDict +from glean.api_client.types import BaseModel, UNSET_SENTINEL +import pydantic +from pydantic import model_serializer +from typing import List, Optional +from typing_extensions import Annotated, NotRequired, TypedDict + + +class DlpIssueFilterTypedDict(TypedDict): + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" + + search_text: NotRequired[str] + r"""Text to search for in issue fields.""" + statuses: NotRequired[List[DlpIssueStatus]] + r"""Filter by one or more issue statuses.""" + assignee_id: NotRequired[str] + r"""Filter by assignee user ID.""" + info_type: NotRequired[str] + regex_id: NotRequired[str] + report_ids: NotRequired[List[str]] + r"""Filter by one or more report/policy IDs.""" + doc_id: NotRequired[str] + datasource: NotRequired[str] + visibility: NotRequired[str] + severities: NotRequired[List[DlpSeverity]] + r"""Filter by one or more severity levels.""" + time_range: NotRequired[TimeRangeFilterTypedDict] + + +class DlpIssueFilter(BaseModel): + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" + + search_text: Annotated[Optional[str], pydantic.Field(alias="searchText")] = None + r"""Text to search for in issue fields.""" + + statuses: Optional[List[DlpIssueStatus]] = None + r"""Filter by one or more issue statuses.""" + + assignee_id: Annotated[Optional[str], pydantic.Field(alias="assigneeId")] = None + r"""Filter by assignee user ID.""" + + info_type: Annotated[Optional[str], pydantic.Field(alias="infoType")] = None + + regex_id: Annotated[Optional[str], pydantic.Field(alias="regexId")] = None + + report_ids: Annotated[Optional[List[str]], pydantic.Field(alias="reportIds")] = None + r"""Filter by one or more report/policy IDs.""" + + doc_id: Annotated[Optional[str], pydantic.Field(alias="docId")] = None + + datasource: Optional[str] = None + + visibility: Optional[str] = None + + severities: Optional[List[DlpSeverity]] = None + r"""Filter by one or more severity levels.""" + + time_range: Annotated[ + Optional[TimeRangeFilter], pydantic.Field(alias="timeRange") + ] = None + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + [ + "searchText", + "statuses", + "assigneeId", + "infoType", + "regexId", + "reportIds", + "docId", + "datasource", + "visibility", + "severities", + "timeRange", + ] + ) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k, serialized.get(n)) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + +try: + DlpIssueFilter.model_rebuild() +except NameError: + pass diff --git a/src/glean/api_client/models/exportinfo.py b/src/glean/api_client/models/exportinfo.py index 039b187e..859689a2 100644 --- a/src/glean/api_client/models/exportinfo.py +++ b/src/glean/api_client/models/exportinfo.py @@ -2,6 +2,7 @@ from __future__ import annotations from .dlpfindingfilter import DlpFindingFilter, DlpFindingFilterTypedDict +from .dlpissuefilter import DlpIssueFilter, DlpIssueFilterTypedDict from .dlpperson import DlpPerson, DlpPersonTypedDict from enum import Enum from glean.api_client import models, utils @@ -12,6 +13,14 @@ from typing_extensions import Annotated, NotRequired, TypedDict +class ExportInfoExportType(str, Enum, metaclass=utils.OpenEnumMeta): + r"""The type of export to perform""" + + FINDINGS = "FINDINGS" + DOCUMENTS = "DOCUMENTS" + ISSUES = "ISSUES" + + class ExportInfoStatus(str, Enum, metaclass=utils.OpenEnumMeta): r"""The status of the export""" @@ -31,7 +40,11 @@ class ExportInfoTypedDict(TypedDict): r"""The ID of the export""" file_name: NotRequired[str] r"""The name of the file to export the findings to""" + export_type: NotRequired[ExportInfoExportType] + r"""The type of export to perform""" filter_: NotRequired[DlpFindingFilterTypedDict] + issue_filter: NotRequired[DlpIssueFilterTypedDict] + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" status: NotRequired[ExportInfoStatus] r"""The status of the export""" export_size: NotRequired[int] @@ -54,16 +67,35 @@ class ExportInfo(BaseModel): file_name: Annotated[Optional[str], pydantic.Field(alias="fileName")] = None r"""The name of the file to export the findings to""" + export_type: Annotated[ + Optional[ExportInfoExportType], pydantic.Field(alias="exportType") + ] = None + r"""The type of export to perform""" + filter_: Annotated[Optional[DlpFindingFilter], pydantic.Field(alias="filter")] = ( None ) + issue_filter: Annotated[ + Optional[DlpIssueFilter], pydantic.Field(alias="issueFilter") + ] = None + r"""Filter for DLP issues. Includes document-level filters and issue-specific filters.""" + status: Optional[ExportInfoStatus] = None r"""The status of the export""" export_size: Annotated[Optional[int], pydantic.Field(alias="exportSize")] = None r"""The size of the exported file in bytes""" + @field_serializer("export_type") + def serialize_export_type(self, value): + if isinstance(value, str): + try: + return models.ExportInfoExportType(value) + except ValueError: + return value + return value + @field_serializer("status") def serialize_status(self, value): if isinstance(value, str): @@ -82,7 +114,9 @@ def serialize_model(self, handler): "endTime", "exportId", "fileName", + "exportType", "filter", + "issueFilter", "status", "exportSize", ] diff --git a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go index 96d4127e..87401958 100644 --- a/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/tests/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -628,8 +628,8 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { Roles: []components.UserRoleSpecification{}, SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( components.DocumentSpec3{ - UgcType: components.DocumentSpecUgcType1Announcements, - ContentID: 848009, + UgcType: components.DocumentSpecUgcType1Shortcuts, + ContentID: 602763, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), diff --git a/tests/mockserver/internal/sdk/models/components/agentstimesavedinsight.go b/tests/mockserver/internal/sdk/models/components/agentstimesavedinsight.go index 96168672..2a8e31d9 100644 --- a/tests/mockserver/internal/sdk/models/components/agentstimesavedinsight.go +++ b/tests/mockserver/internal/sdk/models/components/agentstimesavedinsight.go @@ -15,6 +15,8 @@ type AgentsTimeSavedInsight struct { RunCount *int64 `json:"runCount,omitempty"` // Average minutes saved per run for this agent over the specified time period. MinsPerRun *float32 `json:"minsPerRun,omitempty"` + // Total number of users who provided feedback on time saved for this agent over the specified time period. + FeedbackUserCount *int64 `json:"feedbackUserCount,omitempty"` } func (o *AgentsTimeSavedInsight) GetAgentID() *string { @@ -58,3 +60,10 @@ func (o *AgentsTimeSavedInsight) GetMinsPerRun() *float32 { } return o.MinsPerRun } + +func (o *AgentsTimeSavedInsight) GetFeedbackUserCount() *int64 { + if o == nil { + return nil + } + return o.FeedbackUserCount +} diff --git a/tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go b/tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go index bc646980..77fdbe96 100644 --- a/tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go +++ b/tests/mockserver/internal/sdk/models/components/dlpexportfindingsrequest.go @@ -7,19 +7,19 @@ import ( "fmt" ) -// ExportType - The type of export to perform -type ExportType string +// DlpExportFindingsRequestExportType - The type of export to perform +type DlpExportFindingsRequestExportType string const ( - ExportTypeFindings ExportType = "FINDINGS" - ExportTypeDocuments ExportType = "DOCUMENTS" - ExportTypeIssues ExportType = "ISSUES" + DlpExportFindingsRequestExportTypeFindings DlpExportFindingsRequestExportType = "FINDINGS" + DlpExportFindingsRequestExportTypeDocuments DlpExportFindingsRequestExportType = "DOCUMENTS" + DlpExportFindingsRequestExportTypeIssues DlpExportFindingsRequestExportType = "ISSUES" ) -func (e ExportType) ToPointer() *ExportType { +func (e DlpExportFindingsRequestExportType) ToPointer() *DlpExportFindingsRequestExportType { return &e } -func (e *ExportType) UnmarshalJSON(data []byte) error { +func (e *DlpExportFindingsRequestExportType) UnmarshalJSON(data []byte) error { var v string if err := json.Unmarshal(data, &v); err != nil { return err @@ -30,10 +30,10 @@ func (e *ExportType) UnmarshalJSON(data []byte) error { case "DOCUMENTS": fallthrough case "ISSUES": - *e = ExportType(v) + *e = DlpExportFindingsRequestExportType(v) return nil default: - return fmt.Errorf("invalid value for ExportType: %v", v) + return fmt.Errorf("invalid value for DlpExportFindingsRequestExportType: %v", v) } } @@ -69,8 +69,10 @@ func (e *FieldScope) UnmarshalJSON(data []byte) error { type DlpExportFindingsRequest struct { // The type of export to perform - ExportType *ExportType `json:"exportType,omitempty"` - Filter *DlpFindingFilter `json:"filter,omitempty"` + ExportType *DlpExportFindingsRequestExportType `json:"exportType,omitempty"` + Filter *DlpFindingFilter `json:"filter,omitempty"` + // Filter for DLP issues. Includes document-level filters and issue-specific filters. + IssueFilter *DlpIssueFilter `json:"issueFilter,omitempty"` // The name of the file to export the findings to FileName *string `json:"fileName,omitempty"` // Controls which fields to include in the export @@ -79,7 +81,7 @@ type DlpExportFindingsRequest struct { FieldsToExclude []string `json:"fieldsToExclude,omitempty"` } -func (o *DlpExportFindingsRequest) GetExportType() *ExportType { +func (o *DlpExportFindingsRequest) GetExportType() *DlpExportFindingsRequestExportType { if o == nil { return nil } @@ -93,6 +95,13 @@ func (o *DlpExportFindingsRequest) GetFilter() *DlpFindingFilter { return o.Filter } +func (o *DlpExportFindingsRequest) GetIssueFilter() *DlpIssueFilter { + if o == nil { + return nil + } + return o.IssueFilter +} + func (o *DlpExportFindingsRequest) GetFileName() *string { if o == nil { return nil diff --git a/tests/mockserver/internal/sdk/models/components/dlpissuefilter.go b/tests/mockserver/internal/sdk/models/components/dlpissuefilter.go new file mode 100644 index 00000000..484c2a99 --- /dev/null +++ b/tests/mockserver/internal/sdk/models/components/dlpissuefilter.go @@ -0,0 +1,100 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +package components + +// DlpIssueFilter - Filter for DLP issues. Includes document-level filters and issue-specific filters. +type DlpIssueFilter struct { + // Text to search for in issue fields. + SearchText *string `json:"searchText,omitempty"` + // Filter by one or more issue statuses. + Statuses []DlpIssueStatus `json:"statuses,omitempty"` + // Filter by assignee user ID. + AssigneeID *string `json:"assigneeId,omitempty"` + InfoType *string `json:"infoType,omitempty"` + RegexID *string `json:"regexId,omitempty"` + // Filter by one or more report/policy IDs. + ReportIds []string `json:"reportIds,omitempty"` + DocID *string `json:"docId,omitempty"` + Datasource *string `json:"datasource,omitempty"` + Visibility *string `json:"visibility,omitempty"` + // Filter by one or more severity levels. + Severities []DlpSeverity `json:"severities,omitempty"` + TimeRange *TimeRangeFilter `json:"timeRange,omitempty"` +} + +func (o *DlpIssueFilter) GetSearchText() *string { + if o == nil { + return nil + } + return o.SearchText +} + +func (o *DlpIssueFilter) GetStatuses() []DlpIssueStatus { + if o == nil { + return nil + } + return o.Statuses +} + +func (o *DlpIssueFilter) GetAssigneeID() *string { + if o == nil { + return nil + } + return o.AssigneeID +} + +func (o *DlpIssueFilter) GetInfoType() *string { + if o == nil { + return nil + } + return o.InfoType +} + +func (o *DlpIssueFilter) GetRegexID() *string { + if o == nil { + return nil + } + return o.RegexID +} + +func (o *DlpIssueFilter) GetReportIds() []string { + if o == nil { + return nil + } + return o.ReportIds +} + +func (o *DlpIssueFilter) GetDocID() *string { + if o == nil { + return nil + } + return o.DocID +} + +func (o *DlpIssueFilter) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} + +func (o *DlpIssueFilter) GetVisibility() *string { + if o == nil { + return nil + } + return o.Visibility +} + +func (o *DlpIssueFilter) GetSeverities() []DlpSeverity { + if o == nil { + return nil + } + return o.Severities +} + +func (o *DlpIssueFilter) GetTimeRange() *TimeRangeFilter { + if o == nil { + return nil + } + return o.TimeRange +} diff --git a/tests/mockserver/internal/sdk/models/components/exportinfo.go b/tests/mockserver/internal/sdk/models/components/exportinfo.go index 9cd209bf..74fb0752 100644 --- a/tests/mockserver/internal/sdk/models/components/exportinfo.go +++ b/tests/mockserver/internal/sdk/models/components/exportinfo.go @@ -7,6 +7,36 @@ import ( "fmt" ) +// ExportInfoExportType - The type of export to perform +type ExportInfoExportType string + +const ( + ExportInfoExportTypeFindings ExportInfoExportType = "FINDINGS" + ExportInfoExportTypeDocuments ExportInfoExportType = "DOCUMENTS" + ExportInfoExportTypeIssues ExportInfoExportType = "ISSUES" +) + +func (e ExportInfoExportType) ToPointer() *ExportInfoExportType { + return &e +} +func (e *ExportInfoExportType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "FINDINGS": + fallthrough + case "DOCUMENTS": + fallthrough + case "ISSUES": + *e = ExportInfoExportType(v) + return nil + default: + return fmt.Errorf("invalid value for ExportInfoExportType: %v", v) + } +} + // ExportInfoStatus - The status of the export type ExportInfoStatus string @@ -47,8 +77,12 @@ type ExportInfo struct { // The ID of the export ExportID *string `json:"exportId,omitempty"` // The name of the file to export the findings to - FileName *string `json:"fileName,omitempty"` - Filter *DlpFindingFilter `json:"filter,omitempty"` + FileName *string `json:"fileName,omitempty"` + // The type of export to perform + ExportType *ExportInfoExportType `json:"exportType,omitempty"` + Filter *DlpFindingFilter `json:"filter,omitempty"` + // Filter for DLP issues. Includes document-level filters and issue-specific filters. + IssueFilter *DlpIssueFilter `json:"issueFilter,omitempty"` // The status of the export Status *ExportInfoStatus `json:"status,omitempty"` // The size of the exported file in bytes @@ -90,6 +124,13 @@ func (o *ExportInfo) GetFileName() *string { return o.FileName } +func (o *ExportInfo) GetExportType() *ExportInfoExportType { + if o == nil { + return nil + } + return o.ExportType +} + func (o *ExportInfo) GetFilter() *DlpFindingFilter { if o == nil { return nil @@ -97,6 +138,13 @@ func (o *ExportInfo) GetFilter() *DlpFindingFilter { return o.Filter } +func (o *ExportInfo) GetIssueFilter() *DlpIssueFilter { + if o == nil { + return nil + } + return o.IssueFilter +} + func (o *ExportInfo) GetStatus() *ExportInfoStatus { if o == nil { return nil diff --git a/tests/test_summarize.py b/tests/test_summarize.py index 5917ddcb..ef4774cf 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, models +from glean.api_client import Glean import os from tests.test_client import create_test_http_client @@ -18,11 +18,10 @@ def test_summarize_summarize(): res = glean.client.documents.summarize( document_specs=[ { - "id": "", + "url": "https://nervous-stall.info", }, { - "ugc_type": models.DocumentSpecUgcType1.COLLECTIONS, - "content_id": 886976, + "id": "", }, ] )