viio-sync-api-sdk 0.2.0__tar.gz → 0.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. viio_sync_api_sdk-0.4.0/CHANGELOG.md +42 -0
  2. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/PKG-INFO +2 -2
  3. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/pyproject.toml +1 -1
  4. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_client.py +1 -0
  5. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/anthropic_pb2.py +62 -0
  6. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/anthropic_pb2.pyi +1 -1
  7. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/anthropic_pb2_grpc.py +1 -1
  8. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/bamboo_hr_pb2_grpc.py +1 -1
  9. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/contracts_pb2.py +172 -0
  10. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/contracts_pb2.pyi +59 -10
  11. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/contracts_pb2_grpc.py +1 -1
  12. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/focus_pb2.py +42 -0
  13. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/focus_pb2.pyi +137 -0
  14. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/focus_pb2_grpc.py +24 -0
  15. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/generic_pb2_grpc.py +1 -1
  16. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/google_pb2.py +8 -8
  17. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/google_pb2_grpc.py +1 -1
  18. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/microsoft_pb2_grpc.py +1 -1
  19. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/okta_pb2_grpc.py +1 -1
  20. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/openai_pb2.py +60 -0
  21. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/openai_pb2.pyi +179 -0
  22. viio_sync_api_sdk-0.4.0/src/viio_sync_api/v1/openai_pb2_grpc.py +24 -0
  23. viio_sync_api_sdk-0.2.0/CHANGELOG.md +0 -23
  24. viio_sync_api_sdk-0.2.0/src/viio_sync_api/v1/anthropic_pb2.py +0 -62
  25. viio_sync_api_sdk-0.2.0/src/viio_sync_api/v1/contracts_pb2.py +0 -160
  26. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/.gitignore +0 -0
  27. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/LICENSE +0 -0
  28. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/README.md +0 -0
  29. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/examples/__init__.py +0 -0
  30. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/examples/aws_lambda.py +0 -0
  31. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/examples/requirements.txt +0 -0
  32. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/examples/template.yaml +0 -0
  33. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/__init__.py +0 -0
  34. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_auth.py +0 -0
  35. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_endpoint.py +0 -0
  36. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_errors.py +0 -0
  37. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_options.py +0 -0
  38. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/_transport.py +0 -0
  39. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/py.typed +0 -0
  40. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/__init__.py +0 -0
  41. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/bamboo_hr_pb2.py +0 -0
  42. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/bamboo_hr_pb2.pyi +0 -0
  43. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/generic_pb2.py +0 -0
  44. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/generic_pb2.pyi +0 -0
  45. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/google_pb2.pyi +0 -0
  46. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/microsoft_pb2.py +0 -0
  47. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/microsoft_pb2.pyi +0 -0
  48. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/okta_pb2.py +0 -0
  49. {viio_sync_api_sdk-0.2.0 → viio_sync_api_sdk-0.4.0}/src/viio_sync_api/v1/okta_pb2.pyi +0 -0
