diff --git a/output/openapi/elasticsearch-openapi.json b/output/openapi/elasticsearch-openapi.json index 8b3580db79..f2f146a8dd 100644 --- a/output/openapi/elasticsearch-openapi.json +++ b/output/openapi/elasticsearch-openapi.json @@ -42863,6 +42863,53 @@ ] } }, + "/_security/stats": { + "get": { + "tags": [ + "security" + ], + "summary": "Get security stats", + "description": "Gather security usage statistics from all node(s) within the cluster.\n\n## Required authorization\n\n* Cluster privileges: `monitor`\n", + "operationId": "security-get-stats", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "nodes": { + "description": "A map of node IDs to security statistics for that node.", + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/security._types.NodeSecurityStats" + } + } + }, + "required": [ + "nodes" + ] + }, + "examples": { + "SecurityStatsExample1": { + "description": "A successful response from `GET /_security/stats`.", + "value": "{\n \"nodes\": {\n \"CLeCBfYETO2mQ1R2Il5-SA\": {\n \"roles\": {\n \"dls\": {\n \"bit_set_cache\": {\n \"count\": 1,\n \"memory\": \"16b\",\n \"memory_in_bytes\": 16,\n \"hits\": 212,\n \"misses\": 1,\n \"evictions\": 0,\n \"hits_time_in_millis\": 5,\n \"misses_time_in_millis\": 0\n }\n }\n }\n }\n }\n}" + } + } + } + } + } + }, + "x-state": "Generally available; Added in 9.2.0", + "x-metaTags": [ + { + "content": "Elasticsearch", + "name": "product_name" + } + ] + } + }, "/_security/oauth2/token": { "post": { "tags": [ @@ -121697,6 +121744,120 @@ } } }, + "security._types.NodeSecurityStats": { + "type": "object", + "properties": { + "roles": { + "description": "Role statistics.", + "allOf": [ + { + "$ref": "#/components/schemas/security._types.RolesStats" + } + ] + } + }, + "required": [ + "roles" + ] + }, + "security._types.RolesStats": { + "type": "object", + "properties": { + "dls": { + "description": "Document-level security (DLS) statistics.", + "allOf": [ + { + "$ref": "#/components/schemas/xpack.usage.SecurityRolesDls" + } + ] + } + }, + "required": [ + "dls" + ] + }, + "xpack.usage.SecurityRolesDls": { + "type": "object", + "properties": { + "bit_set_cache": { + "allOf": [ + { + "$ref": "#/components/schemas/xpack.usage.SecurityRolesDlsBitSetCache" + } + ] + } + }, + "required": [ + "bit_set_cache" + ] + }, + "xpack.usage.SecurityRolesDlsBitSetCache": { + "type": "object", + "properties": { + "count": { + "description": "Number of entries in the cache.", + "type": "number" + }, + "memory": { + "description": "Human-readable amount of memory taken up by the cache.", + "allOf": [ + { + "$ref": "#/components/schemas/_types.ByteSize" + } + ] + }, + "memory_in_bytes": { + "description": "Memory taken up by the cache in bytes.", + "allOf": [ + { + "$ref": "#/components/schemas/_types.ulong" + } + ] + }, + "hits": { + "description": "Total number of cache hits.", + "x-state": "Generally available; Added in 9.2.0", + "type": "number" + }, + "misses": { + "description": "Total number of cache misses.", + "x-state": "Generally available; Added in 9.2.0", + "type": "number" + }, + "evictions": { + "description": "Total number of cache evictions.", + "x-state": "Generally available; Added in 9.2.0", + "type": "number" + }, + "hits_time_in_millis": { + "description": "Total combined time spent in cache for hits in milliseconds.", + "x-state": "Generally available; Added in 9.2.0", + "allOf": [ + { + "$ref": "#/components/schemas/_types.DurationValueUnitMillis" + } + ] + }, + "misses_time_in_millis": { + "description": "Total combined time spent in cache for misses in milliseconds.", + "x-state": "Generally available; Added in 9.2.0", + "allOf": [ + { + "$ref": "#/components/schemas/_types.DurationValueUnitMillis" + } + ] + } + }, + "required": [ + "count", + "memory_in_bytes", + "hits", + "misses", + "evictions", + "hits_time_in_millis", + "misses_time_in_millis" + ] + }, "security.get_token.AccessTokenGrantType": { "type": "string", "enum": [ @@ -130439,47 +130600,6 @@ "size" ] }, - "xpack.usage.SecurityRolesDls": { - "type": "object", - "properties": { - "bit_set_cache": { - "allOf": [ - { - "$ref": "#/components/schemas/xpack.usage.SecurityRolesDlsBitSetCache" - } - ] - } - }, - "required": [ - "bit_set_cache" - ] - }, - "xpack.usage.SecurityRolesDlsBitSetCache": { - "type": "object", - "properties": { - "count": { - "type": "number" - }, - "memory": { - "allOf": [ - { - "$ref": "#/components/schemas/_types.ByteSize" - } - ] - }, - "memory_in_bytes": { - "allOf": [ - { - "$ref": "#/components/schemas/_types.ulong" - } - ] - } - }, - "required": [ - "count", - "memory_in_bytes" - ] - }, "xpack.usage.SecurityRolesFile": { "type": "object", "properties": { diff --git a/output/schema/schema.json b/output/schema/schema.json index 0c1103f390..cdc8cb9339 100644 --- a/output/schema/schema.json +++ b/output/schema/schema.json @@ -19912,20 +19912,36 @@ }, { "availability": { - "stack": { + "serverless": { "stability": "stable", - "visibility": "public" + "visibility": "private" + }, + "stack": { + "since": "9.2.0", + "stability": "stable" } }, - "description": "Get security statistics for all nodes", + "description": "Get security stats.\n\nGather security usage statistics from all node(s) within the cluster.", + "docId": "security-api-get-stats", "docUrl": "https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-stats", "name": "security.get_stats", - "request": null, + "privileges": { + "cluster": [ + "monitor" + ] + }, + "request": { + "name": "Request", + "namespace": "security.get_stats" + }, "requestBodyRequired": false, "requestMediaType": [ "application/json" ], - "response": null, + "response": { + "name": "Response", + "namespace": "security.get_stats" + }, "responseMediaType": [ "application/json" ], @@ -233800,6 +233816,28 @@ ], "specLocation": "security/_types/Privileges.ts#L440-L442" }, + { + "kind": "interface", + "name": { + "name": "NodeSecurityStats", + "namespace": "security._types" + }, + "properties": [ + { + "description": "Role statistics.", + "name": "roles", + "required": true, + "type": { + "kind": "instance_of", + "type": { + "name": "RolesStats", + "namespace": "security._types" + } + } + } + ], + "specLocation": "security/_types/NodeSecurityStats.ts#L22-L27" + }, { "kind": "interface", "name": { @@ -234957,6 +234995,28 @@ "shortcutProperty": "source", "specLocation": "security/_types/Privileges.ts#L365-L383" }, + { + "kind": "interface", + "name": { + "name": "RolesStats", + "namespace": "security._types" + }, + "properties": [ + { + "description": "Document-level security (DLS) statistics.", + "name": "dls", + "required": true, + "type": { + "kind": "instance_of", + "type": { + "name": "SecurityRolesDls", + "namespace": "xpack.usage" + } + } + } + ], + "specLocation": "security/_types/NodeSecurityStats.ts#L29-L34" + }, { "kind": "interface", "name": { @@ -240830,6 +240890,71 @@ }, "specLocation": "security/get_settings/SecurityGetSettingsResponse.ts#L21-L36" }, + { + "kind": "request", + "attachedBehaviors": [ + "CommonQueryParameters" + ], + "body": { + "kind": "no_body" + }, + "description": "Get security stats.\n\nGather security usage statistics from all node(s) within the cluster.", + "inherits": { + "type": { + "name": "RequestBase", + "namespace": "_types" + } + }, + "name": { + "name": "Request", + "namespace": "security.get_stats" + }, + "path": [], + "query": [], + "specLocation": "security/get_stats/SecurityStatsRequest.ts#L22-L40" + }, + { + "kind": "response", + "body": { + "kind": "properties", + "properties": [ + { + "description": "A map of node IDs to security statistics for that node.", + "name": "nodes", + "required": true, + "type": { + "kind": "dictionary_of", + "key": { + "kind": "instance_of", + "type": { + "name": "string", + "namespace": "_builtins" + } + }, + "singleKey": false, + "value": { + "kind": "instance_of", + "type": { + "name": "NodeSecurityStats", + "namespace": "security._types" + } + } + } + } + ] + }, + "examples": { + "SecurityStatsExample1": { + "description": "A successful response from `GET /_security/stats`.", + "value": "{\n \"nodes\": {\n \"CLeCBfYETO2mQ1R2Il5-SA\": {\n \"roles\": {\n \"dls\": {\n \"bit_set_cache\": {\n \"count\": 1,\n \"memory\": \"16b\",\n \"memory_in_bytes\": 16,\n \"hits\": 212,\n \"misses\": 1,\n \"evictions\": 0,\n \"hits_time_in_millis\": 5,\n \"misses_time_in_millis\": 0\n }\n }\n }\n }\n }\n}" + } + }, + "name": { + "name": "Response", + "namespace": "security.get_stats" + }, + "specLocation": "security/get_stats/SecurityStatsResponse.ts#L24-L31" + }, { "kind": "enum", "members": [ @@ -273634,7 +273759,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L340-L342" + "specLocation": "xpack/usage/types.ts#L373-L375" }, { "kind": "interface", @@ -273870,7 +273995,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L344-L347" + "specLocation": "xpack/usage/types.ts#L377-L380" }, { "kind": "interface", @@ -274137,7 +274262,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L349-L359" + "specLocation": "xpack/usage/types.ts#L382-L392" }, { "kind": "interface", @@ -274207,7 +274332,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L361-L364" + "specLocation": "xpack/usage/types.ts#L394-L397" }, { "kind": "interface", @@ -274580,7 +274705,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L366-L368" + "specLocation": "xpack/usage/types.ts#L399-L401" }, { "kind": "interface", @@ -274803,7 +274928,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L370-L376" + "specLocation": "xpack/usage/types.ts#L403-L409" }, { "kind": "interface", @@ -274897,7 +275022,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L378-L385" + "specLocation": "xpack/usage/types.ts#L411-L418" }, { "kind": "interface", @@ -275539,7 +275664,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L387-L390" + "specLocation": "xpack/usage/types.ts#L420-L423" }, { "kind": "interface", @@ -275830,7 +275955,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L423-L432" + "specLocation": "xpack/usage/types.ts#L456-L465" }, { "kind": "interface", @@ -276526,7 +276651,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L434-L438" + "specLocation": "xpack/usage/types.ts#L467-L471" }, { "kind": "interface", @@ -276696,7 +276821,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L440-L453" + "specLocation": "xpack/usage/types.ts#L473-L486" }, { "kind": "interface", @@ -276770,6 +276895,7 @@ }, "properties": [ { + "description": "Number of entries in the cache.", "name": "count", "required": true, "type": { @@ -276781,6 +276907,7 @@ } }, { + "description": "Human-readable amount of memory taken up by the cache.", "name": "memory", "required": false, "type": { @@ -276792,6 +276919,7 @@ } }, { + "description": "Memory taken up by the cache in bytes.", "name": "memory_in_bytes", "required": true, "type": { @@ -276801,9 +276929,117 @@ "namespace": "_types" } } + }, + { + "availability": { + "serverless": {}, + "stack": { + "since": "9.2.0" + } + }, + "description": "Total number of cache hits.", + "name": "hits", + "required": true, + "type": { + "kind": "instance_of", + "type": { + "name": "long", + "namespace": "_types" + } + } + }, + { + "availability": { + "serverless": {}, + "stack": { + "since": "9.2.0" + } + }, + "description": "Total number of cache misses.", + "name": "misses", + "required": true, + "type": { + "kind": "instance_of", + "type": { + "name": "long", + "namespace": "_types" + } + } + }, + { + "availability": { + "serverless": {}, + "stack": { + "since": "9.2.0" + } + }, + "description": "Total number of cache evictions.", + "name": "evictions", + "required": true, + "type": { + "kind": "instance_of", + "type": { + "name": "long", + "namespace": "_types" + } + } + }, + { + "availability": { + "serverless": {}, + "stack": { + "since": "9.2.0" + } + }, + "description": "Total combined time spent in cache for hits in milliseconds.", + "name": "hits_time_in_millis", + "required": true, + "type": { + "kind": "instance_of", + "generics": [ + { + "kind": "instance_of", + "type": { + "name": "UnitMillis", + "namespace": "_types" + } + } + ], + "type": { + "name": "DurationValue", + "namespace": "_types" + } + } + }, + { + "availability": { + "serverless": {}, + "stack": { + "since": "9.2.0" + } + }, + "description": "Total combined time spent in cache for misses in milliseconds.", + "name": "misses_time_in_millis", + "required": true, + "type": { + "kind": "instance_of", + "generics": [ + { + "kind": "instance_of", + "type": { + "name": "UnitMillis", + "namespace": "_types" + } + } + ], + "type": { + "name": "DurationValue", + "namespace": "_types" + } + } } ], - "specLocation": "xpack/usage/types.ts#L322-L326" + "specLocation": "xpack/usage/types.ts#L322-L359" }, { "kind": "interface", @@ -276846,7 +277082,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L328-L332" + "specLocation": "xpack/usage/types.ts#L361-L365" }, { "kind": "interface", @@ -276927,7 +277163,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L455-L458" + "specLocation": "xpack/usage/types.ts#L488-L491" }, { "kind": "interface", @@ -276987,7 +277223,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L392-L395" + "specLocation": "xpack/usage/types.ts#L425-L428" }, { "kind": "interface", @@ -277019,7 +277255,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L397-L400" + "specLocation": "xpack/usage/types.ts#L430-L433" }, { "kind": "interface", @@ -277068,7 +277304,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L460-L464" + "specLocation": "xpack/usage/types.ts#L493-L497" }, { "kind": "interface", @@ -277117,7 +277353,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L466-L470" + "specLocation": "xpack/usage/types.ts#L499-L503" }, { "kind": "interface", @@ -277158,7 +277394,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L418-L421" + "specLocation": "xpack/usage/types.ts#L451-L454" }, { "kind": "interface", @@ -277190,7 +277426,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L402-L404" + "specLocation": "xpack/usage/types.ts#L435-L437" }, { "kind": "interface", @@ -277277,7 +277513,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L406-L411" + "specLocation": "xpack/usage/types.ts#L439-L444" }, { "kind": "interface", @@ -277309,7 +277545,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L413-L416" + "specLocation": "xpack/usage/types.ts#L446-L449" }, { "kind": "interface", @@ -277347,7 +277583,7 @@ } } ], - "specLocation": "xpack/usage/types.ts#L472-L475" + "specLocation": "xpack/usage/types.ts#L505-L508" }, { "kind": "interface", diff --git a/output/typescript/types.ts b/output/typescript/types.ts index 06a657694a..6482519652 100644 --- a/output/typescript/types.ts +++ b/output/typescript/types.ts @@ -19997,6 +19997,10 @@ export interface SecurityManageUserPrivileges { applications: string[] } +export interface SecurityNodeSecurityStats { + roles: SecurityRolesStats +} + export interface SecurityRealmInfo { name: Name type: string @@ -20102,6 +20106,10 @@ export interface SecurityRoleTemplateScript { options?: Record } +export interface SecurityRolesStats { + dls: XpackUsageSecurityRolesDls +} + export interface SecuritySearchAccess { field_security?: SecurityFieldSecurity names: IndexName | IndexName[] @@ -20598,6 +20606,13 @@ export interface SecurityGetSettingsResponse { 'security-tokens': SecuritySecuritySettings } +export interface SecurityGetStatsRequest extends RequestBase { +} + +export interface SecurityGetStatsResponse { + nodes: Record +} + export type SecurityGetTokenAccessTokenGrantType = 'password' | 'client_credentials' | '_kerberos' | 'refresh_token' export interface SecurityGetTokenAuthenticatedUser extends SecurityUser { @@ -23883,6 +23898,11 @@ export interface XpackUsageSecurityRolesDlsBitSetCache { count: integer memory?: ByteSize memory_in_bytes: ulong + hits: long + misses: long + evictions: long + hits_time_in_millis: DurationValue + misses_time_in_millis: DurationValue } export interface XpackUsageSecurityRolesFile { diff --git a/specification/_doc_ids/table.csv b/specification/_doc_ids/table.csv index 5c45b9fbc1..be825b9479 100644 --- a/specification/_doc_ids/table.csv +++ b/specification/_doc_ids/table.csv @@ -805,6 +805,7 @@ security-api-get-role,https://www.elastic.co/docs/api/doc/elasticsearch/operatio security-api-get-service-accounts,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-service-accounts,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-service-accounts.html, security-api-get-service-credentials,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-service-credentials,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-service-credentials.html, security-api-get-settings,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-settings,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-settings.html, +security-api-get-stats,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-stats,, security-api-get-token,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-token,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-token.html, security-api-get-user-privileges,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-user-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-user-privileges.html, security-api-get-user-profile,https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-security-get-user-profile,https://www.elastic.co/guide/en/elasticsearch/reference/8.18/security-api-get-user-profile.html, diff --git a/specification/security/_types/NodeSecurityStats.ts b/specification/security/_types/NodeSecurityStats.ts new file mode 100644 index 0000000000..3c1d878430 --- /dev/null +++ b/specification/security/_types/NodeSecurityStats.ts @@ -0,0 +1,34 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { SecurityRolesDls } from '@xpack/usage/types' + +export class NodeSecurityStats { + /** + * Role statistics. + */ + roles: RolesStats +} + +export class RolesStats { + /** + * Document-level security (DLS) statistics. + */ + dls: SecurityRolesDls +} diff --git a/specification/security/get_stats/SecurityStatsRequest.ts b/specification/security/get_stats/SecurityStatsRequest.ts new file mode 100644 index 0000000000..43ec29e216 --- /dev/null +++ b/specification/security/get_stats/SecurityStatsRequest.ts @@ -0,0 +1,40 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { RequestBase } from '@_types/Base' + +/** + * Get security stats. + * + * Gather security usage statistics from all node(s) within the cluster. + * + * @rest_spec_name security.get_stats + * @availability stack since=9.2.0 stability=stable + * @availability serverless stability=stable visibility=private + * @cluster_privileges monitor + * @doc_id security-api-get-stats + */ +export interface Request extends RequestBase { + urls: [ + { + path: '/_security/stats' + methods: ['GET'] + } + ] +} diff --git a/specification/security/get_stats/SecurityStatsResponse.ts b/specification/security/get_stats/SecurityStatsResponse.ts new file mode 100644 index 0000000000..5833aae7b0 --- /dev/null +++ b/specification/security/get_stats/SecurityStatsResponse.ts @@ -0,0 +1,31 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { Dictionary } from '@spec_utils/Dictionary' + +import { NodeSecurityStats } from '@security/_types/NodeSecurityStats' + +export class Response { + body: { + /** + * A map of node IDs to security statistics for that node. + */ + nodes: Dictionary + } +} diff --git a/specification/security/get_stats/examples/200_response/SecurityStatsExample1.yaml b/specification/security/get_stats/examples/200_response/SecurityStatsExample1.yaml new file mode 100644 index 0000000000..1c062870c5 --- /dev/null +++ b/specification/security/get_stats/examples/200_response/SecurityStatsExample1.yaml @@ -0,0 +1,25 @@ +# summary: +description: A successful response from `GET /_security/stats`. +# type: response +# response_code: 200 +value: |- + { + "nodes": { + "CLeCBfYETO2mQ1R2Il5-SA": { + "roles": { + "dls": { + "bit_set_cache": { + "count": 1, + "memory": "16b", + "memory_in_bytes": 16, + "hits": 212, + "misses": 1, + "evictions": 0, + "hits_time_in_millis": 5, + "misses_time_in_millis": 0 + } + } + } + } + } + } diff --git a/specification/xpack/usage/types.ts b/specification/xpack/usage/types.ts index 085fff1ed6..4898767aa1 100644 --- a/specification/xpack/usage/types.ts +++ b/specification/xpack/usage/types.ts @@ -320,9 +320,42 @@ export class SecurityRolesDls { } export class SecurityRolesDlsBitSetCache { + /** Number of entries in the cache. */ count: integer + /** Human-readable amount of memory taken up by the cache. */ memory?: ByteSize + /** Memory taken up by the cache in bytes. */ memory_in_bytes: ulong + /** + * Total number of cache hits. + * @availability stack since=9.2.0 + * @availability serverless + */ + hits: long + /** + * Total number of cache misses. + * @availability stack since=9.2.0 + * @availability serverless + */ + misses: long + /** + * Total number of cache evictions. + * @availability stack since=9.2.0 + * @availability serverless + */ + evictions: long + /** + * Total combined time spent in cache for hits in milliseconds. + * @availability stack since=9.2.0 + * @availability serverless + */ + hits_time_in_millis: DurationValue + /** + * Total combined time spent in cache for misses in milliseconds. + * @availability stack since=9.2.0 + * @availability serverless + */ + misses_time_in_millis: DurationValue } export class SecurityRolesFile {