Read who read and wrote each asked entity over the window: the jobs, the service accounts, the
tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users
scope sees the logins: any other gets every logins list empty and logins_hidden set.
A Timestamp represents a point in time independent of any time zone or local
calendar, encoded as a count of seconds and fractions of seconds at
nanosecond resolution. The count is relative to an epoch at UTC midnight on
January 1, 1970, in the proleptic Gregorian calendar which extends the
Gregorian calendar backwards to year one.
All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
second table is needed for interpretation, using a 24-hour linear
smear.
The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
restricting to that range, we ensure that we can convert to and from RFC
3339 date strings.
In JSON format, the Timestamp type is encoded as a string in the
RFC 3339 format. That is, the
format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
where {year} is always expressed using four digits while {month}, {day},
{hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
is required. A proto3 JSON serializer should always use UTC (as indicated by
"Z") when printing the Timestamp type and a proto3 JSON parser should be
able to accept both UTC and other timezones (as indicated by an offset).
For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
01:30 UTC on January 15, 2017.
In JavaScript, one can convert a Date object to this format using the
standard
toISOString()
method. In Python, a standard datetime.datetime object can be converted
to this format using
strftime with
the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.
A Timestamp represents a point in time independent of any time zone or local
calendar, encoded as a count of seconds and fractions of seconds at
nanosecond resolution. The count is relative to an epoch at UTC midnight on
January 1, 1970, in the proleptic Gregorian calendar which extends the
Gregorian calendar backwards to year one.
All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
second table is needed for interpretation, using a 24-hour linear
smear.
The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
restricting to that range, we ensure that we can convert to and from RFC
3339 date strings.
In JSON format, the Timestamp type is encoded as a string in the
RFC 3339 format. That is, the
format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
where {year} is always expressed using four digits while {month}, {day},
{hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
is required. A proto3 JSON serializer should always use UTC (as indicated by
"Z") when printing the Timestamp type and a proto3 JSON parser should be
able to accept both UTC and other timezones (as indicated by an offset).
For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
01:30 UTC on January 15, 2017.
In JavaScript, one can convert a Date object to this format using the
standard
toISOString()
method. In Python, a standard datetime.datetime object can be converted
to this format using
strftime with
the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.
Set when the caller may not see logins: every logins list is empty. Every count is still served.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Coalesce Quality Documentation","colors":{"primary":"#135594","light":"#e8f0f8","dark":"#0d3966"},"logo":{"light":"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4ad60b616ed815902c710f413d59cf63","dark":"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo-white.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4d8c4a954595c0dfd25bfdf645e6cb56"},"favicon":{"light":"https://mintcdn.com/synq-15/xb0Db-MnOw_Ojah5/favicon.svg?fit=max\u0026auto=format\u0026n=xb0Db-MnOw_Ojah5\u0026q=85\u0026s=860c7081b896f01fe24af1c330da1796","dark":"https://mintcdn.com/synq-15/qs0RRq4z_2GWyKyp/favicon-dark.svg?fit=max\u0026auto=format\u0026n=qs0RRq4z_2GWyKyp\u0026q=85\u0026s=b740f42e7f6972f91d62be5b2840c805"},"navbar":{"links":[{"href":"https://coalesce.io/product/quality/","label":"Website"},{"href":"https://coalesce.io/product/request-demo/","label":"Book a Demo"}],"primary":{"type":"button","label":"Coalesce Quality Platform","href":"https://app.synq.io"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/coalesceio"}},"integrations":{"ga4":{"measurementId":"G-P55J2JTKF1"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://coalesce.io/resources/"},{"anchor":"Changelog","icon":"rocket","href":"https://synq.io/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"synq-15","hasAudioNarration":false,"actualSubdomain":"synq-15","customDomains":["docs.synq.io"],"gitSource":{"type":"github","owner":"getsynq","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae9feadbf4ef845262bcdff","collectionId":"e45f1092-4636-4a73-b4df-6a1ed10b773e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9feadbf4ef845262bcdff"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aeb730b330d696ca47f71b8","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":450},{"language":"default","tag":"Developer API","count":342},{"language":"default","tag":"REST API","count":331},{"language":"default","tag":"synq.incidents.v1.IncidentsService","count":14},{"language":"default","tag":"Monitors","count":13},{"language":"default","tag":"Reconciliations","count":13},{"language":"default","tag":"synq.alerts.services.v2.AlertsService","count":13},{"language":"default","tag":"synq.monitors.automated_monitors.v1.DeploymentRulesService","count":12},{"language":"default","tag":"synq.domains.v2.DomainsService","count":10},{"language":"default","tag":"synq.users.v1.UsersService","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"global.css","content":".dark img[src^=\"/images/\"]{background:#fff;border-radius:.5rem;padding:4px}"}],"page":{"pagePath":"api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors","slug":"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors","pageMetadata":{"title":"ListEntityActors","description":"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the\n tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users\n scope sees the logins: any other gets every logins list empty and logins_hidden set.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actors","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the\\ntools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users\\nscope sees the logins: any other gets every logins list empty and logins_hidden set.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"ListEntityActors","description":"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the\n tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users\n scope sees the logins: any other gets every logins list empty and logins_hidden set.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actors","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/synq-15/7fe5b7dda612017d/region.js"],"openApiReferenceData":{"operation":{"tags":["synq.entities.activity.v1alpha.ActivityService"],"summary":"ListEntityActors","description":"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the\n tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users\n scope sees the logins: any other gets every logins list empty and logins_hidden set.","operationId":"synq.entities.activity.v1alpha.ActivityService.ListEntityActors","requestBody":"aa971f42-02a4-48ba-be7f-0d08e496bfe9","responses":{"200":"db7fe155-2c7a-469c-b5d1-d7d8dc4cfc8f"},"method":"post","type":"path","servers":["669c6e56-9702-4ed2-896e-cea41abbf730","9a0b8ed5-0b97-421b-bed5-1f396869feae","d0c655c0-3191-437a-9d11-53da28e361f0"],"security":["dd5880af-cdf1-4521-98fa-c871340142d2"],"path":"/api/entities/activity/v1alpha/actors","baseUrlOptions":["https://developer.synq.io","https://api.us.synq.io","https://api.au.synq.io"],"title":"ListEntityActors","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entityIds":{"type":"array","items":{"type":"string","maxLength":2048,"minLength":1,"maxItems":1000,"minItems":1,"uniqueKey":"entityIds.items.[INDEX]","typeLabel":"string"},"maxItems":1000,"minItems":1,"uniqueKey":"entityIds","typeLabel":"string[]"},"until":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"The window ends at the start of this hour, exclusive. Unset is the current hour.","uniqueKey":"until","typeLabel":"string\u003cdate-time>"},"windowDays":{"type":"integer","maximum":92,"description":"The window's length in days, back from until. Unset is 30.","uniqueKey":"windowDays","typeLabel":"integer"},"topK":{"type":"integer","description":"At most this many entries per list. Unset returns every entry.","uniqueKey":"topK","typeLabel":"integer"},"lens":{"type":"string","title":"ActivityLens","enum":["ACTIVITY_LENS_UNSPECIFIED","ACTIVITY_LENS_CONSUMPTION","ACTIVITY_LENS_DEVELOPMENT","ACTIVITY_LENS_MONITORING"],"description":"Which access counts. Unset is CONSUMPTION, under which each direction's total is what\n BatchGetPopularity counts.","uniqueKey":"lens","typeLabel":"enum\u003cstring>"},"directions":{"type":"array","items":{"type":"string","title":"ActivityDirection","enum":["ACTIVITY_DIRECTION_UNSPECIFIED","ACTIVITY_DIRECTION_READ","ACTIVITY_DIRECTION_INPUT","ACTIVITY_DIRECTION_WRITE"],"description":"ActivityDirection is how a query touched an entity.","uniqueKey":"directions.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Only these directions. Empty is every direction the lens serves.","uniqueKey":"directions","typeLabel":"enum\u003cstring>[]"},"measures":{"type":"array","items":{"type":"string","title":"ActivityMeasure","enum":["ACTIVITY_MEASURE_UNSPECIFIED","ACTIVITY_MEASURE_QUERIES","ACTIVITY_MEASURE_VIEWS","ACTIVITY_MEASURE_RUNS"],"description":"ActivityMeasure is what a count counts. Counts are compared only within one measure.","uniqueKey":"measures.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Only these measures. Empty is every measure.","uniqueKey":"measures","typeLabel":"enum\u003cstring>[]"}},"title":"ListEntityActorsRequest","additionalProperties":false,"uniqueKey":"","typeLabel":"ListEntityActorsRequest · object"},"examples":{"Example":{"title":"Example","value":{"entityIds":["\u003cstring>"],"until":"2023-01-15T01:30:15.01Z","windowDays":91,"topK":123,"directions":[],"measures":[]}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"db7fe155-2c7a-469c-b5d1-d7d8dc4cfc8f":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"entities":{"type":"array","items":{"type":"object","properties":{"entityId":{"type":"string","uniqueKey":"entities.items.[INDEX].entityId","typeLabel":"string"},"actors":{"type":"array","items":{"type":"object","properties":{"direction":{"type":"string","title":"ActivityDirection","enum":["ACTIVITY_DIRECTION_UNSPECIFIED","ACTIVITY_DIRECTION_READ","ACTIVITY_DIRECTION_INPUT","ACTIVITY_DIRECTION_WRITE"],"description":"ActivityDirection is how a query touched an entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].direction","typeLabel":"enum\u003cstring>"},"measure":{"type":"string","title":"ActivityMeasure","enum":["ACTIVITY_MEASURE_UNSPECIFIED","ACTIVITY_MEASURE_QUERIES","ACTIVITY_MEASURE_VIEWS","ACTIVITY_MEASURE_RUNS"],"description":"ActivityMeasure is what a count counts. Counts are compared only within one measure.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].measure","typeLabel":"enum\u003cstring>"},"total":{"oneOf":[{"type":"integer","format":"int64","description":"The direction's count: every counted access, whoever it was. The lists below overlap, and a\n login can be left off one by its policy, so they do not add up to it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].total.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"The direction's count: every counted access, whoever it was. The lists below overlap, and a\n login can be left off one by its policy, so they do not add up to it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].total.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].total","typeLabel":"integer\u003cint64> | string\u003cint64>"},"issuerEntities":{"type":"array","items":{"oneOf":[{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuer"],"properties":{"issuer":{"type":"string","title":"issuer","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"description":"A tool, from the tag on queries no job is named for, such as \"Looker reads this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.issuer","typeLabel":"enum\u003cstring>"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.0","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuerEntityId"],"properties":{"issuerEntityId":{"type":"string","title":"issuer_entity_id","description":"A job, task or step, such as \"dbt model M writes this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.issuerEntityId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.1","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["platformUserId"],"properties":{"platformUserId":{"type":"string","title":"platform_user_id","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.platformUserId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.2","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["serviceAccountId"],"properties":{"serviceAccountId":{"type":"string","title":"service_account_id","description":"A service account, a built-in one included.","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.serviceAccountId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX].oneOf.3","typeLabel":"ActorActivity · object"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities.items.[INDEX]","typeLabel":"ActorActivity · object"},"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].issuerEntities","typeLabel":"ActorActivity · object[]"},"serviceAccounts":{"type":"array","items":{"oneOf":[{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuer"],"properties":{"issuer":{"type":"string","title":"issuer","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"description":"A tool, from the tag on queries no job is named for, such as \"Looker reads this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.issuer","typeLabel":"enum\u003cstring>"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.0","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuerEntityId"],"properties":{"issuerEntityId":{"type":"string","title":"issuer_entity_id","description":"A job, task or step, such as \"dbt model M writes this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.issuerEntityId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.1","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["platformUserId"],"properties":{"platformUserId":{"type":"string","title":"platform_user_id","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.platformUserId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.2","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["serviceAccountId"],"properties":{"serviceAccountId":{"type":"string","title":"service_account_id","description":"A service account, a built-in one included.","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.serviceAccountId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX].oneOf.3","typeLabel":"ActorActivity · object"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts.items.[INDEX]","typeLabel":"ActorActivity · object"},"description":"The workspace's service accounts first, then the built-in ones, each by count. A tool with one\n built-in account is that account, so the account also has every query tagged with the tool, on\n any login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].serviceAccounts","typeLabel":"ActorActivity · object[]"},"tools":{"type":"array","items":{"oneOf":[{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuer"],"properties":{"issuer":{"type":"string","title":"issuer","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"description":"A tool, from the tag on queries no job is named for, such as \"Looker reads this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.issuer","typeLabel":"enum\u003cstring>"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.0","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuerEntityId"],"properties":{"issuerEntityId":{"type":"string","title":"issuer_entity_id","description":"A job, task or step, such as \"dbt model M writes this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.issuerEntityId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.1","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["platformUserId"],"properties":{"platformUserId":{"type":"string","title":"platform_user_id","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.platformUserId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.2","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["serviceAccountId"],"properties":{"serviceAccountId":{"type":"string","title":"service_account_id","description":"A service account, a built-in one included.","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.serviceAccountId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX].oneOf.3","typeLabel":"ActorActivity · object"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools.items.[INDEX]","typeLabel":"ActorActivity · object"},"description":"The tools that tagged the queries naming no issuer entity, except a tool with one built-in\n account, which is listed as that account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].tools","typeLabel":"ActorActivity · object[]"},"logins":{"type":"array","items":{"oneOf":[{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuer"],"properties":{"issuer":{"type":"string","title":"issuer","enum":["DATA_PLATFORM_TYPE_UNSPECIFIED","DATA_PLATFORM_TYPE_BIGQUERY","DATA_PLATFORM_TYPE_LOOKER","DATA_PLATFORM_TYPE_DBT","DATA_PLATFORM_TYPE_DBT_CLOUD","DATA_PLATFORM_TYPE_DBT_SELF_HOSTED","DATA_PLATFORM_TYPE_SNOWFLAKE","DATA_PLATFORM_TYPE_GCP","DATA_PLATFORM_TYPE_GIT","DATA_PLATFORM_TYPE_GITHUB","DATA_PLATFORM_TYPE_REDSHIFT","DATA_PLATFORM_TYPE_TABLEAU","DATA_PLATFORM_TYPE_AIRFLOW","DATA_PLATFORM_TYPE_CLICKHOUSE","DATA_PLATFORM_TYPE_POSTGRES","DATA_PLATFORM_TYPE_MYSQL","DATA_PLATFORM_TYPE_DATABRICKS","DATA_PLATFORM_TYPE_SQLMESH","DATA_PLATFORM_TYPE_DUCKDB","DATA_PLATFORM_TYPE_TRINO","DATA_PLATFORM_TYPE_ATLAN","DATA_PLATFORM_TYPE_COALESCE","DATA_PLATFORM_TYPE_CASTORDOC","DATA_PLATFORM_TYPE_FIVETRAN","DATA_PLATFORM_TYPE_DAGSTER","DATA_PLATFORM_TYPE_AIRBYTE","DATA_PLATFORM_TYPE_STITCH","DATA_PLATFORM_TYPE_SNOWPLOW","DATA_PLATFORM_TYPE_POWERBI","DATA_PLATFORM_TYPE_THOUGHTSPOT","DATA_PLATFORM_TYPE_SIGMA","DATA_PLATFORM_TYPE_DOMO","DATA_PLATFORM_TYPE_MSSQL","DATA_PLATFORM_TYPE_ORACLE","DATA_PLATFORM_TYPE_ATHENA","DATA_PLATFORM_TYPE_FABRIC","DATA_PLATFORM_TYPE_DB2","DATA_PLATFORM_TYPE_LOOKER_STUDIO","DATA_PLATFORM_TYPE_HEX","DATA_PLATFORM_TYPE_OMNI","DATA_PLATFORM_TYPE_METABASE","DATA_PLATFORM_TYPE_GOOGLE_SHEETS","DATA_PLATFORM_TYPE_GRAFANA","DATA_PLATFORM_TYPE_STREAMLIT","DATA_PLATFORM_TYPE_ASTRATO","DATA_PLATFORM_TYPE_SNOWFLAKE_CORTEX","DATA_PLATFORM_TYPE_SNOWFLAKE_INTELLIGENCE","DATA_PLATFORM_TYPE_CUBE","DATA_PLATFORM_TYPE_CENSUS","DATA_PLATFORM_TYPE_HIGHTOUCH","DATA_PLATFORM_TYPE_WORKATO","DATA_PLATFORM_TYPE_ESTUARY","DATA_PLATFORM_TYPE_DLT","DATA_PLATFORM_TYPE_TERRAFORM","DATA_PLATFORM_TYPE_HEVO","DATA_PLATFORM_TYPE_DATASTREAM","DATA_PLATFORM_TYPE_QLIK","DATA_PLATFORM_TYPE_SALESFORCE","DATA_PLATFORM_TYPE_SYNQ"],"description":"A tool, from the tag on queries no job is named for, such as \"Looker reads this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.issuer","typeLabel":"enum\u003cstring>"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.0","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["issuerEntityId"],"properties":{"issuerEntityId":{"type":"string","title":"issuer_entity_id","description":"A job, task or step, such as \"dbt model M writes this\".","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.issuerEntityId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.1","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["platformUserId"],"properties":{"platformUserId":{"type":"string","title":"platform_user_id","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.platformUserId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.2","typeLabel":"ActorActivity · object"},{"type":"object","title":"ActorActivity","description":"ActorActivity is one thing that touched an entity in one direction and measure, with its count.","required":["serviceAccountId"],"properties":{"serviceAccountId":{"type":"string","title":"service_account_id","description":"A service account, a built-in one included.","isRequired":true,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.serviceAccountId","typeLabel":"string"},"count":{"oneOf":[{"type":"integer","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.count.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","title":"count","format":"int64","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.count.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.count","typeLabel":"integer\u003cint64> | string\u003cint64>"},"logins":{"type":"integer","title":"logins","description":"The distinct logins behind the count. 1 for a login.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.logins","typeLabel":"integer"},"lastSeenAt":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","title":"last_seen_at","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.lastSeenAt","typeLabel":"string\u003cdate-time>"},"basis":{"type":"string","title":"basis","enum":["LOGIN_BASIS_UNSPECIFIED","LOGIN_BASIS_SERVICE_ACCOUNT","LOGIN_BASIS_SHARED_LOGIN","LOGIN_BASIS_OWN_LOGIN","LOGIN_BASIS_UNRESOLVED_LOGIN","LOGIN_BASIS_VIEWER_EMAIL","LOGIN_BASIS_VIEWER_TOOL_USER"],"description":"For a login only.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.basis","typeLabel":"enum\u003cstring>"},"personIdentity":{"type":"string","title":"person_identity","description":"For a login with basis OWN_LOGIN, VIEWER_EMAIL or VIEWER_TOOL_USER: the identity of its person,\n such as \"email:\u003caddress>\", empty when none resolves. A member whose identities hold the login's\n \"platform_user:\u003cid>\" wins over it: that is a platform user alias, and the caller applies it.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.personIdentity","typeLabel":"string"},"activeDays":{"type":"integer","title":"active_days","description":"The distinct UTC days with counted access.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.activeDays","typeLabel":"integer"},"shares":{"type":"object","properties":{"executionMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.executionMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.executionMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.executionMs","typeLabel":"number\u003cdouble> | null"},"computeMs":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.computeMs.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.computeMs.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.computeMs","typeLabel":"number\u003cdouble> | null"},"bytesScanned":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesScanned.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesScanned","typeLabel":"number\u003cdouble> | null"},"bytesBilled":{"oneOf":[{"type":"number","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.0","typeLabel":"number\u003cdouble>"},{"type":"null","format":"double","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesBilled.oneOf.1","typeLabel":"null"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares.bytesBilled","typeLabel":"number\u003cdouble> | null"}},"title":"shares","additionalProperties":false,"description":"The summed shares of the queries behind the count.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.shares","typeLabel":"shares · object"},"purpose":{"type":"string","title":"purpose","enum":["PURPOSE_UNSPECIFIED","PURPOSE_LOADER","PURPOSE_ORCHESTRATOR","PURPOSE_TRANSFORMER","PURPOSE_BI","PURPOSE_REVERSE_ETL","PURPOSE_APPLICATION","PURPOSE_OBSERVABILITY","PURPOSE_CATALOG","PURPOSE_CI","PURPOSE_OTHER"],"description":"What it acts for: a service account's purpose, else the purpose of the tool that issued its\n queries. Unspecified for a login, and for a tool with no known purpose.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.purpose","typeLabel":"enum\u003cstring>"},"cadence":{"type":"string","title":"cadence","enum":["WRITE_CADENCE_UNSPECIFIED","WRITE_CADENCE_NONE","WRITE_CADENCE_ONCE","WRITE_CADENCE_HOURLY","WRITE_CADENCE_SUB_DAILY","WRITE_CADENCE_DAILY","WRITE_CADENCE_WEEKLY","WRITE_CADENCE_RARE"],"description":"How often it accessed the entity in the window.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.cadence","typeLabel":"enum\u003cstring>"},"builtIn":{"type":"boolean","title":"built_in","description":"Set when service_account_id names a built-in account.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.builtIn","typeLabel":"boolean"},"entityId":{"type":"string","title":"entity_id","description":"For a service account, its entity id, which resolves to its name like any other entity.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3.entityId","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX].oneOf.3","typeLabel":"ActorActivity · object"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins.items.[INDEX]","typeLabel":"ActorActivity · object"},"description":"Every login, whatever issued its queries, except those whose policy keeps them off the frequent\n users list. A login known two ways is listed once per basis.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].logins","typeLabel":"ActorActivity · object[]"},"unattributed":{"oneOf":[{"type":"integer","format":"int64","description":"The count no login is named for.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].unattributed.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"The count no login is named for.","uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].unattributed.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX].unattributed","typeLabel":"integer\u003cint64> | string\u003cint64>"}},"title":"DirectionActors","additionalProperties":false,"uniqueKey":"entities.items.[INDEX].actors.items.[INDEX]","typeLabel":"DirectionActors · object"},"description":"One per direction and measure with counted access: READ, INPUT, WRITE, then in measure order.\n INPUT is counted only under the DEVELOPMENT lens.","uniqueKey":"entities.items.[INDEX].actors","typeLabel":"DirectionActors · object[]"},"notCounted":{"type":"object","properties":{"coalesceLogins":{"oneOf":[{"type":"integer","format":"int64","description":"Access by the logins Coalesce Quality connects as, on queries that carried no Coalesce Quality\n tag. A tagged query is in coalesce_quality_queries instead.","uniqueKey":"entities.items.[INDEX].notCounted.coalesceLogins.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Access by the logins Coalesce Quality connects as, on queries that carried no Coalesce Quality\n tag. A tagged query is in coalesce_quality_queries instead.","uniqueKey":"entities.items.[INDEX].notCounted.coalesceLogins.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.coalesceLogins","typeLabel":"integer\u003cint64> | string\u003cint64>"},"writersOwnReads":{"oneOf":[{"type":"integer","format":"int64","description":"Reads by a login of an entity it wrote the same UTC day.","uniqueKey":"entities.items.[INDEX].notCounted.writersOwnReads.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Reads by a login of an entity it wrote the same UTC day.","uniqueKey":"entities.items.[INDEX].notCounted.writersOwnReads.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.writersOwnReads","typeLabel":"integer\u003cint64> | string\u003cint64>"},"intermediate":{"oneOf":[{"type":"integer","format":"int64","description":"Reads in an hour the entity was an intermediate table.","uniqueKey":"entities.items.[INDEX].notCounted.intermediate.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Reads in an hour the entity was an intermediate table.","uniqueKey":"entities.items.[INDEX].notCounted.intermediate.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.intermediate","typeLabel":"integer\u003cint64> | string\u003cint64>"},"coalesceQualityQueries":{"oneOf":[{"type":"integer","format":"int64","description":"Coalesce Quality's own queries, on any login, such as a monitor or a SQL test reading the entity.\n Never counted.","uniqueKey":"entities.items.[INDEX].notCounted.coalesceQualityQueries.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Coalesce Quality's own queries, on any login, such as a monitor or a SQL test reading the entity.\n Never counted.","uniqueKey":"entities.items.[INDEX].notCounted.coalesceQualityQueries.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.coalesceQualityQueries","typeLabel":"integer\u003cint64> | string\u003cint64>"},"excludedByPolicy":{"oneOf":[{"type":"integer","format":"int64","description":"Reads by logins whose service account does not count toward popularity, such as a loader or an\n orchestrator.","uniqueKey":"entities.items.[INDEX].notCounted.excludedByPolicy.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Reads by logins whose service account does not count toward popularity, such as a loader or an\n orchestrator.","uniqueKey":"entities.items.[INDEX].notCounted.excludedByPolicy.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.excludedByPolicy","typeLabel":"integer\u003cint64> | string\u003cint64>"},"excludedByLens":{"oneOf":[{"type":"integer","format":"int64","description":"Reads the asked lens does not look at, such as a BI tool's reads under DEVELOPMENT, or a dbt\n test's reads under CONSUMPTION.","uniqueKey":"entities.items.[INDEX].notCounted.excludedByLens.oneOf.0","typeLabel":"integer\u003cint64>"},{"type":"string","format":"int64","description":"Reads the asked lens does not look at, such as a BI tool's reads under DEVELOPMENT, or a dbt\n test's reads under CONSUMPTION.","uniqueKey":"entities.items.[INDEX].notCounted.excludedByLens.oneOf.1","typeLabel":"string\u003cint64>"}],"uniqueKey":"entities.items.[INDEX].notCounted.excludedByLens","typeLabel":"integer\u003cint64> | string\u003cint64>"}},"title":"NotCountedActivity","additionalProperties":false,"description":"NotCountedActivity is access a read saw and left out.","uniqueKey":"entities.items.[INDEX].notCounted","typeLabel":"NotCountedActivity · object"}},"title":"EntityActors","additionalProperties":false,"uniqueKey":"entities.items.[INDEX]","typeLabel":"EntityActors · object"},"description":"One per distinct asked id, in the order each was first asked.","uniqueKey":"entities","typeLabel":"EntityActors · object[]"},"from":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","uniqueKey":"from","typeLabel":"string\u003cdate-time>"},"to":{"type":"string","examples":["2023-01-15T01:30:15.01Z","2024-12-25T12:00:00Z"],"format":"date-time","description":"A Timestamp represents a point in time independent of any time zone or local\n calendar, encoded as a count of seconds and fractions of seconds at\n nanosecond resolution. The count is relative to an epoch at UTC midnight on\n January 1, 1970, in the proleptic Gregorian calendar which extends the\n Gregorian calendar backwards to year one.\n\n All minutes are 60 seconds long. Leap seconds are \"smeared\" so that no leap\n second table is needed for interpretation, using a [24-hour linear\n smear](https://developers.google.com/time/smear).\n\n The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By\n restricting to that range, we ensure that we can convert to and from [RFC\n 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.\n\n # Examples\n\n Example 1: Compute Timestamp from POSIX `time()`.\n\n Timestamp timestamp;\n timestamp.set_seconds(time(NULL));\n timestamp.set_nanos(0);\n\n Example 2: Compute Timestamp from POSIX `gettimeofday()`.\n\n struct timeval tv;\n gettimeofday(\u0026tv, NULL);\n\n Timestamp timestamp;\n timestamp.set_seconds(tv.tv_sec);\n timestamp.set_nanos(tv.tv_usec * 1000);\n\n Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.\n\n FILETIME ft;\n GetSystemTimeAsFileTime(\u0026ft);\n UINT64 ticks = (((UINT64)ft.dwHighDateTime) \u003c\u003c 32) | ft.dwLowDateTime;\n\n // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z\n // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.\n Timestamp timestamp;\n timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));\n timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));\n\n Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.\n\n long millis = System.currentTimeMillis();\n\n Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)\n .setNanos((int) ((millis % 1000) * 1000000)).build();\n\n Example 5: Compute Timestamp from Java `Instant.now()`.\n\n Instant now = Instant.now();\n\n Timestamp timestamp =\n Timestamp.newBuilder().setSeconds(now.getEpochSecond())\n .setNanos(now.getNano()).build();\n\n Example 6: Compute Timestamp from current time in Python.\n\n timestamp = Timestamp()\n timestamp.GetCurrentTime()\n\n # JSON Mapping\n\n In JSON format, the Timestamp type is encoded as a string in the\n [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the\n format is \"{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z\"\n where {year} is always expressed using four digits while {month}, {day},\n {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional\n seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),\n are optional. The \"Z\" suffix indicates the timezone (\"UTC\"); the timezone\n is required. A proto3 JSON serializer should always use UTC (as indicated by\n \"Z\") when printing the Timestamp type and a proto3 JSON parser should be\n able to accept both UTC and other timezones (as indicated by an offset).\n\n For example, \"2017-01-15T01:30:15.01Z\" encodes 15.01 seconds past\n 01:30 UTC on January 15, 2017.\n\n In JavaScript, one can convert a Date object to this format using the\n standard\n [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)\n method. In Python, a standard `datetime.datetime` object can be converted\n to this format using\n [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with\n the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use\n the Joda Time's [`ISODateTimeFormat.dateTime()`](\n http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()\n ) to obtain a formatter capable of generating timestamps in this format.","uniqueKey":"to","typeLabel":"string\u003cdate-time>"},"loginsHidden":{"type":"boolean","description":"Set when the caller may not see logins: every logins list is empty. Every count is still served.","uniqueKey":"loginsHidden","typeLabel":"boolean"}},"title":"ListEntityActorsResponse","additionalProperties":false,"uniqueKey":"","typeLabel":"ListEntityActorsResponse · object"},"examples":{"Example":{"title":"Example","value":{"entities":[{"entityId":"\u003cstring>","actors":[{"direction":"ACTIVITY_DIRECTION_UNSPECIFIED","measure":"ACTIVITY_MEASURE_UNSPECIFIED","total":123,"issuerEntities":[{"issuer":"DATA_PLATFORM_TYPE_UNSPECIFIED","count":123,"logins":123,"lastSeenAt":"2023-01-15T01:30:15.01Z","basis":"LOGIN_BASIS_UNSPECIFIED","personIdentity":"\u003cstring>","activeDays":123,"shares":{"executionMs":123,"computeMs":123,"bytesScanned":123,"bytesBilled":123},"purpose":"PURPOSE_UNSPECIFIED","cadence":"WRITE_CADENCE_UNSPECIFIED","builtIn":true,"entityId":"\u003cstring>"}],"serviceAccounts":[{"issuer":"DATA_PLATFORM_TYPE_UNSPECIFIED","count":123,"logins":123,"lastSeenAt":"2023-01-15T01:30:15.01Z","basis":"LOGIN_BASIS_UNSPECIFIED","personIdentity":"\u003cstring>","activeDays":123,"shares":{"executionMs":123,"computeMs":123,"bytesScanned":123,"bytesBilled":123},"purpose":"PURPOSE_UNSPECIFIED","cadence":"WRITE_CADENCE_UNSPECIFIED","builtIn":true,"entityId":"\u003cstring>"}],"tools":[{"issuer":"DATA_PLATFORM_TYPE_UNSPECIFIED","count":123,"logins":123,"lastSeenAt":"2023-01-15T01:30:15.01Z","basis":"LOGIN_BASIS_UNSPECIFIED","personIdentity":"\u003cstring>","activeDays":123,"shares":{"executionMs":123,"computeMs":123,"bytesScanned":123,"bytesBilled":123},"purpose":"PURPOSE_UNSPECIFIED","cadence":"WRITE_CADENCE_UNSPECIFIED","builtIn":true,"entityId":"\u003cstring>"}],"logins":[{"issuer":"DATA_PLATFORM_TYPE_UNSPECIFIED","count":123,"logins":123,"lastSeenAt":"2023-01-15T01:30:15.01Z","basis":"LOGIN_BASIS_UNSPECIFIED","personIdentity":"\u003cstring>","activeDays":123,"shares":{"executionMs":123,"computeMs":123,"bytesScanned":123,"bytesBilled":123},"purpose":"PURPOSE_UNSPECIFIED","cadence":"WRITE_CADENCE_UNSPECIFIED","builtIn":true,"entityId":"\u003cstring>"}],"unattributed":123}],"notCounted":{"coalesceLogins":123,"writersOwnReads":123,"intermediate":123,"coalesceQualityQueries":123,"excludedByPolicy":123,"excludedByLens":123}}],"from":"2023-01-15T01:30:15.01Z","to":"2023-01-15T01:30:15.01Z","loginsHidden":true}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"dd5880af-cdf1-4521-98fa-c871340142d2":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"669c6e56-9702-4ed2-896e-cea41abbf730":{"url":"https://developer.synq.io"},"9a0b8ed5-0b97-421b-bed5-1f396869feae":{"url":"https://api.us.synq.io"},"d0c655c0-3191-437a-9d11-53da28e361f0":{"url":"https://api.au.synq.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"synq-15","siteName":"Coalesce Quality Documentation","title":"ListEntityActors - Coalesce Quality Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T18:02:07.141Z","originalFileLocation":"api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users scope sees the logins: any other gets every logins list empty and logins_hidden set.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"ListEntityActors - Coalesce Quality Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users scope sees the logins: any other gets every logins list empty and logins_hidden set.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://synq-15.mintlify.app/_mintlify/api/og/v2?division=synq.entities.activity.v1alpha.ActivityService\u0026amp;title=ListEntityActors\u0026amp;description=Read+who+read+and+wrote+each+asked+entity+over+the+window%3A+the+jobs%2C+the+service+accounts%2C+the%0A+tools+and+the+logins.+Anyone+who+reads+lineage%2C+and+the+reliabil\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=934abb0397d639ce06d2d789dc45de3ab0df3cda60277464c4c88c6eb8026fb1\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"ListEntityActors - Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users scope sees the logins: any other gets every logins list empty and logins_hidden set.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://synq-15.mintlify.app/_mintlify/api/og/v2?division=synq.entities.activity.v1alpha.ActivityService\u0026amp;title=ListEntityActors\u0026amp;description=Read+who+read+and+wrote+each+asked+entity+over+the+window%3A+the+jobs%2C+the+service+accounts%2C+the%0A+tools+and+the+logins.+Anyone+who+reads+lineage%2C+and+the+reliabil\u0026amp;theme=c4b0b33f9bac9b90d2a12108\u0026amp;signature=934abb0397d639ce06d2d789dc45de3ab0df3cda60277464c4c88c6eb8026fb1\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/synq-15/B7wGMZU-A3ADVMov/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Coalesce Quality Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#135594\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.synq.io/#organization\",\"name\":\"Coalesce Quality Documentation\",\"url\":\"https://docs.synq.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/synq-15/VrNXC6Gv5xCECUGd/logo/coalesce-quality-logo.svg?fit=max\u0026auto=format\u0026n=VrNXC6Gv5xCECUGd\u0026q=85\u0026s=4ad60b616ed815902c710f413d59cf63\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.synq.io#website\",\"name\":\"Coalesce Quality Documentation\",\"url\":\"https://docs.synq.io\",\"publisher\":{\"@id\":\"https://docs.synq.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors#webpage\",\"url\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors\",\"name\":\"ListEntityActors\",\"description\":\"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users scope sees the logins: any other gets every logins list empty and logins_hidden set.\",\"dateModified\":\"2026-11-04T18:02:07.141Z\",\"isPartOf\":{\"@id\":\"https://docs.synq.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Developer API\",\"item\":\"https://docs.synq.io/api-reference/getting-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"REST API\",\"item\":\"https://docs.synq.io/api-reference/synqagentreconv1yamlservice/parseyaml\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"synq.entities.activity.v1alpha.ActivityService\",\"item\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listactors\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ListEntityActors\",\"item\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors#apireference\",\"headline\":\"ListEntityActors\",\"name\":\"ListEntityActors\",\"description\":\"Read who read and wrote each asked entity over the window: the jobs, the service accounts, the tools and the logins. Anyone who reads lineage, and the reliability agent, is served. Only a caller holding the platform users scope sees the logins: any other gets every logins list empty and logins_hidden set.\",\"url\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors\",\"mainEntityOfPage\":{\"@id\":\"https://docs.synq.io/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors#webpage\"},\"dateModified\":\"2026-11-04T18:02:07.141Z\",\"publisher\":{\"@id\":\"https://docs.synq.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.synq.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Coalesce Quality Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Coalesce Quality Documentation","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://coalesce.io/resources/"},{"anchor":"Changelog","icon":"rocket","href":"https://synq.io/changelog"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Command-line tools","href":"/cli"}]},{"group":"Alerts","pages":[{"title":"Alerts overview","href":"/alerts/alert-overview"},{"title":"Setting up alerts","href":"/alerts/setting-up-alerts"},{"title":"Tagging owners","href":"/alerts/tagging-owners"},{"title":"Routing alerts","href":"/alerts/routing-alerts"},{"title":"Business alerts","href":"/alerts/business-alerts"},{"title":"Writing alert templates","href":"/alerts/templates"}]},{"group":"Monitors","pages":[{"title":"Monitors overview","href":"/monitors/monitors-overview"},{"title":"Setting up monitors","href":"/monitors/setting-up-monitors"},{"title":"Setting up deployment rules","href":"/monitors/deployment-rules"},{"title":"Configuring monitor sensitivity","href":"/monitors/monitor-sensitivity"},{"title":"Monitor feedback","href":"/monitors/monitor-feedback"},{"title":"Muting monitors","href":"/monitors/muting-monitors"},{"title":"Defining monitors in code","href":"/monitors/monitors-as-code"},{"title":"Agent workflow","href":"/monitors/agent-workflow"},{"title":"Monitors CLI reference","href":"/monitors/cli"},{"title":"SQL Tests","href":"/monitors/sql-tests"},{"title":"Running checks from your pipeline","href":"/monitors/on-demand-checks"},{"title":"Working with time dimensions and scheduling for monitors","href":"/monitors/time-dimensions"},{"title":"What monitoring costs in your warehouse","href":"/monitors/warehouse-cost"}]},{"group":"Monitors Types","pages":[{"title":"Table stats monitor","href":"/monitor-types/table-stats-monitor"},{"title":"Volume monitor","href":"/monitor-types/volume-monitor"},{"title":"Freshness monitor","href":"/monitor-types/freshness-monitor"},{"title":"Custom SQL monitor","href":"/monitor-types/custom-sql-monitor"},{"title":"Field stats monitor","href":"/monitor-types/fieldstats"},{"title":"Schema monitor","href":"/monitor-types/schema-monitor"}]},{"group":"Reconciliations","pages":[{"title":"Reconciliation overview","href":"/reconciliation/overview"},{"title":"Getting started","href":"/reconciliation/getting-started"},{"title":"Concepts and vocabulary","href":"/reconciliation/concepts"},{"title":"Authoring suites","href":"/reconciliation/authoring-suites"},{"title":"Comparison modes","href":"/reconciliation/comparison-modes"},{"title":"Time windows and cutoffs","href":"/reconciliation/time-windows-and-cutoffs"},{"title":"Running locally","href":"/reconciliation/running-locally"},{"title":"Workspace suites","href":"/reconciliation/workspace-suites"},{"title":"Investigating results","href":"/reconciliation/investigating-results"},{"title":"CI/CD and automation","href":"/reconciliation/cicd-and-automation"},{"title":"How comparison works","href":"/reconciliation/how-comparison-works"},{"title":"Agent workflow","href":"/reconciliation/agent-workflow"},{"title":"Reconciliation CLI reference","href":"/reconciliation/cli"}]},{"group":"Data Products","pages":[{"title":"Data products overview","href":"/data-products/data-products-overview"},{"title":"Creating a data product","href":"/data-products/creating-a-data-product"},{"title":"BI Status Badge","href":"/data-products/bi-badge"}]},{"group":"Scout AI","pages":[{"title":"Scout overview","href":"/scout/scout"},{"title":"Setting up and configuring Scout","href":"/scout/setting-up-scout"},{"title":"Scout on-premise setup","href":"/scout/on-premise"},{"title":"MCP","href":"/scout/mcp"},{"title":"Agent workflow","href":"/scout/agent-workflow"},{"title":"Scout CLI reference","href":"/scout/cli"}]},{"group":"Ownership","pages":[{"title":"Ownership overview","href":"/ownership/ownership-overview"},{"title":"Creating an owner","href":"/ownership/creating-an-owner"},{"title":"Domains","href":"/ownership/domains"}]},{"group":"Incidents","pages":[{"title":"Incidents overview","href":"/incidents/incident-overview"}]},{"group":"Analytics","pages":[{"title":"Analytics overview","href":"/analytics/analytics-overview"},{"title":"How metrics are calculated","href":"/analytics/how-metrics-are-calculated"},{"title":"Check categories","href":"/analytics/check-categories"}]},{"group":"Query activity","pages":[{"title":"Query activity","href":"/query-activity/overview"}]},{"group":"Lineage","pages":[{"title":"Lineage overview","href":"/lineage/lineage"},{"title":"Column-level lineage","href":"/lineage/column-level-lineage"}]},{"group":"BI Integrations","pages":[{"title":"Looker","href":"/bi-integrations/looker"},{"title":"Tableau","href":"/bi-integrations/tableau"},{"title":"Omni","href":"/bi-integrations/omni"}]},{"group":"Data Warehouse Integrations","pages":[{"title":"BigQuery","href":"/dw-integrations/bigquery"},{"title":"ClickHouse","href":"/dw-integrations/clickhouse"},{"title":"Databricks","href":"/dw-integrations/databricks"},{"title":"Microsoft Fabric","href":"/dw-integrations/fabric"},{"title":"Redshift","href":"/dw-integrations/redshift"},{"title":"Snowflake","href":"/dw-integrations/snowflake"},{"title":"Trino","href":"/dw-integrations/trino"},{"title":"DWH Agent","href":"/dw-integrations/agent"},{"title":"MotherDuck","href":"/dw-integrations/motherduck"}]},{"group":"Transactional databases","pages":[{"title":"Postgres","href":"/transactional-databases/postgres"},{"title":"MySQL","href":"/transactional-databases/mysql"},{"title":"Microsoft SQL Server","href":"/transactional-databases/mssql"},{"title":"Oracle","href":"/transactional-databases/oracle"},{"title":"IBM Db2","href":"/transactional-databases/db2"}]},{"group":"Code Integrations","pages":[{"title":"Code Integration Requirements","href":"/code-integrations/overview"},{"title":"GitHub Integration","href":"/code-integrations/github"},{"title":"GitLab Integration","href":"/code-integrations/gitlab"},{"title":"Bitbucket Integration","href":"/code-integrations/bitbucket"},{"title":"Azure DevOps Integration","href":"/code-integrations/azure-devops"},{"title":"Other Git Providers","href":"/code-integrations/ssh-git"}]},{"group":"dbt Integrations","pages":[{"title":"dbt Core","href":"/dbt-integrations/dbt-core"},{"title":"dbt Cloud","href":"/dbt-integrations/dbt-cloud"},{"title":"Coalesce Quality options for dbt","href":"/dbt-integrations/synq-options"}]},{"group":"SQLMesh Integrations","pages":[{"title":"SQLMesh","href":"/sqlmesh-integrations/sqlmesh"}]},{"group":"Coalesce Integrations","pages":[{"title":"Coalesce Transform","href":"/coalesce-integrations/coalesce-transform"},{"title":"Coalesce Catalog","href":"/coalesce-integrations/coalesce-catalog"}]},{"group":"Orchestration Tool Integrations","pages":[{"title":"Airflow","href":"/orchestration-integrations/airflow"},{"title":"Airflow + dbt Core Linking","href":"/orchestration-integrations/airflow-dbt-core"}]},{"group":"Alerting Integrations","pages":[{"title":"Slack","href":"/alert-integrations/slack"},{"title":"Email","href":"/alert-integrations/email"},{"title":"Microsoft Teams","href":"/alert-integrations/ms-teams"},{"title":"PagerDuty","href":"/alert-integrations/pagerduty"},{"title":"Opsgenie","href":"/alert-integrations/opsgenie"}]},{"group":"Catalogs","pages":[{"title":"Atlan","href":"/catalogs/atlan"}]},{"group":"Google Cloud Integrations","pages":[{"title":"Google Cloud Storage","href":"/gcp-integrations/cloud-storage"},{"title":"Google Cloud Pub/Sub","href":"/gcp-integrations/pubsub"}]},{"group":"Admin","pages":[{"title":"Single Sign-On (SSO)","href":"/admin/sso"},{"title":"Inviting new users","href":"/admin/invite_user"},{"title":"User roles","href":"/admin/user_roles"},{"title":"Monitor Usage","href":"/admin/monitor-usage"}]},{"group":"Security","pages":[{"title":"Security Policy","href":"/security/security"},{"title":"Subprocessors","href":"/security/subprocessors"},{"title":"Data Warehouse Access","href":"/security/dwh-access"},{"title":"Private Connectivity","href":"/security/private-connectivity"},{"title":"IP Whitelist","href":"/security/ip"}]},{"group":"Support","pages":[{"title":"Coalesce Quality Support","href":"/support/support"}]},{"group":"Developer API","pages":[{"title":"Getting Started","href":"/api-reference/getting-started"},{"title":"API Scopes","href":"/api-reference/scopes"},{"group":"REST API","pages":[{"group":"synq.agent.recon.v1.YamlService","pages":[{"title":"ParseYaml","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/parse","href":"/api-reference/synqagentreconv1yamlservice/parseyaml"},{"title":"RenderYaml","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/render","href":"/api-reference/synqagentreconv1yamlservice/renderyaml"},{"title":"ValidateSuite","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/agent/recon/v1/yaml/validate","href":"/api-reference/synqagentreconv1yamlservice/validatesuite"}]},{"group":"synq.alerts.services.v1.AlertsService","pages":[{"title":"Update","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/update"},{"title":"Create","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/create"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/alerts/v1","href":"/api-reference/synqalertsservicesv1alertsservice/delete"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/get","href":"/api-reference/synqalertsservicesv1alertsservice/batchget"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/list","href":"/api-reference/synqalertsservicesv1alertsservice/list"},{"title":"ToggleEnabled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v1/toggle","href":"/api-reference/synqalertsservicesv1alertsservice/toggleenabled"}]},{"group":"synq.alerts.services.v2.AlertsService","pages":[{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/upsert"},{"title":"Create","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/create"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/alerts/v2","href":"/api-reference/synqalertsservicesv2alertsservice/delete"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/get","href":"/api-reference/synqalertsservicesv2alertsservice/batchget"},{"title":"GetIncidentOwnerAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/alerts/v2/incident-owner","href":"/api-reference/synqalertsservicesv2alertsservice/getincidentowneralert"},{"title":"ToggleIncidentOwnerAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/incident-owner","href":"/api-reference/synqalertsservicesv2alertsservice/toggleincidentowneralert"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/list","href":"/api-reference/synqalertsservicesv2alertsservice/list"},{"title":"Rename","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/rename","href":"/api-reference/synqalertsservicesv2alertsservice/rename"},{"title":"UpdateSettings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/settings","href":"/api-reference/synqalertsservicesv2alertsservice/updatesettings"},{"title":"UpdateTargets","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/targets","href":"/api-reference/synqalertsservicesv2alertsservice/updatetargets"},{"title":"UpdateTemplate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/template","href":"/api-reference/synqalertsservicesv2alertsservice/updatetemplate"},{"title":"SendTestAlert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/test","href":"/api-reference/synqalertsservicesv2alertsservice/sendtestalert"},{"title":"ToggleEnabled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/alerts/v2/toggle","href":"/api-reference/synqalertsservicesv2alertsservice/toggleenabled"}]},{"group":"synq.entities.changes.v1.ChangesService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/changes/v1","href":"/api-reference/synqentitieschangesv1changesservice/list"},{"title":"BatchChange","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/changes/v1/by-id","href":"/api-reference/synqentitieschangesv1changesservice/batchchange"}]},{"group":"synq.entities.code.v1.CodeService","pages":[{"title":"ListCode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/code/v1","href":"/api-reference/synqentitiescodev1codeservice/listcode"}]},{"group":"synq.entities.constraints.v1.TableConstraintsService","pages":[{"title":"GetTableConstraints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/constraints/v1/table-constraints","href":"/api-reference/synqentitiesconstraintsv1tableconstraintsservice/gettableconstraints"}]},{"group":"synq.entities.coordinates.v1.DatabaseCoordinatesService","pages":[{"title":"BatchIdsByCoordinates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/coordinates/v1/database/by-fqn","href":"/api-reference/synqentitiescoordinatesv1databasecoordinatesservice/batchidsbycoordinates"},{"title":"BatchDatabaseCoordinates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/coordinates/v1/database/by-id","href":"/api-reference/synqentitiescoordinatesv1databasecoordinatesservice/batchdatabasecoordinates"}]},{"group":"synq.datachecks.v1.TriggerService","pages":[{"title":"TriggerDatachecks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/scheduler/v1/trigger","href":"/api-reference/synqdatachecksv1triggerservice/triggerdatachecks"}]},{"group":"synq.datachecks.sqltests.v1.SqlTestsDeploymentRulesService","pages":[{"title":"ListSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/listsqltestdeploymentrules"},{"title":"BatchDeleteSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sql-test-deployment-rules/v1/batch","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchdeletesqltestdeploymentrules"},{"title":"BatchDeploySqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/batch/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchdeploysqltestdeploymentrules"},{"title":"BatchGetSqlTestDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/by-id","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/batchgetsqltestdeploymentrules"},{"title":"DeploySqlTestDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sql-test-deployment-rules/v1/deployed","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deploysqltestdeploymentrule"},{"title":"GetSqlTestDeployOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1/overview","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/getsqltestdeployoverview"},{"title":"DeleteSqlTestDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sql-test-deployment-rules/v1/{id}","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/deletesqltestdeploymentrule"},{"title":"GetSqlTestDeployDeleteOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sql-test-deployment-rules/v1/{id}/deleted","href":"/api-reference/synqdatacheckssqltestsv1sqltestsdeploymentrulesservice/getsqltestdeploydeleteoverview"}]},{"group":"synq.datachecks.sqltests.v1.SqlTestsService","pages":[{"title":"ListSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/listsqltests"},{"title":"BatchUpsertSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchupsertsqltests"},{"title":"BatchDeleteSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/datachecks/sqltests/v1","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchdeletesqltests"},{"title":"BatchGetSqlTests","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/sqltests/v1/by-id","href":"/api-reference/synqdatacheckssqltestsv1sqltestsservice/batchgetsqltests"}]},{"group":"synq.datachecks.testsuggestions.v1.TestSuggestionsService","pages":[{"title":"BatchGetTestSuggestionsForEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/datachecks/testsuggestions/v1","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchgettestsuggestionsforentities"},{"title":"BatchCreateTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datachecks/testsuggestions/v1","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchcreatetestsuggestions"},{"title":"BatchAcceptTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/datachecks/testsuggestions/v1/accepted","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchaccepttestsuggestions"},{"title":"BatchRejectTestSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/datachecks/testsuggestions/v1/rejected","href":"/api-reference/synqdatacheckstestsuggestionsv1testsuggestionsservice/batchrejecttestsuggestions"}]},{"group":"synq.dataproducts.v1.DataproductsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v1","href":"/api-reference/synqdataproductsv1dataproductsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1","href":"/api-reference/synqdataproductsv1dataproductsservice/upsert"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition","href":"/api-reference/synqdataproductsv1dataproductsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition/part","href":"/api-reference/synqdataproductsv1dataproductsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/definition/part/delete","href":"/api-reference/synqdataproductsv1dataproductsservice/removedefinitionpart"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/delete","href":"/api-reference/synqdataproductsv1dataproductsservice/delete"},{"title":"Get","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v1/get","href":"/api-reference/synqdataproductsv1dataproductsservice/get"}]},{"group":"synq.dataproducts.v2.DataproductsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v2","href":"/api-reference/synqdataproductsv2dataproductsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2","href":"/api-reference/synqdataproductsv2dataproductsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/batch-get","href":"/api-reference/synqdataproductsv2dataproductsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/delete","href":"/api-reference/synqdataproductsv2dataproductsservice/delete"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/dataproducts/v2/{id}/definition","href":"/api-reference/synqdataproductsv2dataproductsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/dataproducts/v2/{id}/definition/parts","href":"/api-reference/synqdataproductsv2dataproductsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/dataproducts/v2/{id}/definition/parts/{part_id}","href":"/api-reference/synqdataproductsv2dataproductsservice/removedefinitionpart"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/dataproducts/v2/{id}/members","href":"/api-reference/synqdataproductsv2dataproductsservice/listmembers"}]},{"group":"synq.ingest.dwh.v1.DwhService","pages":[{"title":"IngestTaskResults","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/task/{task_id}/task-results","href":"/api-reference/synqingestdwhv1dwhservice/ingesttaskresults"},{"title":"IngestLineage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/lineage","href":"/api-reference/synqingestdwhv1dwhservice/ingestlineage"},{"title":"IngestObjectInformation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/object-information","href":"/api-reference/synqingestdwhv1dwhservice/ingestobjectinformation"},{"title":"IngestObjectMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/object-metrics","href":"/api-reference/synqingestdwhv1dwhservice/ingestobjectmetrics"},{"title":"IngestQueryLogs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/query-logs","href":"/api-reference/synqingestdwhv1dwhservice/ingestquerylogs"},{"title":"IngestSchemas","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/schemas","href":"/api-reference/synqingestdwhv1dwhservice/ingestschemas"},{"title":"IngestSqlDefinitions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/sql-definitions","href":"/api-reference/synqingestdwhv1dwhservice/ingestsqldefinitions"},{"title":"IngestTableConstraints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/datawarehouse/v1/connection/{connection_id}/upload/{upload_id}/table-constraints","href":"/api-reference/synqingestdwhv1dwhservice/ingesttableconstraints"}]},{"group":"synq.deliveries.v1.DeliveriesService","pages":[{"title":"ListDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/deliveries/v1","href":"/api-reference/synqdeliveriesv1deliveriesservice/listdeliveries"},{"title":"BatchGetDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/by-id","href":"/api-reference/synqdeliveriesv1deliveriesservice/batchgetdeliveries"},{"title":"SummariseDeliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/summarise","href":"/api-reference/synqdeliveriesv1deliveriesservice/summarisedeliveries"},{"title":"SendTestDelivery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/test","href":"/api-reference/synqdeliveriesv1deliveriesservice/sendtestdelivery"},{"title":"ListAttempts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/deliveries/v1/{delivery_id}/attempts","href":"/api-reference/synqdeliveriesv1deliveriesservice/listattempts"},{"title":"Redeliver","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/deliveries/v1/{delivery_id}/redeliver","href":"/api-reference/synqdeliveriesv1deliveriesservice/redeliver"}]},{"group":"synq.domains.members.v1.DomainMembersService","pages":[{"title":"ListUserDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/members/v1/users/{user_id}/domains","href":"/api-reference/synqdomainsmembersv1domainmembersservice/listuserdomains"},{"title":"SetDefaultUserDomain","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/default-for-user","href":"/api-reference/synqdomainsmembersv1domainmembersservice/setdefaultuserdomain"},{"title":"ListDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/members/v1/{domain_id}/members","href":"/api-reference/synqdomainsmembersv1domainmembersservice/listdomainmembers"},{"title":"AddDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/members","href":"/api-reference/synqdomainsmembersv1domainmembersservice/adddomainmembers"},{"title":"RemoveDomainMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/members/v1/{domain_id}/members/remove","href":"/api-reference/synqdomainsmembersv1domainmembersservice/removedomainmembers"}]},{"group":"synq.domains.v1.DomainsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1","href":"/api-reference/synqdomainsv1domainsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1","href":"/api-reference/synqdomainsv1domainsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/batch-get","href":"/api-reference/synqdomainsv1domainsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/delete","href":"/api-reference/synqdomainsv1domainsservice/delete"},{"title":"GetUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1/usage","href":"/api-reference/synqdomainsv1domainsservice/getusage"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/domains/v1/{domain_id}/definition","href":"/api-reference/synqdomainsv1domainsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v1/{domain_id}/definition/parts","href":"/api-reference/synqdomainsv1domainsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/domains/v1/{domain_id}/definition/parts/{part_id}","href":"/api-reference/synqdomainsv1domainsservice/removedefinitionpart"},{"title":"FetchDomainWithSubDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v1/{domain_id}/sub-domains","href":"/api-reference/synqdomainsv1domainsservice/fetchdomainwithsubdomains"}]},{"group":"synq.domains.v2.DomainsService","pages":[{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2","href":"/api-reference/synqdomainsv2domainsservice/list"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2","href":"/api-reference/synqdomainsv2domainsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/batch-get","href":"/api-reference/synqdomainsv2domainsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/delete","href":"/api-reference/synqdomainsv2domainsservice/delete"},{"title":"GetUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/usage","href":"/api-reference/synqdomainsv2domainsservice/getusage"},{"title":"SetDefinition","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/domains/v2/{id}/definition","href":"/api-reference/synqdomainsv2domainsservice/setdefinition"},{"title":"UpsertDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/domains/v2/{id}/definition/parts","href":"/api-reference/synqdomainsv2domainsservice/upsertdefinitionpart"},{"title":"RemoveDefinitionPart","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/domains/v2/{id}/definition/parts/{part_id}","href":"/api-reference/synqdomainsv2domainsservice/removedefinitionpart"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/{id}/members","href":"/api-reference/synqdomainsv2domainsservice/listmembers"},{"title":"FetchDomainWithSubDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/domains/v2/{id}/sub-domains","href":"/api-reference/synqdomainsv2domainsservice/fetchdomainwithsubdomains"}]},{"group":"synq.entities.activity.v1alpha.ActivityService","pages":[{"title":"ListActors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actor-list","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listactors"},{"title":"GetActorSummary","description":"Read what one actor read, built and wrote over the window, what its queries cost per compute and\n platform, and when it works. The actor is asked for by name, so nothing is left out for being\n Coalesce Quality's own access, a writer's own read or a policy.\n\n What a person did is personal data: a person, or a login, is answered only to that person, or to a\n caller holding the platform users scope, which a Developer and an Admin have. Anyone else gets\n PERMISSION_DENIED. A job, a service account, a tool and Coalesce Quality are answered to every\n caller, and without the platform users scope the answer names no login.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actor-summary","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getactorsummary"},{"title":"ListEntityActors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/actors","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listentityactors"},{"title":"GetActivityOverview","description":"Read a workspace's queries and their cost per group of logins, per platform, and its most read\n entities. It names groups and entities, never a login or a person.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/overview","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getactivityoverview"},{"title":"ListPersonActivity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/person","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listpersonactivity"},{"title":"BatchGetPopularity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/popularity","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/batchgetpopularity"},{"title":"GetEntityActivitySeries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/series","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/getentityactivityseries"},{"title":"ListAccessSignals","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/signals","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/listaccesssignals"},{"title":"BatchGetEntityUsage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/activity/v1alpha/usage","href":"/api-reference/synqentitiesactivityv1alphaactivityservice/batchgetentityusage"}]},{"group":"synq.entities.annotations.v1.AnnotationsService","pages":[{"title":"ListAnnotations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/annotations/v1","href":"/api-reference/synqentitiesannotationsv1annotationsservice/listannotations"},{"title":"BatchGetEntityAnnotations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/annotations/v1/batchGet","href":"/api-reference/synqentitiesannotationsv1annotationsservice/batchgetentityannotations"}]},{"group":"synq.entities.checks.v1.ChecksCategoriesService","pages":[{"title":"ListCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/checks/v1/categories","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/listcheckcategories"},{"title":"DeleteCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/checks/v1/categories:delete","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/deletecheckcategories"},{"title":"UpsertCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/checks/v1/categories:upsert","href":"/api-reference/synqentitieschecksv1checkscategoriesservice/upsertcheckcategories"}]},{"group":"synq.entities.custom.v1.EntityExecutionsService","pages":[{"title":"UpsertExecution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/executions/v1","href":"/api-reference/synqentitiescustomv1entityexecutionsservice/upsertexecution"},{"title":"UpsertLogEntry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/executions/v1/log-entry","href":"/api-reference/synqentitiescustomv1entityexecutionsservice/upsertlogentry"}]},{"group":"synq.entities.custom.v1.ChecksRelationshipsService","pages":[{"title":"UpsertCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/check-relationships","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/upsertcheckrelationships"},{"title":"DeleteCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/check-relationships","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/deletecheckrelationships"},{"title":"ListCheckRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/check-relationships/list","href":"/api-reference/synqentitiescustomv1checksrelationshipsservice/listcheckrelationships"}]},{"group":"synq.entities.custom.v1.EntitiesService","pages":[{"title":"ListEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/listentities"},{"title":"UpsertEntity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/upsertentity"},{"title":"DeleteEntity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/entities","href":"/api-reference/synqentitiescustomv1entitiesservice/deleteentity"}]},{"group":"synq.entities.custom.v1.FeaturesService","pages":[{"title":"UpsertEntityFeature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/features","href":"/api-reference/synqentitiescustomv1featuresservice/upsertentityfeature"},{"title":"DeleteEntityFeature","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/features","href":"/api-reference/synqentitiescustomv1featuresservice/deleteentityfeature"},{"title":"ListEntityFeatures","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/features/list","href":"/api-reference/synqentitiescustomv1featuresservice/listentityfeatures"}]},{"group":"synq.entities.custom.v1.GroupsService","pages":[{"title":"UpsertEntitiesGroup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/groups","href":"/api-reference/synqentitiescustomv1groupsservice/upsertentitiesgroup"},{"title":"DeleteEntitiesGroup","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/groups","href":"/api-reference/synqentitiescustomv1groupsservice/deleteentitiesgroup"},{"title":"ListEntityGroups","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/groups/list","href":"/api-reference/synqentitiescustomv1groupsservice/listentitygroups"}]},{"group":"synq.entities.custom.v1.RelationshipsService","pages":[{"title":"UpsertRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/relationships","href":"/api-reference/synqentitiescustomv1relationshipsservice/upsertrelationships"},{"title":"DeleteRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/relationships","href":"/api-reference/synqentitiescustomv1relationshipsservice/deleterelationships"},{"title":"ListRelationships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/relationships/list","href":"/api-reference/synqentitiescustomv1relationshipsservice/listrelationships"}]},{"group":"synq.entities.custom.v1.TypesService","pages":[{"title":"UpsertType","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/types","href":"/api-reference/synqentitiescustomv1typesservice/upserttype"},{"title":"DeleteType","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/entities/custom/v1/types","href":"/api-reference/synqentitiescustomv1typesservice/deletetype"},{"title":"ListTypes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/custom/v1/types/list","href":"/api-reference/synqentitiescustomv1typesservice/listtypes"}]},{"group":"synq.entities.folders.v1.FoldersService","pages":[{"title":"Browse","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/browse","href":"/api-reference/synqentitiesfoldersv1foldersservice/browse"},{"title":"GetFolderOf","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/folder-of","href":"/api-reference/synqentitiesfoldersv1foldersservice/getfolderof"},{"title":"ListMembers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/folders/v1/members","href":"/api-reference/synqentitiesfoldersv1foldersservice/listmembers"}]},{"group":"synq.entities.platformusers.v1alpha.PlatformUsersService","pages":[{"title":"BatchGetPlatformUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/batch-get","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/batchgetplatformusers"},{"title":"ListLinkSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/link-suggestions","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/listlinksuggestions"},{"title":"ListPlatformUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/platform-users/v1alpha/list","href":"/api-reference/synqentitiesplatformusersv1alphaplatformusersservice/listplatformusers"}]},{"group":"synq.entities.platformusers.v1alpha.ServiceAccountsService","pages":[{"title":"ApplyServiceAccountChanges","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/apply","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/applyserviceaccountchanges"},{"title":"BatchGetServiceAccounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/batch-get","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/batchgetserviceaccounts"},{"title":"ListServiceAccounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/list","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/listserviceaccounts"},{"title":"PlanServiceAccountChanges","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/plan","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/planserviceaccountchanges"},{"title":"ListServiceAccountSuggestions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/service-accounts/v1alpha/suggestions","href":"/api-reference/synqentitiesplatformusersv1alphaserviceaccountsservice/listserviceaccountsuggestions"}]},{"group":"synq.entities.tableinfo.v1alpha.TableInfoService","pages":[{"title":"BatchGetTableInfo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/table-info/v1alpha/batch-get","href":"/api-reference/synqentitiestableinfov1alphatableinfoservice/batchgettableinfo"}]},{"group":"synq.entities.typedefs.v1.TypeDefsService","pages":[{"title":"ListEntityTraitDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/entity-traits/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listentitytraitdefs"},{"title":"ListEntityTypeDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/entity-types/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listentitytypedefs"},{"title":"ListExecutionTypeDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/execution-types/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listexecutiontypedefs"},{"title":"ListPlatformDefs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/typedefs/v1/platforms/list","href":"/api-reference/synqentitiestypedefsv1typedefsservice/listplatformdefs"}]},{"group":"synq.entities.entities.v1.EntitiesService","pages":[{"title":"ListEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/v1","href":"/api-reference/synqentitiesentitiesv1entitiesservice/listentities"},{"title":"BatchGetEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v1/by-id","href":"/api-reference/synqentitiesentitiesv1entitiesservice/batchgetentities"},{"title":"SearchEntities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/entities/v1/search","href":"/api-reference/synqentitiesentitiesv1entitiesservice/searchentities"}]},{"group":"synq.entities.checks.v2.ChecksCategoriesService","pages":[{"title":"UpsertCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/upsertcheckcategories"},{"title":"BatchGetCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/batch-get","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/batchgetcheckcategories"},{"title":"DeleteCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/delete","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/deletecheckcategories"},{"title":"ListCategorisationFilters","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/filters","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcategorisationfilters"},{"title":"ListCheckCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/list","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcheckcategories"},{"title":"ListCategories","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categories/vocabulary","href":"/api-reference/synqentitieschecksv2checkscategoriesservice/listcategories"}]},{"group":"synq.entities.checks.v2.ChecksCategorisationRulesService","pages":[{"title":"UpsertRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/upsertrule"},{"title":"BatchGetRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/batch-get","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/batchgetrules"},{"title":"DeleteRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/delete","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/deleterule"},{"title":"ListRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/list","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/listrules"},{"title":"ListRuleMatches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/matches","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/listrulematches"},{"title":"PreviewRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/preview","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/previewrule"},{"title":"GetRecategorisationStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/entities/v2/checks/categorisation-rules/recategorisation-status","href":"/api-reference/synqentitieschecksv2checkscategorisationrulesservice/getrecategorisationstatus"}]},{"group":"synq.entities.executions.v1.EntityExecutionsService","pages":[{"title":"UpsertExecution","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v1","href":"/api-reference/synqentitiesexecutionsv1entityexecutionsservice/upsertexecution"},{"title":"UpsertLogEntry","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v1/log-entry","href":"/api-reference/synqentitiesexecutionsv1entityexecutionsservice/upsertlogentry"}]},{"group":"synq.entities.executions.v2.EntityExecutionsService","pages":[{"title":"BatchGetExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/by-id","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/batchgetexecutions"},{"title":"GetLatestExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/latest","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/getlatestexecutions"},{"title":"ListExecutions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/executions/v2/list","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/listexecutions"},{"title":"GetExecutionsSummary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/executions/v2/summary","href":"/api-reference/synqentitiesexecutionsv2entityexecutionsservice/getexecutionssummary"}]},{"group":"synq.extensions.atlan.integrations.v1.AtlanIntegrationService","pages":[{"title":"Get","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/get"},{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/upsert"},{"title":"Remove","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/remove"},{"title":"Activate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/extensions/atlan/integrations/v1","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/activate"},{"title":"Ping","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/integrations/v1/ping","href":"/api-reference/synqextensionsatlanintegrationsv1atlanintegrationservice/ping"}]},{"group":"synq.extensions.atlan.provider.v1.AtlanProviderService","pages":[{"title":"GetAtlanConnections","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/connections","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlanconnections"},{"title":"GetAtlanDataProducts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/data-products","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlandataproducts"},{"title":"GetAtlanDomains","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/provider/v1/domains","href":"/api-reference/synqextensionsatlanproviderv1atlanproviderservice/getatlandomains"}]},{"group":"synq.extensions.atlan.workflows.v1.AtlanWorkflowService","pages":[{"title":"GetConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getconnectionmappings"},{"title":"SetConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/setconnectionmappings"},{"title":"RemoveConnectionMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/extensions/atlan/workflows/v1/connection-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/removeconnectionmappings"},{"title":"GetDomainMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/domain-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getdomainmappings"},{"title":"GetMappingToggles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/mappings/toggle","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getmappingtoggles"},{"title":"SetMappingToggles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/mappings/toggle","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/setmappingtoggles"},{"title":"GetProductMappings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/product-mappings","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/getproductmappings"},{"title":"FetchRuns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/extensions/atlan/workflows/v1/runs","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/fetchruns"},{"title":"Synchronize","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/extensions/atlan/workflows/v1/synchronize","href":"/api-reference/synqextensionsatlanworkflowsv1atlanworkflowservice/synchronize"}]},{"group":"synq.agent.sre.v1.FeatureRequestService","pages":[{"title":"SubmitFeatureRequest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/feature-request/v1/submit","href":"/api-reference/synqagentsrev1featurerequestservice/submitfeaturerequest"}]},{"group":"synq.git.commits.v1.CommitsService","pages":[{"title":"GetDiffByChangeId","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/git/v1/change/{change_id}","href":"/api-reference/synqgitcommitsv1commitsservice/getdiffbychangeid"},{"title":"GetDiffByCommit","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/git/v1/commit/{commit_sha}","href":"/api-reference/synqgitcommitsv1commitsservice/getdiffbycommit"}]},{"group":"synq.auth.iam.v1.IamService","pages":[{"title":"Iam","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/iam/v1","href":"/api-reference/synqauthiamv1iamservice/iam"}]},{"group":"synq.entities.impact.v1.ImpactService","pages":[{"title":"GetImpact","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/impact/v1","href":"/api-reference/synqentitiesimpactv1impactservice/getimpact"}]},{"group":"synq.incidents.v1.IncidentsService","pages":[{"title":"ListIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/incidents/v1","href":"/api-reference/synqincidentsv1incidentsservice/listincidents"},{"title":"CreateIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1","href":"/api-reference/synqincidentsv1incidentsservice/createincident"},{"title":"BatchGetIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/by-id","href":"/api-reference/synqincidentsv1incidentsservice/batchgetincidents"},{"title":"AssignIncidentOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/assign-owner","href":"/api-reference/synqincidentsv1incidentsservice/assignincidentowner"},{"title":"CancelIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/cancel","href":"/api-reference/synqincidentsv1incidentsservice/cancelincident"},{"title":"CloseIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/close","href":"/api-reference/synqincidentsv1incidentsservice/closeincident"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/comment","href":"/api-reference/synqincidentsv1incidentsservice/postcomment"},{"title":"DeleteComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/incidents/v1/{incident_id}/comment/{comment_id}","href":"/api-reference/synqincidentsv1incidentsservice/deletecomment"},{"title":"AddIssuesToIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/issues","href":"/api-reference/synqincidentsv1incidentsservice/addissuestoincident"},{"title":"RemoveIssuesFromIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/incidents/v1/{incident_id}/issues","href":"/api-reference/synqincidentsv1incidentsservice/removeissuesfromincident"},{"title":"MergeIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/merge","href":"/api-reference/synqincidentsv1incidentsservice/mergeincidents"},{"title":"RenameIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/rename","href":"/api-reference/synqincidentsv1incidentsservice/renameincident"},{"title":"SplitIncident","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/incidents/v1/{incident_id}/split","href":"/api-reference/synqincidentsv1incidentsservice/splitincident"},{"title":"UpdateIncidentState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/incidents/v1/{incident_id}/state","href":"/api-reference/synqincidentsv1incidentsservice/updateincidentstate"}]},{"group":"synq.ingest.airflow.v1.AirflowLogsService","pages":[{"title":"IngestDatahubAspects","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/airflow/v1/aspects","href":"/api-reference/synqingestairflowv1airflowlogsservice/ingestdatahubaspects"},{"title":"IngestLog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/airflow/v1/{dag_id}/{task_id}/{run_id}/logs","href":"/api-reference/synqingestairflowv1airflowlogsservice/ingestlog"}]},{"group":"synq.ingest.cloudwatch.v1.CloudwatchService","pages":[{"title":"IngestCloudwatchLogsData","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/cloudwatch/v1/{log_group}/{log_stream}","href":"/api-reference/synqingestcloudwatchv1cloudwatchservice/ingestcloudwatchlogsdata"}]},{"group":"synq.ingest.openlineage.v1.OpenlineageService","pages":[{"title":"Ingest","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/ingest/openlineage/v1","href":"/api-reference/synqingestopenlineagev1openlineageservice/ingest"}]},{"group":"synq.integrations.v1.IntegrationsService","pages":[{"title":"ListIntegrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/integrations/v1","href":"/api-reference/synqintegrationsv1integrationsservice/listintegrations"},{"title":"CreateIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1","href":"/api-reference/synqintegrationsv1integrationsservice/createintegration"},{"title":"BatchGetIntegrations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/by-id","href":"/api-reference/synqintegrationsv1integrationsservice/batchgetintegrations"},{"title":"UpdateIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/integrations/v1/{integration_id}","href":"/api-reference/synqintegrationsv1integrationsservice/updateintegration"},{"title":"DeleteIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/integrations/v1/{integration_id}","href":"/api-reference/synqintegrationsv1integrationsservice/deleteintegration"},{"title":"DisableIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/disable","href":"/api-reference/synqintegrationsv1integrationsservice/disableintegration"},{"title":"EnableIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/enable","href":"/api-reference/synqintegrationsv1integrationsservice/enableintegration"},{"title":"RefreshIntegration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/integrations/v1/{integration_id}/refresh","href":"/api-reference/synqintegrationsv1integrationsservice/refreshintegration"}]},{"group":"synq.issues.issues.v1.IssuesService","pages":[{"title":"ListIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/issues/v1","href":"/api-reference/synqissuesissuesv1issuesservice/listissues"},{"title":"BatchGetIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v1/by-id","href":"/api-reference/synqissuesissuesv1issuesservice/batchgetissues"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v1/{issue_id}/comment","href":"/api-reference/synqissuesissuesv1issuesservice/postcomment"},{"title":"MarkExpected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-expected","href":"/api-reference/synqissuesissuesv1issuesservice/markexpected"},{"title":"MarkFixed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-fixed","href":"/api-reference/synqissuesissuesv1issuesservice/markfixed"},{"title":"MarkInvestigating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-investigating","href":"/api-reference/synqissuesissuesv1issuesservice/markinvestigating"},{"title":"MarkNoActionNeeded","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v1/{issue_id}/mark-no-action-needed","href":"/api-reference/synqissuesissuesv1issuesservice/marknoactionneeded"}]},{"group":"synq.issues.v2.IssuesService","pages":[{"title":"ListIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/issues/v2","href":"/api-reference/synqissuesv2issuesservice/listissues"},{"title":"BatchGetIssues","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v2/by-id","href":"/api-reference/synqissuesv2issuesservice/batchgetissues"},{"title":"ClearStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/clear-status","href":"/api-reference/synqissuesv2issuesservice/clearstatus"},{"title":"PostComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/issues/v2/{issue_id}/comment","href":"/api-reference/synqissuesv2issuesservice/postcomment"},{"title":"DeleteComment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/issues/v2/{issue_id}/comment/{comment_id}","href":"/api-reference/synqissuesv2issuesservice/deletecomment"},{"title":"MarkExpected","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-expected","href":"/api-reference/synqissuesv2issuesservice/markexpected"},{"title":"MarkFixed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-fixed","href":"/api-reference/synqissuesv2issuesservice/markfixed"},{"title":"MarkInvestigating","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-investigating","href":"/api-reference/synqissuesv2issuesservice/markinvestigating"},{"title":"MarkNoActionNeeded","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/issues/v2/{issue_id}/mark-no-action-needed","href":"/api-reference/synqissuesv2issuesservice/marknoactionneeded"}]},{"group":"synq.knowledge.v1alpha.KnowledgeService","pages":[{"title":"BatchGetEntityKnowledge","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/knowledge/v1alpha/entities/by-id","href":"/api-reference/synqknowledgev1alphaknowledgeservice/batchgetentityknowledge"},{"title":"ListKnowledgePages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/knowledge/v1alpha/pages","href":"/api-reference/synqknowledgev1alphaknowledgeservice/listknowledgepages"},{"title":"BatchGetKnowledgePages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/knowledge/v1alpha/pages/by-id","href":"/api-reference/synqknowledgev1alphaknowledgeservice/batchgetknowledgepages"},{"title":"ListKnowledgePageLinks","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/knowledge/v1alpha/pages/{page_id}/links","href":"/api-reference/synqknowledgev1alphaknowledgeservice/listknowledgepagelinks"}]},{"group":"synq.entities.lineage.folds.v1alpha.LineageFoldsService","pages":[{"title":"ListFolds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/lineage/folds/v1alpha","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/listfolds"},{"title":"CreateFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/createfold"},{"title":"BatchGetFolds","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/batch-get","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/batchgetfolds"},{"title":"BatchGetFoldNodes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/nodes/batch-get","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/batchgetfoldnodes"},{"title":"PreviewFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/preview","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/previewfold"},{"title":"DeleteFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/delete","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/deletefold"},{"title":"SetFoldEnabled","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/enabled","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/setfoldenabled"},{"title":"UpdateFoldMatcher","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/matcher","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/updatefoldmatcher"},{"title":"RenameFold","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/folds/v1alpha/{id}/rename","href":"/api-reference/synqentitieslineagefoldsv1alphalineagefoldsservice/renamefold"}]},{"group":"synq.entities.lineage.v1.LineageService","pages":[{"title":"GetLineage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/lineage/v1","href":"/api-reference/synqentitieslineagev1lineageservice/getlineage"}]},{"group":"synq.monitors.automated_monitors.v1.DeploymentRulesService","pages":[{"title":"GetDeployOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rule","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/getdeployoverview"},{"title":"DeleteDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/monitors/automated/v1/deployment-rule/{id}","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/deletedeploymentrule"},{"title":"GetDeployDeleteOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rule/{id}/deleted","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/getdeploydeleteoverview"},{"title":"ListDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/listdeploymentrules"},{"title":"UpsertDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/upsertdeploymentrule"},{"title":"BatchUpdateDeploymentRuleTitle","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/monitors/automated/v1/deployment-rules","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchupdatedeploymentruletitle"},{"title":"BatchGetDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchgetdeploymentrules"},{"title":"BatchUpsertDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchupsertdeploymentrules"},{"title":"BatchDeleteDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /api/monitors/automated/v1/deployment-rules/batch","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchdeletedeploymentrules"},{"title":"BatchDeployDeploymentRules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/batch/deployed","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/batchdeploydeploymentrules"},{"title":"DeployDeploymentRule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/automated/v1/deployment-rules/deployed","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/deploydeploymentrule"},{"title":"ListDeploymentRulesForAsset","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/automated/v1/deployment-rules/{asset_path}","href":"/api-reference/synqmonitorsautomated_monitorsv1deploymentrulesservice/listdeploymentrulesforasset"}]},{"group":"synq.monitors.custom_monitors.v1.CustomMonitorsService","pages":[{"title":"ListMonitors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/listmonitors"},{"title":"BatchUpdateMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitor"},{"title":"BatchCreateMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchcreatemonitor"},{"title":"ListConfigsMonitors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/custom-monitors/v1/by-config","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/listconfigsmonitors"},{"title":"ConfigChangesOverview","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/config-changes","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/configchangesoverview"},{"title":"BatchDeleteMonitor","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/delete","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchdeletemonitor"},{"title":"BatchUpdateMonitorMode","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/mode","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitormode"},{"title":"BatchUpdateMonitorSeverity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/custom-monitors/v1/severity","href":"/api-reference/synqmonitorscustom_monitorsv1custommonitorsservice/batchupdatemonitorseverity"}]},{"group":"synq.monitors.history.v1.HistoryService","pages":[{"title":"History","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/history/v1","href":"/api-reference/synqmonitorshistoryv1historyservice/history"}]},{"group":"synq.monitors.info.v1.MonitorInfoService","pages":[{"title":"MonitorInfo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/info/v1","href":"/api-reference/synqmonitorsinfov1monitorinfoservice/monitorinfo"}]},{"group":"synq.monitors.predictions.v1.MonitorPredictionsService","pages":[{"title":"GetMonitorPredictions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/predictions/v1","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/getmonitorpredictions"},{"title":"GetEntityMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/predictions/v1/entity-metrics","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/getentitymetrics"},{"title":"BatchGetLatestEntityMetrics","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/predictions/v1/entity-metrics:batchLatest","href":"/api-reference/synqmonitorspredictionsv1monitorpredictionsservice/batchgetlatestentitymetrics"}]},{"group":"synq.monitors.segments.v1.MonitorSegmentsService","pages":[{"title":"ListMonitorSegments","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/monitors/segments/v1","href":"/api-reference/synqmonitorssegmentsv1monitorsegmentsservice/listmonitorsegments"},{"title":"BatchUpdateMonitorSegmentLabels","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/monitors/segments/v1/labels","href":"/api-reference/synqmonitorssegmentsv1monitorsegmentsservice/batchupdatemonitorsegmentlabels"}]},{"group":"synq.entities.orchestration.v1.OrchestrationService","pages":[{"title":"BatchOrchestration","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/orchestration/v1","href":"/api-reference/synqentitiesorchestrationv1orchestrationservice/batchorchestration"}]},{"group":"synq.overlays.v1.OverlaysService","pages":[{"title":"BatchGetEntityOverlays","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/by-id","href":"/api-reference/synqoverlaysv1overlaysservice/batchgetentityoverlays"},{"title":"ListEntityCoverage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/coverage","href":"/api-reference/synqoverlaysv1overlaysservice/listentitycoverage"},{"title":"GetCoverageSummary","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/coverage-summary","href":"/api-reference/synqoverlaysv1overlaysservice/getcoveragesummary"},{"title":"BatchGetOverlayMemberCounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/overlays/v1/member-counts","href":"/api-reference/synqoverlaysv1overlaysservice/batchgetoverlaymembercounts"}]},{"group":"synq.owners.v1.OwnersService","pages":[{"title":"ListOwners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/owners/v1","href":"/api-reference/synqownersv1ownersservice/listowners"},{"title":"UpsertOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1","href":"/api-reference/synqownersv1ownersservice/upsertowner"},{"title":"BatchGetOwners","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/batch-get","href":"/api-reference/synqownersv1ownersservice/batchgetowners"},{"title":"DeleteOwner","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/delete","href":"/api-reference/synqownersv1ownersservice/deleteowner"},{"title":"BatchGetOwnerships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/ownerships/batch-get","href":"/api-reference/synqownersv1ownersservice/batchgetownerships"},{"title":"DeleteOwnership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/ownerships/delete","href":"/api-reference/synqownersv1ownersservice/deleteownership"},{"title":"ListOwnerships","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/owners/v1/{owner_id}/ownerships","href":"/api-reference/synqownersv1ownersservice/listownerships"},{"title":"UpsertOwnership","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/owners/v1/{owner_id}/ownerships","href":"/api-reference/synqownersv1ownersservice/upsertownership"}]},{"group":"synq.platforms.v1.PlatformsService","pages":[{"title":"SetPlatformAuthentication","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/platforms/v1","href":"/api-reference/synqplatformsv1platformsservice/setplatformauthentication"}]},{"group":"synq.queries.v1.QueriesService","pages":[{"title":"DescribeResolverQl","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/describe-resolver-ql","href":"/api-reference/synqqueriesv1queriesservice/describeresolverql"},{"title":"ResolveQuery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/resolve","href":"/api-reference/synqqueriesv1queriesservice/resolvequery"},{"title":"TranslateResolverQl","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/translate-resolver-ql","href":"/api-reference/synqqueriesv1queriesservice/translateresolverql"}]},{"group":"synq.queries.v1.NLQueryService","pages":[{"title":"GenerateQuery","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/queries/v1/generate","href":"/api-reference/synqqueriesv1nlqueryservice/generatequery"}]},{"group":"synq.recommendations.v1.RecommendationsService","pages":[{"title":"ListRecommendations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/recommendations/v1","href":"/api-reference/synqrecommendationsv1recommendationsservice/listrecommendations"},{"title":"BatchGetRecommendations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/by-id","href":"/api-reference/synqrecommendationsv1recommendationsservice/batchgetrecommendations"},{"title":"DismissRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/dismiss","href":"/api-reference/synqrecommendationsv1recommendationsservice/dismissrecommendation"},{"title":"IgnoreRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/ignore","href":"/api-reference/synqrecommendationsv1recommendationsservice/ignorerecommendation"},{"title":"RestoreRecommendation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recommendations/v1/{recommendation_id}/restore","href":"/api-reference/synqrecommendationsv1recommendationsservice/restorerecommendation"}]},{"group":"synq.agent.recon.v1.SuiteDeploymentService","pages":[{"title":"TriggerDeployment","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/recon/v1/deployments/trigger","href":"/api-reference/synqagentreconv1suitedeploymentservice/triggerdeployment"}]},{"group":"synq.entities.resolve.v1.IdentifierResolveService","pages":[{"title":"BatchResolveIdentifiers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/resolve/v1/by-id","href":"/api-reference/synqentitiesresolvev1identifierresolveservice/batchresolveidentifiers"}]},{"group":"synq.savedviews.v1.SavedViewsService","pages":[{"title":"Upsert","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1","href":"/api-reference/synqsavedviewsv1savedviewsservice/upsert"},{"title":"BatchGet","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/batch-get","href":"/api-reference/synqsavedviewsv1savedviewsservice/batchget"},{"title":"Delete","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/delete","href":"/api-reference/synqsavedviewsv1savedviewsservice/delete"},{"title":"List","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/list","href":"/api-reference/synqsavedviewsv1savedviewsservice/list"},{"title":"SetPin","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/saved-views/v1/set-pin","href":"/api-reference/synqsavedviewsv1savedviewsservice/setpin"}]},{"group":"synq.schedule.v1.ScheduleService","pages":[{"title":"PreviewSchedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/schedule/v1/preview","href":"/api-reference/synqschedulev1scheduleservice/previewschedules"}]},{"group":"synq.entities.schemas.v1.SchemaMismatchesService","pages":[{"title":"BatchSchemaMismatches","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/schema-mismatches/v1","href":"/api-reference/synqentitiesschemasv1schemamismatchesservice/batchschemamismatches"}]},{"group":"synq.entities.schemas.v1.SchemasService","pages":[{"title":"GetSchema","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/schema/v1","href":"/api-reference/synqentitiesschemasv1schemasservice/getschema"}]},{"group":"synq.entities.sql_insights.v1.SqlInsightsService","pages":[{"title":"ListSqlConstructs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/sql-insights/v1/constructs","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/listsqlconstructs"},{"title":"BatchSqlDetails","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/sql-insights/v1/details:batch","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/batchsqldetails"},{"title":"ListJoinPatterns","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/sql-insights/v1/join-patterns","href":"/api-reference/synqentitiessql_insightsv1sqlinsightsservice/listjoinpatterns"}]},{"group":"synq.agent.sre.v1.LlmService","pages":[{"title":"Evaluate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/sre/llm/v1/evaluate","href":"/api-reference/synqagentsrev1llmservice/evaluate"}]},{"group":"synq.entities.status.v1.EntityIncidentsService","pages":[{"title":"BatchGetIncidents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/status/v1/incidents/by-id","href":"/api-reference/synqentitiesstatusv1entityincidentsservice/batchgetincidents"}]},{"group":"synq.entities.status.v1.EntityIssuesService","pages":[{"title":"BatchGetIssuesStatus","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/status/v1/issues/by-id","href":"/api-reference/synqentitiesstatusv1entityissuesservice/batchgetissuesstatus"}]},{"group":"synq.agent.sre.v1.TriageService","pages":[{"title":"BatchLatestConclusions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/conclusions","href":"/api-reference/synqagentsrev1triageservice/batchlatestconclusions"},{"title":"MarkFailed","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/triage/v1/failed","href":"/api-reference/synqagentsrev1triageservice/markfailed"},{"title":"MarkAsInProgress","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml patch /api/triage/v1/in-progress","href":"/api-reference/synqagentsrev1triageservice/markasinprogress"},{"title":"BatchTriageState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/states","href":"/api-reference/synqagentsrev1triageservice/batchtriagestate"},{"title":"ListTriageState","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/triage/v1/statuses","href":"/api-reference/synqagentsrev1triageservice/listtriagestate"},{"title":"Conclude","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/triage/v1/{session_id}/conclusion","href":"/api-reference/synqagentsrev1triageservice/conclude"},{"title":"RecordEvidence","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/triage/v1/{session_id}/evidence","href":"/api-reference/synqagentsrev1triageservice/recordevidence"}]},{"group":"synq.users.v1.UsersService","pages":[{"title":"ListUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1","href":"/api-reference/synqusersv1usersservice/listusers"},{"title":"GetUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/aliases","href":"/api-reference/synqusersv1usersservice/getuseraliases"},{"title":"UpsertUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /api/users/v1/aliases","href":"/api-reference/synqusersv1usersservice/upsertuseraliases"},{"title":"DeleteUserAliases","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/aliases/delete","href":"/api-reference/synqusersv1usersservice/deleteuseraliases"},{"title":"BatchGetUsers","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/batch-get","href":"/api-reference/synqusersv1usersservice/batchgetusers"},{"title":"GetByAlias","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/by-alias","href":"/api-reference/synqusersv1usersservice/getbyalias"},{"title":"GetByEmail","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/by-email","href":"/api-reference/synqusersv1usersservice/getbyemail"},{"title":"GetUserIdentities","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /api/users/v1/identities","href":"/api-reference/synqusersv1usersservice/getuseridentities"},{"title":"AddUserRole","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/roles","href":"/api-reference/synqusersv1usersservice/adduserrole"},{"title":"RemoveUserRole","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /api/users/v1/roles/remove","href":"/api-reference/synqusersv1usersservice/removeuserrole"}]}]},{"group":"gRPC API","pages":[{"title":"API","href":"/api-reference/api"},{"title":null,"href":"/api-reference/examples"}]},{"group":"Custom Integrations","pages":[{"title":"Custom Integrations","href":"/custom-integrations/overview"},{"title":"Modelling Your Tool","href":"/custom-integrations/modelling"},{"title":"Building an Integration","href":"/custom-integrations/building-an-integration"},{"title":"API Surface","href":"/custom-integrations/api-surface"},{"title":"Agent Workflow","href":"/custom-integrations/agent-workflow"}]},{"group":"Webhooks","pages":[{"title":"Using Webhooks","href":"/api-reference/webhook"},{"title":"Debugging Deliveries","href":"/api-reference/webhook-deliveries"}]}]}]}]},"basePath":"","title":"ListEntityActors - Coalesce Quality Documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}