specification/nodes/info/types.ts (308 lines of code) (raw):

/* * 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 { IndexRouting } from '@indices/_types/IndexRouting' import { AdditionalProperties } from '@spec_utils/behaviors' import { Dictionary } from '@spec_utils/Dictionary' import { UserDefinedValue } from '@spec_utils/UserDefinedValue' import { ByteSize, Name, VersionString } from '@_types/common' import { Host, Ip, TransportAddress } from '@_types/Networking' import { NodeRoles } from '@_types/Node' import { integer, long } from '@_types/Numeric' import { PluginStats } from '@_types/Stats' import { Duration, DurationValue, EpochTime, UnitMillis } from '@_types/Time' export class NodeInfo { attributes: Dictionary<string, string> build_flavor: string /** Short hash of the last git commit in this release. */ build_hash: string build_type: string /** The node’s host name. */ host: Host http?: NodeInfoHttp /** The node’s IP address. */ ip: Ip jvm?: NodeJvmInfo /** The node's name */ name: Name network?: NodeInfoNetwork os?: NodeOperatingSystemInfo plugins?: PluginStats[] process?: NodeProcessInfo roles: NodeRoles settings?: NodeInfoSettings thread_pool?: Dictionary<string, NodeThreadPoolInfo> /** * Total heap allowed to be used to hold recently indexed documents before they must be written to disk. This size is a shared pool across all shards on this node, and is controlled by Indexing Buffer settings. * @doc_id indexing-buffer */ total_indexing_buffer?: long /** Same as total_indexing_buffer, but expressed in bytes. */ total_indexing_buffer_in_bytes?: ByteSize transport?: NodeInfoTransport /** Host and port where transport HTTP connections are accepted. */ transport_address: TransportAddress /** Elasticsearch version running on this node. */ version: VersionString modules?: PluginStats[] ingest?: NodeInfoIngest aggregations?: Dictionary<string, NodeInfoAggregation> } export class NodeInfoSettings { cluster: NodeInfoSettingsCluster node: NodeInfoSettingsNode path?: NodeInfoPath repositories?: NodeInfoRepositories discovery?: NodeInfoDiscover action?: NodeInfoAction client?: NodeInfoClient http: NodeInfoSettingsHttp bootstrap?: NodeInfoBootstrap transport: NodeInfoSettingsTransport network?: NodeInfoSettingsNetwork xpack?: NodeInfoXpack script?: NodeInfoScript search?: NodeInfoSearch ingest?: NodeInfoSettingsIngest } export class NodeInfoSettingsIngest { attachment?: NodeInfoIngestInfo append?: NodeInfoIngestInfo csv?: NodeInfoIngestInfo convert?: NodeInfoIngestInfo date?: NodeInfoIngestInfo date_index_name?: NodeInfoIngestInfo dot_expander?: NodeInfoIngestInfo enrich?: NodeInfoIngestInfo fail?: NodeInfoIngestInfo foreach?: NodeInfoIngestInfo json?: NodeInfoIngestInfo user_agent?: NodeInfoIngestInfo kv?: NodeInfoIngestInfo geoip?: NodeInfoIngestInfo grok?: NodeInfoIngestInfo gsub?: NodeInfoIngestInfo join?: NodeInfoIngestInfo lowercase?: NodeInfoIngestInfo remove?: NodeInfoIngestInfo rename?: NodeInfoIngestInfo script?: NodeInfoIngestInfo set?: NodeInfoIngestInfo sort?: NodeInfoIngestInfo split?: NodeInfoIngestInfo trim?: NodeInfoIngestInfo uppercase?: NodeInfoIngestInfo urldecode?: NodeInfoIngestInfo bytes?: NodeInfoIngestInfo dissect?: NodeInfoIngestInfo set_security_user?: NodeInfoIngestInfo pipeline?: NodeInfoIngestInfo drop?: NodeInfoIngestInfo circle?: NodeInfoIngestInfo inference?: NodeInfoIngestInfo } export class NodeInfoIngestInfo { downloader: NodeInfoIngestDownloader } export class NodeInfoIngestDownloader { enabled: string } export class NodeInfoSettingsCluster { name: Name routing?: IndexRouting election: NodeInfoSettingsClusterElection initial_master_nodes?: string[] /** * @availability stack since=7.16.0 * @availability serverless */ deprecation_indexing?: DeprecationIndexing } export class DeprecationIndexing { enabled: boolean | string } export class NodeInfoSettingsClusterElection { strategy: Name } export class NodeInfoSettingsNode { name: Name attr: Dictionary<string, UserDefinedValue> max_local_storage_nodes?: string } export class NodeInfoPath { logs?: string home?: string repo?: string[] data?: string | string[] } export class NodeInfoRepositories { url: NodeInfoRepositoriesUrl } export class NodeInfoRepositoriesUrl { allowed_urls: string } /** * @behavior_meta AdditionalProperties fieldname=settings description="Additional or alternative settings" */ export class NodeInfoDiscover implements AdditionalProperties<string, UserDefinedValue> { seed_hosts?: string[] type?: string seed_providers?: string[] } export class NodeInfoAction { destructive_requires_name: string } export class NodeInfoClient { type: string } export class NodeInfoSettingsHttp { type: NodeInfoSettingsHttpType 'type.default'?: string // TODO this clashes with NodeInfoSettingsHttpType compression?: boolean | string port?: integer | string } /** @shortcut_property default */ export class NodeInfoSettingsHttpType { default: string } export class NodeInfoBootstrap { memory_lock: string } export class NodeInfoSettingsTransport { type: NodeInfoSettingsTransportType 'type.default'?: string // TODO this clashes with NodeInfoSettingsTransportType features?: NodeInfoSettingsTransportFeatures } /** @shortcut_property default */ export class NodeInfoSettingsTransportType { default: string } export class NodeInfoSettingsTransportFeatures { 'x-pack': string } export class NodeInfoSettingsNetwork { host?: Host | Host[] } export class NodeInfoIngest { processors: NodeInfoIngestProcessor[] } export class NodeInfoIngestProcessor { type: string } export class NodeInfoAggregation { types: string[] } export class NodeInfoXpack { license?: NodeInfoXpackLicense security: NodeInfoXpackSecurity notification?: Dictionary<string, UserDefinedValue> ml?: NodeInfoXpackMl } export class NodeInfoXpackSecurity { http?: NodeInfoXpackSecuritySsl enabled: string transport?: NodeInfoXpackSecuritySsl authc?: NodeInfoXpackSecurityAuthc } export class NodeInfoXpackMl { use_auto_machine_memory_percent?: boolean } export class NodeInfoXpackSecuritySsl { ssl: Dictionary<string, string> } export class NodeInfoXpackSecurityAuthc { realms?: NodeInfoXpackSecurityAuthcRealms token?: NodeInfoXpackSecurityAuthcToken } export class NodeInfoXpackSecurityAuthcRealms { file?: Dictionary<string, NodeInfoXpackSecurityAuthcRealmsStatus> native?: Dictionary<string, NodeInfoXpackSecurityAuthcRealmsStatus> pki?: Dictionary<string, NodeInfoXpackSecurityAuthcRealmsStatus> } export class NodeInfoXpackSecurityAuthcToken { enabled: string } export class NodeInfoXpackSecurityAuthcRealmsStatus { enabled?: string order: string } export class NodeInfoXpackLicense { self_generated: NodeInfoXpackLicenseType } export class NodeInfoXpackLicenseType { type: string } export class NodeInfoScript { allowed_types: string disable_max_compilations_rate?: string } export class NodeInfoSearch { remote: NodeInfoSearchRemote } export class NodeInfoSearchRemote { connect: string } export class NodeThreadPoolInfo { core?: integer keep_alive?: Duration max?: integer queue_size: integer size?: integer type: string } export class NodeInfoHttp { bound_address: string[] max_content_length?: ByteSize max_content_length_in_bytes: long publish_address: string } export class NodeInfoJvmMemory { direct_max?: ByteSize direct_max_in_bytes: long heap_init?: ByteSize heap_init_in_bytes: long heap_max?: ByteSize heap_max_in_bytes: long non_heap_init?: ByteSize non_heap_init_in_bytes: long non_heap_max?: ByteSize non_heap_max_in_bytes: long } export class NodeInfoMemory { total: string total_in_bytes: long } export class NodeInfoNetwork { primary_interface: NodeInfoNetworkInterface refresh_interval: integer } export class NodeInfoNetworkInterface { address: string mac_address: string name: Name } export class NodeInfoOSCPU { cache_size: string cache_size_in_bytes: integer cores_per_socket: integer mhz: integer model: string total_cores: integer total_sockets: integer vendor: string } export class NodeInfoTransport { bound_address: string[] publish_address: string profiles: Dictionary<string, string> } export class NodeJvmInfo { gc_collectors: string[] mem: NodeInfoJvmMemory memory_pools: string[] pid: integer start_time_in_millis: EpochTime<UnitMillis> version: VersionString vm_name: Name vm_vendor: string vm_version: VersionString /** @aliases bundled_jdk */ using_bundled_jdk: boolean using_compressed_ordinary_object_pointers?: boolean | string input_arguments: string[] } export class NodeOperatingSystemInfo { /** Name of the JVM architecture (ex: amd64, x86) */ arch: string /** Number of processors available to the Java virtual machine */ available_processors: integer /** The number of processors actually used to calculate thread pool size. This number can be set with the node.processors setting of a node and defaults to the number of processors reported by the OS. */ allocated_processors?: integer /** Name of the operating system (ex: Linux, Windows, Mac OS X) */ name: Name pretty_name: Name /** Refresh interval for the OS statistics */ refresh_interval_in_millis: DurationValue<UnitMillis> /** Version of the operating system */ version: VersionString cpu?: NodeInfoOSCPU mem?: NodeInfoMemory swap?: NodeInfoMemory } export class NodeProcessInfo { /** Process identifier (PID) */ id: long /** Indicates if the process address space has been successfully locked in memory */ mlockall: boolean /** Refresh interval for the process statistics */ refresh_interval_in_millis: DurationValue<UnitMillis> }