@@ -0,0 +1,42 @@
1
+ # Changelog
2
+
3
+ ## [0.4.0](https://github.com/viio-io/integration-domain/compare/viio-sync-api-sdk-v0.3.0...viio-sync-api-sdk-v0.4.0) (2026-09-21)
4
+
5
+ ### Features
6
+
7
+ - ingest AWS cloud cost in FOCUS format through the Sync API ([#2466](https://github.com/viio-io/integration-domain/issues/2466)) ([898b8a1](https://github.com/viio-io/integration-domain/commit/898b8a1897c8e6fb5f8e4e8d45801f23f906460e))
8
+ - rename Anthropic messages usage contract ([#2512](https://github.com/viio-io/integration-domain/issues/2512)) ([1d555a4](https://github.com/viio-io/integration-domain/commit/1d555a4e03860e22c2c715fe92a5035e1ea7f4a4))
9
+ - **Slack:** survey bot users fetcher with a Slack account flag, safe for two installations ([#2474](https://github.com/viio-io/integration-domain/issues/2474)) ([f559468](https://github.com/viio-io/integration-domain/commit/f5594684ca1aec8499dd3bc415032e8769dc4e11))
10
+
11
+ ### Bugfixes
12
+
13
+ - rename the Slack surveys account flag to hasAppInstalled ([#2491](https://github.com/viio-io/integration-domain/issues/2491)) ([8a9afd0](https://github.com/viio-io/integration-domain/commit/8a9afd06ccc7af4a32c7247d6a8769a4c0949622))
14
+
15
+ ## [0.3.0](https://github.com/viio-io/integration-domain/compare/viio-sync-api-sdk-v0.2.0...viio-sync-api-sdk-v0.3.0) (2026-09-08)
16
+
17
+ ### Features
18
+
19
+ - publish OpenAI organization usage ([#2422](https://github.com/viio-io/integration-domain/issues/2422)) ([91c0410](https://github.com/viio-io/integration-domain/commit/91c04108cd7cc7e25b62738bbd43dbe0557ac234))
20
+
21
+ ### Bugfixes
22
+
23
+ - **sync-api:** let Google employees have no family name ([#2362](https://github.com/viio-io/integration-domain/issues/2362)) ([2a106eb](https://github.com/viio-io/integration-domain/commit/2a106eb8afedf565dfbd45c5d29043fe01a6ef0a))
24
+
25
+ ## [0.2.0](https://github.com/viio-io/integration-domain/compare/viio-sync-api-sdk-v0.1.0...viio-sync-api-sdk-v0.2.0) (2026-08-05)
26
+
27
+ ### Features
28
+
29
+ - **sync-api:** add Microsoft audit log details ([#2338](https://github.com/viio-io/integration-domain/issues/2338)) ([2eb24b4](https://github.com/viio-io/integration-domain/commit/2eb24b4e03a1d60099ca54cc179a5a48a3e1442d))
30
+ - **sync-api:** add optional account type to the Account contract ([#2331](https://github.com/viio-io/integration-domain/issues/2331)) ([4c734c5](https://github.com/viio-io/integration-domain/commit/4c734c5e39c47886978e785bc4fb5ff20898d0ec)), closes [#2328](https://github.com/viio-io/integration-domain/issues/2328)
31
+
32
+ ### Bugfixes
33
+
34
+ - **sync-api-sdk:** repair release publishing ([#2323](https://github.com/viio-io/integration-domain/issues/2323)) ([9510126](https://github.com/viio-io/integration-domain/commit/9510126bf2541a781c8abdc742142c6b81ce7de6))
35
+
36
+ ## 0.1.0 (2026-07-31)
37
+
38
+ ### Features
39
+
40
+ - **sync-api:** add Python SDK ([#2313](https://github.com/viio-io/integration-domain/issues/2313)) ([dbbfcf5](https://github.com/viio-io/integration-domain/commit/dbbfcf585dc9d99f71fba6e1ef1d3c4e5f57f9f5))
41
+
42
+ ## Changelog
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: viio-sync-api-sdk
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Async Python SDK for the Viio Sync API
5
5
  Project-URL: Documentation, https://developers.viio.io/sync-api
6
6
  Project-URL: Changelog, https://developers.viio.io/sync-api
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "viio-sync-api-sdk"
7
- version = "0.2.0"
7
+ version = "0.4.0"
8
8
  description = "Async Python SDK for the Viio Sync API"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -36,6 +36,7 @@ _TYPED_WRAPPERS = (
36
36
  "audit_logs",
37
37
  "ai_usage",
38
38
  "ai_costs",
39
+ "cloud_costs",
39
40
  )
40
41
 
41
42
 
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: viio/sync/v1/anthropic.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'viio/sync/v1/anthropic.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cviio/sync/v1/anthropic.proto\x12\x0cviio.sync.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa8\x05\n\x16\x41nthropicMessagesUsage\x12/\n\x0bstarting_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tending_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\naccount_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x17\n\napi_key_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12service_account_id\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cworkspace_id\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05model\x18\x07 \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0cservice_tier\x18\x08 \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x63ontext_window\x18\t \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rinference_geo\x18\n \x01(\tH\x07\x88\x01\x01\x12\x1d\n\x15uncached_input_tokens\x18\x0b \x01(\x03\x12\x1f\n\x17\x63\x61\x63he_read_input_tokens\x18\x0c \x01(\x03\x12\x15\n\routput_tokens\x18\r \x01(\x03\x12<\n\x0e\x63\x61\x63he_creation\x18\x0e \x01(\x0b\x32$.viio.sync.v1.AnthropicCacheCreation\x12=\n\x0fserver_tool_use\x18\x0f \x01(\x0b\x32$.viio.sync.v1.AnthropicServerToolUseB\r\n\x0b_account_idB\r\n\x0b_api_key_idB\x15\n\x13_service_account_idB\x0f\n\r_workspace_idB\x08\n\x06_modelB\x0f\n\r_service_tierB\x11\n\x0f_context_windowB\x10\n\x0e_inference_geo\"^\n\x16\x41nthropicCacheCreation\x12!\n\x19\x65phemeral_1h_input_tokens\x18\x01 \x01(\x03\x12!\n\x19\x65phemeral_5m_input_tokens\x18\x02 \x01(\x03\"5\n\x16\x41nthropicServerToolUse\x12\x1b\n\x13web_search_requests\x18\x01 \x01(\x03\"\xdd\x03\n\rAnthropicCost\x12/\n\x0bstarting_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\tending_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06\x61mount\x18\x03 \x01(\t\x12\x10\n\x08\x63urrency\x18\x04 \x01(\t\x12\x19\n\x0cworkspace_id\x18\x05 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x16\n\tcost_type\x18\x07 \x01(\tH\x02\x88\x01\x01\x12\x17\n\ntoken_type\x18\x08 \x01(\tH\x03\x88\x01\x01\x12\x12\n\x05model\x18\t \x01(\tH\x04\x88\x01\x01\x12\x19\n\x0cservice_tier\x18\n \x01(\tH\x05\x88\x01\x01\x12\x1b\n\x0e\x63ontext_window\x18\x0b \x01(\tH\x06\x88\x01\x01\x12\x1a\n\rinference_geo\x18\x0c \x01(\tH\x07\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0e\n\x0c_descriptionB\x0c\n\n_cost_typeB\r\n\x0b_token_typeB\x08\n\x06_modelB\x0f\n\r_service_tierB\x11\n\x0f_context_windowB\x10\n\x0e_inference_geo\"\x92\x04\n\x18\x41nthropicClaudeCodeUsage\x12(\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x05\x61\x63tor\x18\x02 \x01(\x0b\x32&.viio.sync.v1.AnthropicClaudeCodeActor\x12\x1c\n\x0forganization_id\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rcustomer_type\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x1e\n\x11subscription_type\x18\x05 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rterminal_type\x18\x06 \x01(\tH\x03\x88\x01\x01\x12\x42\n\x0c\x63ore_metrics\x18\x07 \x01(\x0b\x32,.viio.sync.v1.AnthropicClaudeCodeCoreMetrics\x12\x42\n\x0ctool_actions\x18\x08 \x01(\x0b\x32,.viio.sync.v1.AnthropicClaudeCodeToolActions\x12I\n\x10model_breakdowns\x18\t \x03(\x0b\x32/.viio.sync.v1.AnthropicClaudeCodeModelBreakdownB\x12\n\x10_organization_idB\x10\n\x0e_customer_typeB\x14\n\x12_subscription_typeB\x10\n\x0e_terminal_type\"\x82\x01\n\x18\x41nthropicClaudeCodeActor\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x1a\n\remail_address\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0c\x61pi_key_name\x18\x03 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_email_addressB\x0f\n\r_api_key_name\"\xc1\x01\n\x1e\x41nthropicClaudeCodeCoreMetrics\x12\x14\n\x0cnum_sessions\x18\x01 \x01(\x03\x12\x43\n\rlines_of_code\x18\x02 \x01(\x0b\x32,.viio.sync.v1.AnthropicClaudeCodeLinesOfCode\x12\x1e\n\x16\x63ommits_by_claude_code\x18\x03 \x01(\x03\x12$\n\x1cpull_requests_by_claude_code\x18\x04 \x01(\x03\"@\n\x1e\x41nthropicClaudeCodeLinesOfCode\x12\r\n\x05\x61\x64\x64\x65\x64\x18\x01 \x01(\x03\x12\x0f\n\x07removed\x18\x02 \x01(\x03\"\xb0\x02\n\x1e\x41nthropicClaudeCodeToolActions\x12>\n\tedit_tool\x18\x01 \x01(\x0b\x32+.viio.sync.v1.AnthropicClaudeCodeToolAction\x12\x44\n\x0fmulti_edit_tool\x18\x02 \x01(\x0b\x32+.viio.sync.v1.AnthropicClaudeCodeToolAction\x12?\n\nwrite_tool\x18\x03 \x01(\x0b\x32+.viio.sync.v1.AnthropicClaudeCodeToolAction\x12G\n\x12notebook_edit_tool\x18\x04 \x01(\x0b\x32+.viio.sync.v1.AnthropicClaudeCodeToolAction\"C\n\x1d\x41nthropicClaudeCodeToolAction\x12\x10\n\x08\x61\x63\x63\x65pted\x18\x01 \x01(\x03\x12\x10\n\x08rejected\x18\x02 \x01(\x03\"\xb3\x01\n!AnthropicClaudeCodeModelBreakdown\x12\r\n\x05model\x18\x01 \x01(\t\x12\x37\n\x06tokens\x18\x02 \x01(\x0b\x32\'.viio.sync.v1.AnthropicClaudeCodeTokens\x12\x46\n\x0e\x65stimated_cost\x18\x03 \x01(\x0b\x32..viio.sync.v1.AnthropicClaudeCodeEstimatedCost\"f\n\x19\x41nthropicClaudeCodeTokens\x12\r\n\x05input\x18\x01 \x01(\x03\x12\x0e\n\x06output\x18\x02 \x01(\x03\x12\x12\n\ncache_read\x18\x03 \x01(\x03\x12\x16\n\x0e\x63\x61\x63he_creation\x18\x04 \x01(\x03\"D\n AnthropicClaudeCodeEstimatedCost\x12\x10\n\x08\x63urrency\x18\x01 \x01(\t\x12\x0e\n\x06\x61mount\x18\x02 \x01(\x03\x42\x1c\xaa\x02\x19Viio.SyncApi.V1.Contractsb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'viio.sync.v1.anthropic_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ _globals['DESCRIPTOR']._loaded_options = None
35
+ _globals['DESCRIPTOR']._serialized_options = b'\252\002\031Viio.SyncApi.V1.Contracts'
36
+ _globals['_ANTHROPICMESSAGESUSAGE']._serialized_start=80
37
+ _globals['_ANTHROPICMESSAGESUSAGE']._serialized_end=760
38
+ _globals['_ANTHROPICCACHECREATION']._serialized_start=762
39
+ _globals['_ANTHROPICCACHECREATION']._serialized_end=856
40
+ _globals['_ANTHROPICSERVERTOOLUSE']._serialized_start=858
41
+ _globals['_ANTHROPICSERVERTOOLUSE']._serialized_end=911
42
+ _globals['_ANTHROPICCOST']._serialized_start=914
43
+ _globals['_ANTHROPICCOST']._serialized_end=1391
44
+ _globals['_ANTHROPICCLAUDECODEUSAGE']._serialized_start=1394
45
+ _globals['_ANTHROPICCLAUDECODEUSAGE']._serialized_end=1924
46
+ _globals['_ANTHROPICCLAUDECODEACTOR']._serialized_start=1927
47
+ _globals['_ANTHROPICCLAUDECODEACTOR']._serialized_end=2057
48
+ _globals['_ANTHROPICCLAUDECODECOREMETRICS']._serialized_start=2060
49
+ _globals['_ANTHROPICCLAUDECODECOREMETRICS']._serialized_end=2253
50
+ _globals['_ANTHROPICCLAUDECODELINESOFCODE']._serialized_start=2255
51
+ _globals['_ANTHROPICCLAUDECODELINESOFCODE']._serialized_end=2319
52
+ _globals['_ANTHROPICCLAUDECODETOOLACTIONS']._serialized_start=2322
53
+ _globals['_ANTHROPICCLAUDECODETOOLACTIONS']._serialized_end=2626
54
+ _globals['_ANTHROPICCLAUDECODETOOLACTION']._serialized_start=2628
55
+ _globals['_ANTHROPICCLAUDECODETOOLACTION']._serialized_end=2695
56
+ _globals['_ANTHROPICCLAUDECODEMODELBREAKDOWN']._serialized_start=2698
57
+ _globals['_ANTHROPICCLAUDECODEMODELBREAKDOWN']._serialized_end=2877
58
+ _globals['_ANTHROPICCLAUDECODETOKENS']._serialized_start=2879
59
+ _globals['_ANTHROPICCLAUDECODETOKENS']._serialized_end=2981
60
+ _globals['_ANTHROPICCLAUDECODEESTIMATEDCOST']._serialized_start=2983
61
+ _globals['_ANTHROPICCLAUDECODEESTIMATEDCOST']._serialized_end=3051
62
+ # @@protoc_insertion_point(module_scope)
@@ -9,7 +9,7 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
9
9
 
10
10
  DESCRIPTOR: _descriptor.FileDescriptor
11
11
 
12
- class AnthropicChatUsage(_message.Message):
12
+ class AnthropicMessagesUsage(_message.Message):
13
13
  __slots__ = ("starting_at", "ending_at", "account_id", "api_key_id", "service_account_id", "workspace_id", "model", "service_tier", "context_window", "inference_geo", "uncached_input_tokens", "cache_read_input_tokens", "output_tokens", "cache_creation", "server_tool_use")
14
14
  STARTING_AT_FIELD_NUMBER: _ClassVar[int]
15
15
  ENDING_AT_FIELD_NUMBER: _ClassVar[int]
@@ -4,7 +4,7 @@ import grpc
4
4
  import warnings
5
5
 
6
6
 
7
- GRPC_GENERATED_VERSION = '1.83.0'
7
+ GRPC_GENERATED_VERSION = '1.84.0'
8
8
  GRPC_VERSION = grpc.__version__
9
9
  _version_not_supported = False
10
10
 
@@ -4,7 +4,7 @@ import grpc
4
4
  import warnings
5
5
 
6
6
 
7
- GRPC_GENERATED_VERSION = '1.83.0'
7
+ GRPC_GENERATED_VERSION = '1.84.0'
8
8
  GRPC_VERSION = grpc.__version__
9
9
  _version_not_supported = False
10
10
 
@@ -0,0 +1,172 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: viio/sync/v1/contracts.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'viio/sync/v1/contracts.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+ from viio_sync_api.v1 import anthropic_pb2 as viio_dot_sync_dot_v1_dot_anthropic__pb2
27
+ from viio_sync_api.v1 import bamboo_hr_pb2 as viio_dot_sync_dot_v1_dot_bamboo__hr__pb2
28
+ from viio_sync_api.v1 import focus_pb2 as viio_dot_sync_dot_v1_dot_focus__pb2
29
+ from viio_sync_api.v1 import generic_pb2 as viio_dot_sync_dot_v1_dot_generic__pb2
30
+ from viio_sync_api.v1 import google_pb2 as viio_dot_sync_dot_v1_dot_google__pb2
31
+ from viio_sync_api.v1 import microsoft_pb2 as viio_dot_sync_dot_v1_dot_microsoft__pb2
32
+ from viio_sync_api.v1 import okta_pb2 as viio_dot_sync_dot_v1_dot_okta__pb2
33
+ from viio_sync_api.v1 import openai_pb2 as viio_dot_sync_dot_v1_dot_openai__pb2
34
+
35
+
36
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cviio/sync/v1/contracts.proto\x12\x0cviio.sync.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cviio/sync/v1/anthropic.proto\x1a\x1cviio/sync/v1/bamboo_hr.proto\x1a\x18viio/sync/v1/focus.proto\x1a\x1aviio/sync/v1/generic.proto\x1a\x19viio/sync/v1/google.proto\x1a\x1cviio/sync/v1/microsoft.proto\x1a\x17viio/sync/v1/okta.proto\x1a\x19viio/sync/v1/openai.proto\"C\n\x15StartSyncBatchRequest\x12*\n\"direct_integration_installation_id\x18\x01 \x01(\t\"}\n\x16StartSyncBatchResponse\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\t\x12\x0f\n\x07success\x18\x02 \x01(\x08\x12\x0f\n\x07message\x18\x03 \x01(\t\x12/\n\nerror_code\x18\x04 \x01(\x0e\x32\x1b.viio.sync.v1.SyncErrorCode\"\xbc\x05\n\x12SyncRecordsRequest\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\t\x12.\n\x08\x61\x63\x63ounts\x18\x02 \x01(\x0b\x32\x1c.viio.sync.v1.AccountRecords\x12.\n\x08licenses\x18\x03 \x01(\x0b\x32\x1c.viio.sync.v1.LicenseRecords\x12(\n\x05plans\x18\x04 \x01(\x0b\x32\x19.viio.sync.v1.PlanRecords\x12)\n\x05usage\x18\x05 \x01(\x0b\x32\x1a.viio.sync.v1.UsageRecords\x12\x30\n\temployees\x18\x06 \x01(\x0b\x32\x1d.viio.sync.v1.EmployeeRecords\x12*\n\x06groups\x18\x07 \x01(\x0b\x32\x1a.viio.sync.v1.GroupRecords\x12\x37\n\rgroup_members\x18\x08 \x01(\x0b\x32 .viio.sync.v1.GroupMemberRecords\x12S\n\x1b\x65xternally_discovered_usage\x18\t \x01(\x0b\x32..viio.sync.v1.ExternallyDiscoveredUsageRecords\x12,\n\x07\x64\x65vices\x18\n \x01(\x0b\x32\x1b.viio.sync.v1.DeviceRecords\x12\x31\n\naudit_logs\x18\x0b \x01(\x0b\x32\x1d.viio.sync.v1.AuditLogRecords\x12.\n\x08\x61i_usage\x18\x0c \x01(\x0b\x32\x1c.viio.sync.v1.AiUsageRecords\x12-\n\x08\x61i_costs\x18\r \x01(\x0b\x32\x1b.viio.sync.v1.AiCostRecords\x12\x33\n\x0b\x63loud_costs\x18\x0e \x01(\x0b\x32\x1e.viio.sync.v1.CloudCostRecords\"8\n\x0e\x41\x63\x63ountRecords\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.viio.sync.v1.Account\"8\n\x0eLicenseRecords\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.viio.sync.v1.License\"2\n\x0bPlanRecords\x12#\n\x07records\x18\x01 \x03(\x0b\x32\x12.viio.sync.v1.Plan\"4\n\x0cUsageRecords\x12$\n\x07records\x18\x01 \x03(\x0b\x32\x13.viio.sync.v1.Usage\":\n\x0f\x45mployeeRecords\x12\'\n\x07records\x18\x01 \x03(\x0b\x32\x16.viio.sync.v1.Employee\"4\n\x0cGroupRecords\x12$\n\x07records\x18\x01 \x03(\x0b\x32\x13.viio.sync.v1.Group\"@\n\x12GroupMemberRecords\x12*\n\x07records\x18\x01 \x03(\x0b\x32\x19.viio.sync.v1.GroupMember\"\\\n ExternallyDiscoveredUsageRecords\x12\x38\n\x07records\x18\x01 \x03(\x0b\x32\'.viio.sync.v1.ExternallyDiscoveredUsage\"6\n\rDeviceRecords\x12%\n\x07records\x18\x01 \x03(\x0b\x32\x14.viio.sync.v1.Device\":\n\x0f\x41uditLogRecords\x12\'\n\x07records\x18\x01 \x03(\x0b\x32\x16.viio.sync.v1.AuditLog\"8\n\x0e\x41iUsageRecords\x12&\n\x07records\x18\x01 \x03(\x0b\x32\x15.viio.sync.v1.AiUsage\"6\n\rAiCostRecords\x12%\n\x07records\x18\x01 \x03(\x0b\x32\x14.viio.sync.v1.AiCost\"<\n\x10\x43loudCostRecords\x12(\n\x07records\x18\x01 \x03(\x0b\x32\x17.viio.sync.v1.CloudCost\"7\n\x13SyncRecordsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\",\n\x18\x43ompleteSyncBatchRequest\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\t\"=\n\x19\x43ompleteSyncBatchResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\")\n\x15\x41\x62ortSyncBatchRequest\x12\x10\n\x08\x62\x61tch_id\x18\x01 \x01(\t\":\n\x16\x41\x62ortSyncBatchResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"I\n\x07\x41\x63\x63ount\x12\x36\n\x07generic\x18\x01 \x01(\x0b\x32#.viio.sync.v1.GenericAccountDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\x8c\x02\n\x15GenericAccountDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\x04name\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05\x65mail\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08username\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06\x61\x63tive\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\r\n\x05roles\x18\x06 \x03(\t\x12\x32\n\x07\x64\x65tails\x18\x07 \x01(\x0b\x32\x1c.viio.sync.v1.AccountDetailsH\x04\x88\x01\x01\x12\x11\n\x04type\x18\x08 \x01(\tH\x05\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_emailB\x0b\n\t_usernameB\t\n\x07_activeB\n\n\x08_detailsB\x07\n\x05_type\"\x8a\x01\n\x0e\x41\x63\x63ountDetails\x12:\n\tmicrosoft\x18\x01 \x01(\x0b\x32%.viio.sync.v1.MicrosoftAccountDetailsH\x00\x12\x32\n\x05slack\x18\x02 \x01(\x0b\x32!.viio.sync.v1.SlackAccountDetailsH\x00\x42\x08\n\x06vendor\"T\n\x17MicrosoftAccountDetails\x12/\n\x05teams\x18\x01 \x01(\x0b\x32\x1b.viio.sync.v1.TeamsMetadataH\x00\x88\x01\x01\x42\x08\n\x06_teams\"\"\n\rTeamsMetadata\x12\x11\n\thas_teams\x18\x01 \x01(\x08\"[\n\x13SlackAccountDetails\x12\x38\n\x07surveys\x18\x01 \x01(\x0b\x32\".viio.sync.v1.SlackSurveysMetadataH\x00\x88\x01\x01\x42\n\n\x08_surveys\"1\n\x14SlackSurveysMetadata\x12\x19\n\x11has_app_installed\x18\x01 \x01(\x08\"I\n\x07License\x12\x36\n\x07generic\x18\x01 \x01(\x0b\x32#.viio.sync.v1.GenericLicenseDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\xa9\x01\n\x15GenericLicenseDetails\x12\x19\n\x11source_account_id\x18\x01 \x01(\t\x12\x16\n\x0esource_plan_id\x18\x02 \x01(\t\x12\x10\n\x08\x62illable\x18\x03 \x01(\x08\x12 \n\x13\x65xternal_product_id\x18\x04 \x01(\tH\x00\x88\x01\x01\x12\x11\n\tsource_id\x18\x05 \x01(\tB\x16\n\x14_external_product_id\"\x85\x01\n\x0bPlanDetails\x12.\n\x05model\x18\x01 \x01(\x0e\x32\x1f.viio.sync.v1.SubscriptionModel\x12>\n\nseat_based\x18\x02 \x01(\x0b\x32(.viio.sync.v1.SeatBasedSubscriptionModelH\x00\x42\x06\n\x04\x64\x61ta\"t\n\x1aSeatBasedSubscriptionModel\x12\x17\n\npaid_seats\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1b\n\x0e\x63onsumed_seats\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\r\n\x0b_paid_seatsB\x11\n\x0f_consumed_seats\"C\n\x04Plan\x12\x33\n\x07generic\x18\x01 \x01(\x0b\x32 .viio.sync.v1.GenericPlanDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\x9f\x02\n\x12GenericPlanDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x12\x65xternal_plan_name\x18\x02 \x01(\t\x12\"\n\x15\x65xternal_product_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x44\n\nattributes\x18\x04 \x03(\x0b\x32\x30.viio.sync.v1.GenericPlanDetails.AttributesEntry\x12*\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x19.viio.sync.v1.PlanDetails\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_external_product_name\"E\n\x05Usage\x12\x34\n\x07generic\x18\x01 \x01(\x0b\x32!.viio.sync.v1.GenericUsageDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\xdb\x01\n\x13GenericUsageDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x17\n\x0fsource_actor_id\x18\x02 \x01(\t\x12\"\n\x15\x65xternal_product_name\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0esource_plan_id\x18\x04 \x01(\tH\x01\x88\x01\x01\x12\x31\n\rlast_activity\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x18\n\x16_external_product_nameB\x11\n\x0f_source_plan_id\"m\n\x19\x45xternallyDiscoveredUsage\x12H\n\x07generic\x18\x01 \x01(\x0b\x32\x35.viio.sync.v1.GenericExternallyDiscoveredUsageDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\xb8\x03\n\'GenericExternallyDiscoveredUsageDetails\x12\x17\n\x0fsource_actor_id\x18\x01 \x01(\t\x12\x18\n\x0b\x61\x63tor_email\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x65xternal_product_name\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06source\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\rlast_activity\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12;\n\x12last_activity_from\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04\x88\x01\x01\x12\x39\n\x10last_activity_to\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x05\x88\x01\x01\x42\x0e\n\x0c_actor_emailB\x18\n\x16_external_product_nameB\t\n\x07_sourceB\x10\n\x0e_last_activityB\x15\n\x13_last_activity_fromB\x13\n\x11_last_activity_to\"\xae\x02\n\x08\x45mployee\x12\x37\n\x07generic\x18\x01 \x01(\x0b\x32$.viio.sync.v1.GenericEmployeeDetailsH\x00\x12;\n\tmicrosoft\x18\x02 \x01(\x0b\x32&.viio.sync.v1.MicrosoftEmployeeDetailsH\x00\x12\x35\n\x06google\x18\x03 \x01(\x0b\x32#.viio.sync.v1.GoogleEmployeeDetailsH\x00\x12\x31\n\x04okta\x18\x04 \x01(\x0b\x32!.viio.sync.v1.OktaEmployeeDetailsH\x00\x12:\n\tbamboo_hr\x18\x05 \x01(\x0b\x32%.viio.sync.v1.BambooHrEmployeeDetailsH\x00\x42\x06\n\x04\x64\x61ta\"E\n\x05Group\x12\x34\n\x07generic\x18\x01 \x01(\x0b\x32!.viio.sync.v1.GenericGroupDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\xfe\x02\n\x13GenericGroupDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x18\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00\x88\x01\x01\x12\x36\n\rdeletion_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12\x36\n\rcreation_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x15\n\remail_aliases\x18\x06 \x03(\t\x12\x45\n\nattributes\x18\x07 \x03(\x0b\x32\x31.viio.sync.v1.GenericGroupDetails.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x10\n\x0e_deletion_timeB\x10\n\x0e_creation_time\"Q\n\x0bGroupMember\x12:\n\x07generic\x18\x01 \x01(\x0b\x32\'.viio.sync.v1.GenericGroupMemberDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\x9d\x03\n\x19GenericGroupMemberDetails\x12\x10\n\x08group_id\x18\x01 \x01(\t\x12\x11\n\tmember_id\x18\x02 \x01(\t\x12\x36\n\rdeletion_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x36\n\rcreation_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12+\n\x04type\x18\x05 \x01(\x0e\x32\x1d.viio.sync.v1.GroupMemberType\x12\x11\n\x04role\x18\x06 \x01(\tH\x02\x88\x01\x01\x12K\n\nattributes\x18\x07 \x03(\x0b\x32\x37.viio.sync.v1.GenericGroupMemberDetails.AttributesEntry\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x10\n\x0e_deletion_timeB\x10\n\x0e_creation_timeB\x07\n\x05_role\"7\n\x0b\x44\x65viceOwner\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\x05\x65mail\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_email\"G\n\x06\x44\x65vice\x12\x35\n\x07generic\x18\x01 \x01(\x0b\x32\".viio.sync.v1.GenericDeviceDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\x9c\x01\n\x14GenericDeviceDetails\x12\n\n\x02id\x18\x01 \x01(\t\x12-\n\x05owner\x18\x02 \x01(\x0b\x32\x19.viio.sync.v1.DeviceOwnerH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x15\n\rserial_number\x18\x04 \x01(\t\x12\x11\n\x04uuid\x18\x05 \x01(\tH\x01\x88\x01\x01\x42\x08\n\x06_ownerB\x07\n\x05_uuid\"6\n\rAuditLogActor\x12\x0f\n\x02id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05\x65mail\x18\x02 \x01(\tB\x05\n\x03_id\"\xe4\x01\n\x08\x41uditLog\x12\x37\n\x07generic\x18\x01 \x01(\x0b\x32$.viio.sync.v1.GenericAuditLogDetailsH\x00\x12I\n\x11microsoft_sign_in\x18\x02 \x01(\x0b\x32,.viio.sync.v1.MicrosoftSignInAuditLogDetailsH\x00\x12L\n\x12microsoft_security\x18\x03 \x01(\x0b\x32..viio.sync.v1.MicrosoftSecurityAuditLogDetailsH\x00\x42\x06\n\x04\x64\x61ta\"\x81\x02\n\x16GenericAuditLogDetails\x12(\n\x04\x64\x61te\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x10\x61udit_log_source\x18\x02 \x01(\t\x12*\n\x05\x61\x63tor\x18\x03 \x01(\x0b\x32\x1b.viio.sync.v1.AuditLogActor\x12\x18\n\x10\x61pplication_name\x18\x04 \x01(\t\x12\x0e\n\x06source\x18\x05 \x01(\t\x12\x15\n\ractivity_name\x18\x06 \x01(\t\x12\x13\n\x06scopes\x18\x07 \x01(\tH\x00\x88\x01\x01\x12\x16\n\x0e\x65vent_provider\x18\x08 \x01(\tB\t\n\x07_scopes\"\x83\x02\n\x07\x41iUsage\x12*\n\x08provider\x18\x01 \x01(\x0e\x32\x18.viio.sync.v1.AiProvider\x12H\n\x18\x61nthropic_messages_usage\x18\x02 \x01(\x0b\x32$.viio.sync.v1.AnthropicMessagesUsageH\x00\x12G\n\x15\x61nthropic_claude_code\x18\x03 \x01(\x0b\x32&.viio.sync.v1.AnthropicClaudeCodeUsageH\x00\x12\x31\n\x0copenai_usage\x18\x04 \x01(\x0b\x32\x19.viio.sync.v1.OpenAiUsageH\x00\x42\x06\n\x04\x64\x61ta\"\xa4\x01\n\x06\x41iCost\x12*\n\x08provider\x18\x01 \x01(\x0e\x32\x18.viio.sync.v1.AiProvider\x12\x35\n\x0e\x61nthropic_cost\x18\x02 \x01(\x0b\x32\x1b.viio.sync.v1.AnthropicCostH\x00\x12/\n\x0bopenai_cost\x18\x03 \x01(\x0b\x32\x18.viio.sync.v1.OpenAiCostH\x00\x42\x06\n\x04\x64\x61ta\"\x8c\x01\n\tCloudCost\x12-\n\x08provider\x18\x01 \x01(\x0e\x32\x1b.viio.sync.v1.CloudProvider\x12\r\n\x05scope\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12(\n\x05\x66ocus\x18\x04 \x01(\x0b\x32\x17.viio.sync.v1.FocusCostH\x00\x42\x06\n\x04\x64\x61ta*v\n\nAiProvider\x12\x1b\n\x17\x41I_PROVIDER_UNSPECIFIED\x10\x00\x12\x19\n\x15\x41I_PROVIDER_ANTHROPIC\x10\x01\x12\x17\n\x13\x41I_PROVIDER_GENERIC\x10\x02\x12\x17\n\x13\x41I_PROVIDER_OPEN_AI\x10\x03*G\n\rCloudProvider\x12\x1e\n\x1a\x43LOUD_PROVIDER_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43LOUD_PROVIDER_AWS\x10\x01*Z\n\x11SubscriptionModel\x12\"\n\x1eSUBSCRIPTION_MODEL_UNSPECIFIED\x10\x00\x12!\n\x1dSUBSCRIPTION_MODEL_SEAT_BASED\x10\x01*m\n\x0fGroupMemberType\x12!\n\x1dGROUP_MEMBER_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16GROUP_MEMBER_TYPE_USER\x10\x01\x12\x1b\n\x17GROUP_MEMBER_TYPE_GROUP\x10\x02*^\n\rSyncErrorCode\x12\x1f\n\x1bSYNC_ERROR_CODE_UNSPECIFIED\x10\x00\x12,\n(SYNC_ERROR_CODE_SYNC_ALREADY_IN_PROGRESS\x10\x01\x32\x83\x03\n\x0bSyncService\x12[\n\x0eStartSyncBatch\x12#.viio.sync.v1.StartSyncBatchRequest\x1a$.viio.sync.v1.StartSyncBatchResponse\x12T\n\x0bSyncRecords\x12 .viio.sync.v1.SyncRecordsRequest\x1a!.viio.sync.v1.SyncRecordsResponse(\x01\x12\x64\n\x11\x43ompleteSyncBatch\x12&.viio.sync.v1.CompleteSyncBatchRequest\x1a\'.viio.sync.v1.CompleteSyncBatchResponse\x12[\n\x0e\x41\x62ortSyncBatch\x12#.viio.sync.v1.AbortSyncBatchRequest\x1a$.viio.sync.v1.AbortSyncBatchResponseB\x1c\xaa\x02\x19Viio.SyncApi.V1.Contractsb\x06proto3')
37
+
38
+ _globals = globals()
39
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
40
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'viio.sync.v1.contracts_pb2', _globals)
41
+ if not _descriptor._USE_C_DESCRIPTORS:
42
+ _globals['DESCRIPTOR']._loaded_options = None
43
+ _globals['DESCRIPTOR']._serialized_options = b'\252\002\031Viio.SyncApi.V1.Contracts'
44
+ _globals['_GENERICPLANDETAILS_ATTRIBUTESENTRY']._loaded_options = None
45
+ _globals['_GENERICPLANDETAILS_ATTRIBUTESENTRY']._serialized_options = b'8\001'
46
+ _globals['_GENERICGROUPDETAILS_ATTRIBUTESENTRY']._loaded_options = None
47
+ _globals['_GENERICGROUPDETAILS_ATTRIBUTESENTRY']._serialized_options = b'8\001'
48
+ _globals['_GENERICGROUPMEMBERDETAILS_ATTRIBUTESENTRY']._loaded_options = None
49
+ _globals['_GENERICGROUPMEMBERDETAILS_ATTRIBUTESENTRY']._serialized_options = b'8\001'
50
+ _globals['_AIPROVIDER']._serialized_start=7386
51
+ _globals['_AIPROVIDER']._serialized_end=7504
52
+ _globals['_CLOUDPROVIDER']._serialized_start=7506
53
+ _globals['_CLOUDPROVIDER']._serialized_end=7577
54
+ _globals['_SUBSCRIPTIONMODEL']._serialized_start=7579
55
+ _globals['_SUBSCRIPTIONMODEL']._serialized_end=7669
56
+ _globals['_GROUPMEMBERTYPE']._serialized_start=7671
57
+ _globals['_GROUPMEMBERTYPE']._serialized_end=7780
58
+ _globals['_SYNCERRORCODE']._serialized_start=7782
59
+ _globals['_SYNCERRORCODE']._serialized_end=7876
60
+ _globals['_STARTSYNCBATCHREQUEST']._serialized_start=302
61
+ _globals['_STARTSYNCBATCHREQUEST']._serialized_end=369
62
+ _globals['_STARTSYNCBATCHRESPONSE']._serialized_start=371
63
+ _globals['_STARTSYNCBATCHRESPONSE']._serialized_end=496
64
+ _globals['_SYNCRECORDSREQUEST']._serialized_start=499
65
+ _globals['_SYNCRECORDSREQUEST']._serialized_end=1199
66
+ _globals['_ACCOUNTRECORDS']._serialized_start=1201
67
+ _globals['_ACCOUNTRECORDS']._serialized_end=1257
68
+ _globals['_LICENSERECORDS']._serialized_start=1259
69
+ _globals['_LICENSERECORDS']._serialized_end=1315
70
+ _globals['_PLANRECORDS']._serialized_start=1317
71
+ _globals['_PLANRECORDS']._serialized_end=1367
72
+ _globals['_USAGERECORDS']._serialized_start=1369
73
+ _globals['_USAGERECORDS']._serialized_end=1421
74
+ _globals['_EMPLOYEERECORDS']._serialized_start=1423
75
+ _globals['_EMPLOYEERECORDS']._serialized_end=1481
76
+ _globals['_GROUPRECORDS']._serialized_start=1483
77
+ _globals['_GROUPRECORDS']._serialized_end=1535
78
+ _globals['_GROUPMEMBERRECORDS']._serialized_start=1537
79
+ _globals['_GROUPMEMBERRECORDS']._serialized_end=1601
80
+ _globals['_EXTERNALLYDISCOVEREDUSAGERECORDS']._serialized_start=1603
81
+ _globals['_EXTERNALLYDISCOVEREDUSAGERECORDS']._serialized_end=1695
82
+ _globals['_DEVICERECORDS']._serialized_start=1697
83
+ _globals['_DEVICERECORDS']._serialized_end=1751
84
+ _globals['_AUDITLOGRECORDS']._serialized_start=1753
85
+ _globals['_AUDITLOGRECORDS']._serialized_end=1811
86
+ _globals['_AIUSAGERECORDS']._serialized_start=1813
87
+ _globals['_AIUSAGERECORDS']._serialized_end=1869
88
+ _globals['_AICOSTRECORDS']._serialized_start=1871
89
+ _globals['_AICOSTRECORDS']._serialized_end=1925
90
+ _globals['_CLOUDCOSTRECORDS']._serialized_start=1927
91
+ _globals['_CLOUDCOSTRECORDS']._serialized_end=1987
92
+ _globals['_SYNCRECORDSRESPONSE']._serialized_start=1989
93
+ _globals['_SYNCRECORDSRESPONSE']._serialized_end=2044
94
+ _globals['_COMPLETESYNCBATCHREQUEST']._serialized_start=2046
95
+ _globals['_COMPLETESYNCBATCHREQUEST']._serialized_end=2090
96
+ _globals['_COMPLETESYNCBATCHRESPONSE']._serialized_start=2092
97
+ _globals['_COMPLETESYNCBATCHRESPONSE']._serialized_end=2153
98
+ _globals['_ABORTSYNCBATCHREQUEST']._serialized_start=2155
99
+ _globals['_ABORTSYNCBATCHREQUEST']._serialized_end=2196
100
+ _globals['_ABORTSYNCBATCHRESPONSE']._serialized_start=2198
101
+ _globals['_ABORTSYNCBATCHRESPONSE']._serialized_end=2256
102
+ _globals['_ACCOUNT']._serialized_start=2258
103
+ _globals['_ACCOUNT']._serialized_end=2331
104
+ _globals['_GENERICACCOUNTDETAILS']._serialized_start=2334
105
+ _globals['_GENERICACCOUNTDETAILS']._serialized_end=2602
106
+ _globals['_ACCOUNTDETAILS']._serialized_start=2605
107
+ _globals['_ACCOUNTDETAILS']._serialized_end=2743
108
+ _globals['_MICROSOFTACCOUNTDETAILS']._serialized_start=2745
109
+ _globals['_MICROSOFTACCOUNTDETAILS']._serialized_end=2829
110
+ _globals['_TEAMSMETADATA']._serialized_start=2831
111
+ _globals['_TEAMSMETADATA']._serialized_end=2865
112
+ _globals['_SLACKACCOUNTDETAILS']._serialized_start=2867
113
+ _globals['_SLACKACCOUNTDETAILS']._serialized_end=2958
114
+ _globals['_SLACKSURVEYSMETADATA']._serialized_start=2960
115
+ _globals['_SLACKSURVEYSMETADATA']._serialized_end=3009
116
+ _globals['_LICENSE']._serialized_start=3011
117
+ _globals['_LICENSE']._serialized_end=3084
118
+ _globals['_GENERICLICENSEDETAILS']._serialized_start=3087
119
+ _globals['_GENERICLICENSEDETAILS']._serialized_end=3256
120
+ _globals['_PLANDETAILS']._serialized_start=3259
121
+ _globals['_PLANDETAILS']._serialized_end=3392
122
+ _globals['_SEATBASEDSUBSCRIPTIONMODEL']._serialized_start=3394
123
+ _globals['_SEATBASEDSUBSCRIPTIONMODEL']._serialized_end=3510
124
+ _globals['_PLAN']._serialized_start=3512
125
+ _globals['_PLAN']._serialized_end=3579
126
+ _globals['_GENERICPLANDETAILS']._serialized_start=3582
127
+ _globals['_GENERICPLANDETAILS']._serialized_end=3869
128
+ _globals['_GENERICPLANDETAILS_ATTRIBUTESENTRY']._serialized_start=3794
129
+ _globals['_GENERICPLANDETAILS_ATTRIBUTESENTRY']._serialized_end=3843
130
+ _globals['_USAGE']._serialized_start=3871
131
+ _globals['_USAGE']._serialized_end=3940
132
+ _globals['_GENERICUSAGEDETAILS']._serialized_start=3943
133
+ _globals['_GENERICUSAGEDETAILS']._serialized_end=4162
134
+ _globals['_EXTERNALLYDISCOVEREDUSAGE']._serialized_start=4164
135
+ _globals['_EXTERNALLYDISCOVEREDUSAGE']._serialized_end=4273
136
+ _globals['_GENERICEXTERNALLYDISCOVEREDUSAGEDETAILS']._serialized_start=4276
137
+ _globals['_GENERICEXTERNALLYDISCOVEREDUSAGEDETAILS']._serialized_end=4716
138
+ _globals['_EMPLOYEE']._serialized_start=4719
139
+ _globals['_EMPLOYEE']._serialized_end=5021
140
+ _globals['_GROUP']._serialized_start=5023
141
+ _globals['_GROUP']._serialized_end=5092
142
+ _globals['_GENERICGROUPDETAILS']._serialized_start=5095
143
+ _globals['_GENERICGROUPDETAILS']._serialized_end=5477
144
+ _globals['_GENERICGROUPDETAILS_ATTRIBUTESENTRY']._serialized_start=3794
145
+ _globals['_GENERICGROUPDETAILS_ATTRIBUTESENTRY']._serialized_end=3843
146
+ _globals['_GROUPMEMBER']._serialized_start=5479
147
+ _globals['_GROUPMEMBER']._serialized_end=5560
148
+ _globals['_GENERICGROUPMEMBERDETAILS']._serialized_start=5563
149
+ _globals['_GENERICGROUPMEMBERDETAILS']._serialized_end=5976
150
+ _globals['_GENERICGROUPMEMBERDETAILS_ATTRIBUTESENTRY']._serialized_start=3794
151
+ _globals['_GENERICGROUPMEMBERDETAILS_ATTRIBUTESENTRY']._serialized_end=3843
152
+ _globals['_DEVICEOWNER']._serialized_start=5978
153
+ _globals['_DEVICEOWNER']._serialized_end=6033
154
+ _globals['_DEVICE']._serialized_start=6035
155
+ _globals['_DEVICE']._serialized_end=6106
156
+ _globals['_GENERICDEVICEDETAILS']._serialized_start=6109
157
+ _globals['_GENERICDEVICEDETAILS']._serialized_end=6265
158
+ _globals['_AUDITLOGACTOR']._serialized_start=6267
159
+ _globals['_AUDITLOGACTOR']._serialized_end=6321
160
+ _globals['_AUDITLOG']._serialized_start=6324
161
+ _globals['_AUDITLOG']._serialized_end=6552
162
+ _globals['_GENERICAUDITLOGDETAILS']._serialized_start=6555
163
+ _globals['_GENERICAUDITLOGDETAILS']._serialized_end=6812
164
+ _globals['_AIUSAGE']._serialized_start=6815
165
+ _globals['_AIUSAGE']._serialized_end=7074
166
+ _globals['_AICOST']._serialized_start=7077
167
+ _globals['_AICOST']._serialized_end=7241
168
+ _globals['_CLOUDCOST']._serialized_start=7244
169
+ _globals['_CLOUDCOST']._serialized_end=7384
170
+ _globals['_SYNCSERVICE']._serialized_start=7879
171
+ _globals['_SYNCSERVICE']._serialized_end=8266
172
+ # @@protoc_insertion_point(module_scope)
@@ -3,10 +3,12 @@ import datetime
3
3
  from google.protobuf import timestamp_pb2 as _timestamp_pb2
4
4
  from viio_sync_api.v1 import anthropic_pb2 as _anthropic_pb2
5
5
  from viio_sync_api.v1 import bamboo_hr_pb2 as _bamboo_hr_pb2
6
+ from viio_sync_api.v1 import focus_pb2 as _focus_pb2
6
7
  from viio_sync_api.v1 import generic_pb2 as _generic_pb2
7
8
  from viio_sync_api.v1 import google_pb2 as _google_pb2
8
9
  from viio_sync_api.v1 import microsoft_pb2 as _microsoft_pb2
9
10
  from viio_sync_api.v1 import okta_pb2 as _okta_pb2
11
+ from viio_sync_api.v1 import openai_pb2 as _openai_pb2
10
12
  from google.protobuf.internal import containers as _containers
11
13
  from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
12
14
  from google.protobuf import descriptor as _descriptor
@@ -21,6 +23,12 @@ class AiProvider(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
21
23
  AI_PROVIDER_UNSPECIFIED: _ClassVar[AiProvider]
22
24
  AI_PROVIDER_ANTHROPIC: _ClassVar[AiProvider]
23
25
  AI_PROVIDER_GENERIC: _ClassVar[AiProvider]
26
+ AI_PROVIDER_OPEN_AI: _ClassVar[AiProvider]
27
+
28
+ class CloudProvider(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
29
+ __slots__ = ()
30
+ CLOUD_PROVIDER_UNSPECIFIED: _ClassVar[CloudProvider]
31
+ CLOUD_PROVIDER_AWS: _ClassVar[CloudProvider]
24
32
 
25
33
  class SubscriptionModel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
26
34
  __slots__ = ()
@@ -40,6 +48,9 @@ class SyncErrorCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
40
48
  AI_PROVIDER_UNSPECIFIED: AiProvider
41
49
  AI_PROVIDER_ANTHROPIC: AiProvider
42
50
  AI_PROVIDER_GENERIC: AiProvider
51
+ AI_PROVIDER_OPEN_AI: AiProvider
52
+ CLOUD_PROVIDER_UNSPECIFIED: CloudProvider
53
+ CLOUD_PROVIDER_AWS: CloudProvider
43
54
  SUBSCRIPTION_MODEL_UNSPECIFIED: SubscriptionModel
44
55
  SUBSCRIPTION_MODEL_SEAT_BASED: SubscriptionModel
45
56
  GROUP_MEMBER_TYPE_UNSPECIFIED: GroupMemberType
@@ -67,7 +78,7 @@ class StartSyncBatchResponse(_message.Message):
67
78
  def __init__(self, batch_id: _Optional[str] = ..., success: _Optional[bool] = ..., message: _Optional[str] = ..., error_code: _Optional[_Union[SyncErrorCode, str]] = ...) -> None: ...
68
79
 
69
80
  class SyncRecordsRequest(_message.Message):
70
- __slots__ = ("batch_id", "accounts", "licenses", "plans", "usage", "employees", "groups", "group_members", "externally_discovered_usage", "devices", "audit_logs", "ai_usage", "ai_costs")
81
+ __slots__ = ("batch_id", "accounts", "licenses", "plans", "usage", "employees", "groups", "group_members", "externally_discovered_usage", "devices", "audit_logs", "ai_usage", "ai_costs", "cloud_costs")
71
82
  BATCH_ID_FIELD_NUMBER: _ClassVar[int]
72
83
  ACCOUNTS_FIELD_NUMBER: _ClassVar[int]
73
84
  LICENSES_FIELD_NUMBER: _ClassVar[int]
@@ -81,6 +92,7 @@ class SyncRecordsRequest(_message.Message):
81
92
  AUDIT_LOGS_FIELD_NUMBER: _ClassVar[int]
82
93
  AI_USAGE_FIELD_NUMBER: _ClassVar[int]
83
94
  AI_COSTS_FIELD_NUMBER: _ClassVar[int]
95
+ CLOUD_COSTS_FIELD_NUMBER: _ClassVar[int]
84
96
  batch_id: str
85
97
  accounts: AccountRecords
86
98
  licenses: LicenseRecords
@@ -94,7 +106,8 @@ class SyncRecordsRequest(_message.Message):
94
106
  audit_logs: AuditLogRecords
95
107
  ai_usage: AiUsageRecords
96
108
  ai_costs: AiCostRecords
97
- def __init__(self, batch_id: _Optional[str] = ..., accounts: _Optional[_Union[AccountRecords, _Mapping]] = ..., licenses: _Optional[_Union[LicenseRecords, _Mapping]] = ..., plans: _Optional[_Union[PlanRecords, _Mapping]] = ..., usage: _Optional[_Union[UsageRecords, _Mapping]] = ..., employees: _Optional[_Union[EmployeeRecords, _Mapping]] = ..., groups: _Optional[_Union[GroupRecords, _Mapping]] = ..., group_members: _Optional[_Union[GroupMemberRecords, _Mapping]] = ..., externally_discovered_usage: _Optional[_Union[ExternallyDiscoveredUsageRecords, _Mapping]] = ..., devices: _Optional[_Union[DeviceRecords, _Mapping]] = ..., audit_logs: _Optional[_Union[AuditLogRecords, _Mapping]] = ..., ai_usage: _Optional[_Union[AiUsageRecords, _Mapping]] = ..., ai_costs: _Optional[_Union[AiCostRecords, _Mapping]] = ...) -> None: ...
109
+ cloud_costs: CloudCostRecords
110
+ def __init__(self, batch_id: _Optional[str] = ..., accounts: _Optional[_Union[AccountRecords, _Mapping]] = ..., licenses: _Optional[_Union[LicenseRecords, _Mapping]] = ..., plans: _Optional[_Union[PlanRecords, _Mapping]] = ..., usage: _Optional[_Union[UsageRecords, _Mapping]] = ..., employees: _Optional[_Union[EmployeeRecords, _Mapping]] = ..., groups: _Optional[_Union[GroupRecords, _Mapping]] = ..., group_members: _Optional[_Union[GroupMemberRecords, _Mapping]] = ..., externally_discovered_usage: _Optional[_Union[ExternallyDiscoveredUsageRecords, _Mapping]] = ..., devices: _Optional[_Union[DeviceRecords, _Mapping]] = ..., audit_logs: _Optional[_Union[AuditLogRecords, _Mapping]] = ..., ai_usage: _Optional[_Union[AiUsageRecords, _Mapping]] = ..., ai_costs: _Optional[_Union[AiCostRecords, _Mapping]] = ..., cloud_costs: _Optional[_Union[CloudCostRecords, _Mapping]] = ...) -> None: ...
98
111
 
99
112
  class AccountRecords(_message.Message):
100
113
  __slots__ = ("records",)
@@ -168,6 +181,12 @@ class AiCostRecords(_message.Message):
168
181
  records: _containers.RepeatedCompositeFieldContainer[AiCost]
169
182
  def __init__(self, records: _Optional[_Iterable[_Union[AiCost, _Mapping]]] = ...) -> None: ...
170
183
 
184
+ class CloudCostRecords(_message.Message):
185
+ __slots__ = ("records",)
186
+ RECORDS_FIELD_NUMBER: _ClassVar[int]
187
+ records: _containers.RepeatedCompositeFieldContainer[CloudCost]
188
+ def __init__(self, records: _Optional[_Iterable[_Union[CloudCost, _Mapping]]] = ...) -> None: ...
189
+
171
190
  class SyncRecordsResponse(_message.Message):
172
191
  __slots__ = ("success", "message")
173
192
  SUCCESS_FIELD_NUMBER: _ClassVar[int]
@@ -231,10 +250,12 @@ class GenericAccountDetails(_message.Message):
231
250
  def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., email: _Optional[str] = ..., username: _Optional[str] = ..., active: _Optional[bool] = ..., roles: _Optional[_Iterable[str]] = ..., details: _Optional[_Union[AccountDetails, _Mapping]] = ..., type: _Optional[str] = ...) -> None: ...
232
251
 
233
252
  class AccountDetails(_message.Message):
234
- __slots__ = ("microsoft",)
253
+ __slots__ = ("microsoft", "slack")
235
254
  MICROSOFT_FIELD_NUMBER: _ClassVar[int]
255
+ SLACK_FIELD_NUMBER: _ClassVar[int]
236
256
  microsoft: MicrosoftAccountDetails
237
- def __init__(self, microsoft: _Optional[_Union[MicrosoftAccountDetails, _Mapping]] = ...) -> None: ...
257
+ slack: SlackAccountDetails
258
+ def __init__(self, microsoft: _Optional[_Union[MicrosoftAccountDetails, _Mapping]] = ..., slack: _Optional[_Union[SlackAccountDetails, _Mapping]] = ...) -> None: ...
238
259
 
239
260
  class MicrosoftAccountDetails(_message.Message):
240
261
  __slots__ = ("teams",)
@@ -248,6 +269,18 @@ class TeamsMetadata(_message.Message):
248
269
  has_teams: bool
249
270
  def __init__(self, has_teams: _Optional[bool] = ...) -> None: ...
250
271
 
272
+ class SlackAccountDetails(_message.Message):
273
+ __slots__ = ("surveys",)
274
+ SURVEYS_FIELD_NUMBER: _ClassVar[int]
275
+ surveys: SlackSurveysMetadata
276
+ def __init__(self, surveys: _Optional[_Union[SlackSurveysMetadata, _Mapping]] = ...) -> None: ...
277
+
278
+ class SlackSurveysMetadata(_message.Message):
279
+ __slots__ = ("has_app_installed",)
280
+ HAS_APP_INSTALLED_FIELD_NUMBER: _ClassVar[int]
281
+ has_app_installed: bool
282
+ def __init__(self, has_app_installed: _Optional[bool] = ...) -> None: ...
283
+
251
284
  class License(_message.Message):
252
285
  __slots__ = ("generic",)
253
286
  GENERIC_FIELD_NUMBER: _ClassVar[int]
@@ -498,19 +531,35 @@ class GenericAuditLogDetails(_message.Message):
498
531
  def __init__(self, date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., audit_log_source: _Optional[str] = ..., actor: _Optional[_Union[AuditLogActor, _Mapping]] = ..., application_name: _Optional[str] = ..., source: _Optional[str] = ..., activity_name: _Optional[str] = ..., scopes: _Optional[str] = ..., event_provider: _Optional[str] = ...) -> None: ...
499
532
 
500
533
  class AiUsage(_message.Message):
501
- __slots__ = ("provider", "anthropic_chat_usage", "anthropic_claude_code")
534
+ __slots__ = ("provider", "anthropic_messages_usage", "anthropic_claude_code", "openai_usage")
502
535
  PROVIDER_FIELD_NUMBER: _ClassVar[int]
503
- ANTHROPIC_CHAT_USAGE_FIELD_NUMBER: _ClassVar[int]
536
+ ANTHROPIC_MESSAGES_USAGE_FIELD_NUMBER: _ClassVar[int]
504
537
  ANTHROPIC_CLAUDE_CODE_FIELD_NUMBER: _ClassVar[int]
538
+ OPENAI_USAGE_FIELD_NUMBER: _ClassVar[int]
505
539
  provider: AiProvider
506
- anthropic_chat_usage: _anthropic_pb2.AnthropicChatUsage
540
+ anthropic_messages_usage: _anthropic_pb2.AnthropicMessagesUsage
507
541
  anthropic_claude_code: _anthropic_pb2.AnthropicClaudeCodeUsage
508
- def __init__(self, provider: _Optional[_Union[AiProvider, str]] = ..., anthropic_chat_usage: _Optional[_Union[_anthropic_pb2.AnthropicChatUsage, _Mapping]] = ..., anthropic_claude_code: _Optional[_Union[_anthropic_pb2.AnthropicClaudeCodeUsage, _Mapping]] = ...) -> None: ...
542
+ openai_usage: _openai_pb2.OpenAiUsage
543
+ def __init__(self, provider: _Optional[_Union[AiProvider, str]] = ..., anthropic_messages_usage: _Optional[_Union[_anthropic_pb2.AnthropicMessagesUsage, _Mapping]] = ..., anthropic_claude_code: _Optional[_Union[_anthropic_pb2.AnthropicClaudeCodeUsage, _Mapping]] = ..., openai_usage: _Optional[_Union[_openai_pb2.OpenAiUsage, _Mapping]] = ...) -> None: ...
509
544
 
510
545
  class AiCost(_message.Message):
511
- __slots__ = ("provider", "anthropic_cost")
546
+ __slots__ = ("provider", "anthropic_cost", "openai_cost")
512
547
  PROVIDER_FIELD_NUMBER: _ClassVar[int]
513
548
  ANTHROPIC_COST_FIELD_NUMBER: _ClassVar[int]
549
+ OPENAI_COST_FIELD_NUMBER: _ClassVar[int]
514
550
  provider: AiProvider
515
551
  anthropic_cost: _anthropic_pb2.AnthropicCost
516
- def __init__(self, provider: _Optional[_Union[AiProvider, str]] = ..., anthropic_cost: _Optional[_Union[_anthropic_pb2.AnthropicCost, _Mapping]] = ...) -> None: ...
552
+ openai_cost: _openai_pb2.OpenAiCost
553
+ def __init__(self, provider: _Optional[_Union[AiProvider, str]] = ..., anthropic_cost: _Optional[_Union[_anthropic_pb2.AnthropicCost, _Mapping]] = ..., openai_cost: _Optional[_Union[_openai_pb2.OpenAiCost, _Mapping]] = ...) -> None: ...
554
+
555
+ class CloudCost(_message.Message):
556
+ __slots__ = ("provider", "scope", "version", "focus")
557
+ PROVIDER_FIELD_NUMBER: _ClassVar[int]
558
+ SCOPE_FIELD_NUMBER: _ClassVar[int]
559
+ VERSION_FIELD_NUMBER: _ClassVar[int]
560
+ FOCUS_FIELD_NUMBER: _ClassVar[int]
561
+ provider: CloudProvider
562
+ scope: str
563
+ version: str
564
+ focus: _focus_pb2.FocusCost
565
+ def __init__(self, provider: _Optional[_Union[CloudProvider, str]] = ..., scope: _Optional[str] = ..., version: _Optional[str] = ..., focus: _Optional[_Union[_focus_pb2.FocusCost, _Mapping]] = ...) -> None: ...
@@ -5,7 +5,7 @@ import warnings
5
5
 
6
6
  from viio_sync_api.v1 import contracts_pb2 as viio_dot_sync_dot_v1_dot_contracts__pb2
7
7
 
8
- GRPC_GENERATED_VERSION = '1.83.0'
8
+ GRPC_GENERATED_VERSION = '1.84.0'
9
9
  GRPC_VERSION = grpc.__version__
10
10
  _version_not_supported = False
11
11
 
@@ -0,0 +1,42 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: viio/sync/v1/focus.proto
5
+ # Protobuf Python Version: 7.35.1
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 7,
15
+ 35,
16
+ 1,
17
+ '',
18
+ 'viio/sync/v1/focus.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18viio/sync/v1/focus.proto\x12\x0cviio.sync.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xff\x19\n\tFocusCost\x12\x1e\n\x11\x61vailability_zone\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0b\x62illed_cost\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x62illing_account_id\x18\x03 \x01(\tH\x02\x88\x01\x01\x12!\n\x14\x62illing_account_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12!\n\x14\x62illing_account_type\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1d\n\x10\x62illing_currency\x18\x06 \x01(\tH\x05\x88\x01\x01\x12;\n\x12\x62illing_period_end\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x06\x88\x01\x01\x12=\n\x14\x62illing_period_start\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x07\x88\x01\x01\x12$\n\x17\x63\x61pacity_reservation_id\x18\t \x01(\tH\x08\x88\x01\x01\x12(\n\x1b\x63\x61pacity_reservation_status\x18\n \x01(\tH\t\x88\x01\x01\x12\x1c\n\x0f\x63harge_category\x18\x0b \x01(\tH\n\x88\x01\x01\x12\x19\n\x0c\x63harge_class\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12\x63harge_description\x18\r \x01(\tH\x0c\x88\x01\x01\x12\x1d\n\x10\x63harge_frequency\x18\x0e \x01(\tH\r\x88\x01\x01\x12:\n\x11\x63harge_period_end\x18\x0f \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0e\x88\x01\x01\x12<\n\x13\x63harge_period_start\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0f\x88\x01\x01\x12)\n\x1c\x63ommitment_discount_category\x18\x11 \x01(\tH\x10\x88\x01\x01\x12#\n\x16\x63ommitment_discount_id\x18\x12 \x01(\tH\x11\x88\x01\x01\x12%\n\x18\x63ommitment_discount_name\x18\x13 \x01(\tH\x12\x88\x01\x01\x12)\n\x1c\x63ommitment_discount_quantity\x18\x14 \x01(\tH\x13\x88\x01\x01\x12\'\n\x1a\x63ommitment_discount_status\x18\x15 \x01(\tH\x14\x88\x01\x01\x12%\n\x18\x63ommitment_discount_type\x18\x16 \x01(\tH\x15\x88\x01\x01\x12%\n\x18\x63ommitment_discount_unit\x18\x17 \x01(\tH\x16\x88\x01\x01\x12\x1e\n\x11\x63onsumed_quantity\x18\x18 \x01(\tH\x17\x88\x01\x01\x12\x1a\n\rconsumed_unit\x18\x19 \x01(\tH\x18\x88\x01\x01\x12\x1c\n\x0f\x63ontracted_cost\x18\x1a \x01(\tH\x19\x88\x01\x01\x12\"\n\x15\x63ontracted_unit_price\x18\x1b \x01(\tH\x1a\x88\x01\x01\x12\x1b\n\x0e\x65\x66\x66\x65\x63tive_cost\x18\x1c \x01(\tH\x1b\x88\x01\x01\x12\x17\n\ninvoice_id\x18\x1d \x01(\tH\x1c\x88\x01\x01\x12 \n\x13invoice_issuer_name\x18\x1e \x01(\tH\x1d\x88\x01\x01\x12\x16\n\tlist_cost\x18\x1f \x01(\tH\x1e\x88\x01\x01\x12\x1c\n\x0flist_unit_price\x18 \x01(\tH\x1f\x88\x01\x01\x12\x1d\n\x10pricing_category\x18! \x01(\tH \x88\x01\x01\x12\x1d\n\x10pricing_currency\x18\" \x01(\tH!\x88\x01\x01\x12\x33\n&pricing_currency_contracted_unit_price\x18# \x01(\tH\"\x88\x01\x01\x12,\n\x1fpricing_currency_effective_cost\x18$ \x01(\tH#\x88\x01\x01\x12-\n pricing_currency_list_unit_price\x18% \x01(\tH$\x88\x01\x01\x12\x1d\n\x10pricing_quantity\x18& \x01(\tH%\x88\x01\x01\x12\x19\n\x0cpricing_unit\x18\' \x01(\tH&\x88\x01\x01\x12\x1a\n\rprovider_name\x18( \x01(\tH\'\x88\x01\x01\x12\x1b\n\x0epublisher_name\x18) \x01(\tH(\x88\x01\x01\x12\x16\n\tregion_id\x18* \x01(\tH)\x88\x01\x01\x12\x18\n\x0bregion_name\x18+ \x01(\tH*\x88\x01\x01\x12\x18\n\x0bresource_id\x18, \x01(\tH+\x88\x01\x01\x12\x1a\n\rresource_name\x18- \x01(\tH,\x88\x01\x01\x12\x1a\n\rresource_type\x18. \x01(\tH-\x88\x01\x01\x12\x1d\n\x10service_category\x18/ \x01(\tH.\x88\x01\x01\x12\x19\n\x0cservice_name\x18\x30 \x01(\tH/\x88\x01\x01\x12 \n\x13service_subcategory\x18\x31 \x01(\tH0\x88\x01\x01\x12\x13\n\x06sku_id\x18\x32 \x01(\tH1\x88\x01\x01\x12\x16\n\tsku_meter\x18\x33 \x01(\tH2\x88\x01\x01\x12\x1e\n\x11sku_price_details\x18\x34 \x01(\tH3\x88\x01\x01\x12\x19\n\x0csku_price_id\x18\x35 \x01(\tH4\x88\x01\x01\x12\x1b\n\x0esub_account_id\x18\x36 \x01(\tH5\x88\x01\x01\x12\x1d\n\x10sub_account_name\x18\x37 \x01(\tH6\x88\x01\x01\x12\x1d\n\x10sub_account_type\x18\x38 \x01(\tH7\x88\x01\x01\x12\x11\n\x04tags\x18\x39 \x01(\tH8\x88\x01\x01\x12\x33\n\x06\x65xtras\x18: \x03(\x0b\x32#.viio.sync.v1.FocusCost.ExtrasEntry\x1a-\n\x0b\x45xtrasEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x14\n\x12_availability_zoneB\x0e\n\x0c_billed_costB\x15\n\x13_billing_account_idB\x17\n\x15_billing_account_nameB\x17\n\x15_billing_account_typeB\x13\n\x11_billing_currencyB\x15\n\x13_billing_period_endB\x17\n\x15_billing_period_startB\x1a\n\x18_capacity_reservation_idB\x1e\n\x1c_capacity_reservation_statusB\x12\n\x10_charge_categoryB\x0f\n\r_charge_classB\x15\n\x13_charge_descriptionB\x13\n\x11_charge_frequencyB\x14\n\x12_charge_period_endB\x16\n\x14_charge_period_startB\x1f\n\x1d_commitment_discount_categoryB\x19\n\x17_commitment_discount_idB\x1b\n\x19_commitment_discount_nameB\x1f\n\x1d_commitment_discount_quantityB\x1d\n\x1b_commitment_discount_statusB\x1b\n\x19_commitment_discount_typeB\x1b\n\x19_commitment_discount_unitB\x14\n\x12_consumed_quantityB\x10\n\x0e_consumed_unitB\x12\n\x10_contracted_costB\x18\n\x16_contracted_unit_priceB\x11\n\x0f_effective_costB\r\n\x0b_invoice_idB\x16\n\x14_invoice_issuer_nameB\x0c\n\n_list_costB\x12\n\x10_list_unit_priceB\x13\n\x11_pricing_categoryB\x13\n\x11_pricing_currencyB)\n\'_pricing_currency_contracted_unit_priceB\"\n _pricing_currency_effective_costB#\n!_pricing_currency_list_unit_priceB\x13\n\x11_pricing_quantityB\x0f\n\r_pricing_unitB\x10\n\x0e_provider_nameB\x11\n\x0f_publisher_nameB\x0c\n\n_region_idB\x0e\n\x0c_region_nameB\x0e\n\x0c_resource_idB\x10\n\x0e_resource_nameB\x10\n\x0e_resource_typeB\x13\n\x11_service_categoryB\x0f\n\r_service_nameB\x16\n\x14_service_subcategoryB\t\n\x07_sku_idB\x0c\n\n_sku_meterB\x14\n\x12_sku_price_detailsB\x0f\n\r_sku_price_idB\x11\n\x0f_sub_account_idB\x13\n\x11_sub_account_nameB\x13\n\x11_sub_account_typeB\x07\n\x05_tagsB\x1c\xaa\x02\x19Viio.SyncApi.V1.Contractsb\x06proto3')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'viio.sync.v1.focus_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ _globals['DESCRIPTOR']._loaded_options = None
35
+ _globals['DESCRIPTOR']._serialized_options = b'\252\002\031Viio.SyncApi.V1.Contracts'
36
+ _globals['_FOCUSCOST_EXTRASENTRY']._loaded_options = None
37
+ _globals['_FOCUSCOST_EXTRASENTRY']._serialized_options = b'8\001'
38
+ _globals['_FOCUSCOST']._serialized_start=76
39
+ _globals['_FOCUSCOST']._serialized_end=3403
40
+ _globals['_FOCUSCOST_EXTRASENTRY']._serialized_start=2091
41
+ _globals['_FOCUSCOST_EXTRASENTRY']._serialized_end=2136
42
+ # @@protoc_insertion_point(module_scope)