# Cheatsheets

## AclToken

Holds properties of Acl token

Name | Type | Description
`@id` | `String` | Set ID of token
`@name` | `String` | Set name of token
`@rules` | `String` | Set rules for token
`@type` | `AclTokenType` | Set type of token

## BlockingQueryOptions

Options used to perform blocking query that used to wait for a potential change using long polling.

Name | Type | Description
`@index` | `Number (long)` | Set index indicating that the client wishes to wait for any changes subsequent to that index.
`@wait` | `String` | Specifying a maximum duration for the blocking request. This is limited to 10 minutes. If not set, the wait time defaults to 5 minutes. This value can be specified in the form of "10s" or "5m" (i.e., 10 seconds or 5 minutes, respectively).

## Check

Holds check properties

Name | Type | Description
`@id` | `String` | Set the ID of check
`@name` | `String` | Set the name of check
`@nodeName` | `String` | Set the name of node
`@notes` | `String` | Set the human-readable note of check
`@output` | `String` | Set the output of check
`@serviceId` | `String` | Set the ID of service with which this check associated
`@serviceName` | `String` | Set the name of service with which this check associated
`@status` | `CheckStatus` | Set the status of check

## CheckList

Holds result of checks query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of checks
`@list` | `Array of Check` | Set list of checks

## CheckOptions

Options used to register checks in Consul.

Name | Type | Description
`@deregisterAfter` | `String` | Set deregister timeout. This is optional field, which is a timeout in the same time format as Interval and TTL. If a check is associated with a service and has the critical state for more than this configured value, then its associated service (and all of its associated checks) will automatically be deregistered. The minimum timeout is 1 minute, and the process that reaps critical services runs every 30 seconds, so it may take slightly longer than the configured timeout to trigger the deregistration. This should generally be configured with a timeout that's much, much longer than any expected recoverable outage for the given service.
`@grpc` | `String` | Specifies a gRPC check's endpoint that supports the standard gRPC health checking protocol. The state of the check will be updated at the given Interval by probing the configured endpoint. The endpoint must be represented as `address:port/service`
`@grpcTls` | `Boolean` | Specifies whether to use TLS for this gRPC health check. If TLS is enabled, then by default, a valid TLS certificate is expected. Certificate verification can be turned off by setting `TLSSkipVerify` to `true`.
`@http` | `String` | Set HTTP address to check. Also you should set checking interval
`@id` | `String` | Set check ID
`@interval` | `String` | Set checking interval
`@name` | `String` | Set check name. This is mandatory field
`@notes` | `String` | Set check notes
`@scriptArgs` | `Array of String` | Set scriptArgs. Also you should set checking interval
`@serviceId` | `String` | Set the service ID to associate the registered check with an existing service provided by the agent.
`@status` | `CheckStatus` | Set the check status to specify the initial state of the health check.
`@tcp` | `String` | Set TCP address to check. Also you should set checking interval
`@tlsSkipVerify` | `Boolean` | Specifies if the certificate for an HTTPS check should not be verified.
`@ttl` | `String` | Set Time to Live of check.

## CheckQueryOptions

Options used to requesting list of checks

Name | Type | Description
`@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query
`@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node.

## ConsulClientOptions

Options used to create Consul client.

Name | Type | Description
`@aclToken` | `String` | Set the ACL token. When provided, the client will use this token when making requests to the Consul by providing the "?token" query parameter. When not provided, the empty token, which maps to the 'anonymous' ACL policy, is used.
`@alpnVersions` | `Array of HttpVersion` | Set the list of protocol versions to provide to the server during the Application-Layer Protocol Negotiation. When the list is empty, the client provides a best effort list according to link: : [ "h2", "http/1.1" ] otherwise: [link]
`@connectTimeout` | `Number (int)` | Set the connect timeout
`@crlPaths` | `Array of String` | Add a CRL path
`@crlValues` | `Array of Buffer` | Add a CRL value
`@dc` | `String` | Set the datacenter name. When provided, the client will use it when making requests to the Consul by providing the "?dc" query parameter. When not provided, the datacenter of the consul agent is queried.
`@decoderInitialBufferSize` | `Number (int)` | set to `initialBufferSizeHttpDecoder` the initial buffer of the HttpDecoder.
`@defaultHost` | `String` | Set the default host name to be used by this client in requests if none is provided when making the request.
`@defaultPort` | `Number (int)` | Set the default port to be used by this client in requests if none is provided when making the request.
`@enabledCipherSuites` | `Array of String` | Add an enabled cipher suite, appended to the ordered suites.
`@enabledSecureTransportProtocols` | `Array of String` | Add an enabled SSL/TLS protocols, appended to the ordered protocols.
`@followRedirects` | `Boolean` | Configure the default behavior of the client to follow HTTP `30x` redirections.
`@forceSni` | `Boolean` | By default, the server name is only sent for Fully Qualified Domain Name (FQDN), setting this property to `true` forces the server name to be always sent.
`@http2ClearTextUpgrade` | `Boolean` | Set to `true` when an h2c connection is established using an HTTP/1.1 upgrade request, and `false` when an h2c connection is established directly (with prior knowledge).
`@http2ConnectionWindowSize` | `Number (int)` | Set the default HTTP/2 connection window size. It overrides the initial window size set by , so the connection window size is greater than for its streams, in order the data throughput. A value of `-1` reuses the initial window size setting.
`@http2KeepAliveTimeout` | `Number (int)` | -
`@http2MaxPoolSize` | `Number (int)` | Set the maximum pool size for HTTP/2 connections
`@http2MultiplexingLimit` | `Number (int)` | Set a client limit of the number concurrent streams for each HTTP/2 connection, this limits the number of streams the client can create for a connection. The effective number of streams for a connection is the min of this value and the server's initial settings. Setting the value to `-1` means to use the value sent by the server's initial settings. `-1` is the default value.
`@idleTimeout` | `Number (int)` | Set the idle timeout, in seconds. zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout.
`@idleTimeoutUnit` | `TimeUnit` | Set the idle timeout unit. If not specified, default is seconds.
`@initialSettings` | `Http2Settings` | Set the HTTP/2 connection settings immediately sent by to the server when the client connects.
`@jdkSslEngineOptions` | `JdkSSLEngineOptions` | -
`@keepAlive` | `Boolean` | Set whether keep alive is enabled on the client
`@keepAliveTimeout` | `Number (int)` | -
`@keyStoreOptions` | `JksOptions` | Set the key/cert options in jks format, aka Java keystore.
`@localAddress` | `String` | Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.
`@logActivity` | `Boolean` | Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
`@maxChunkSize` | `Number (int)` | Set the maximum HTTP chunk size
`@maxHeaderSize` | `Number (int)` | Set the maximum length of all headers for HTTP/1.x .
`@maxInitialLineLength` | `Number (int)` | Set the maximum length of the initial line for HTTP/1.x (e.g. `"HTTP/1.1 200 OK"`)
`@maxPoolSize` | `Number (int)` | Set the maximum pool size for connections
`@maxRedirects` | `Number (int)` | Set to `maxRedirects` the maximum number of redirection a request can follow.
`@maxWaitQueueSize` | `Number (int)` | Set the maximum requests allowed in the wait queue, any requests beyond the max size will result in a ConnectionPoolTooBusyException. If the value is set to a negative number then the queue will be unbounded.
`@maxWebsocketFrameSize` | `Number (int)` | Set the max websocket frame size
`@maxWebsocketMessageSize` | `Number (int)` | Set the max websocket message size
`@metricsName` | `String` | Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
`@openSslEngineOptions` | `OpenSSLEngineOptions` | -
`@pemKeyCertOptions` | `PemKeyCertOptions` | Set the key/cert store options in pem format.
`@pemTrustOptions` | `PemTrustOptions` | Set the trust options.
`@pfxKeyCertOptions` | `PfxOptions` | Set the key/cert options in pfx format.
`@pfxTrustOptions` | `PfxOptions` | Set the trust options in pfx format
`@pipelining` | `Boolean` | Set whether pipe-lining is enabled on the client
`@pipeliningLimit` | `Number (int)` | Set the limit of pending requests a pipe-lined HTTP/1 connection can send.
`@poolCleanerPeriod` | `Number (int)` | -
`@protocolVersion` | `HttpVersion` | Set the protocol version.
`@proxyOptions` | `ProxyOptions` | Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
`@receiveBufferSize` | `Number (int)` | Set the TCP receive buffer size
`@reuseAddress` | `Boolean` | Set the value of reuse address
`@reusePort` | `Boolean` | Set the value of reuse port. This is only supported by native transports.
`@sendBufferSize` | `Number (int)` | Set the TCP send buffer size
`@sendUnmaskedFrames` | `Boolean` | Set true when the client wants to skip frame masking. You may want to set it true on server by server websocket communication: In this case you are by passing RFC6455 protocol. It's false as default.
`@soLinger` | `Number (int)` | Set whether SO_linger keep alive is enabled
`@ssl` | `Boolean` | Set whether SSL/TLS is enabled
`@tcpCork` | `Boolean` | Enable the `TCP_CORK` option - only with linux native transport.
`@tcpFastOpen` | `Boolean` | Enable the `TCP_FASTOPEN` option - only with linux native transport.
`@tcpKeepAlive` | `Boolean` | Set whether TCP keep alive is enabled
`@tcpNoDelay` | `Boolean` | Set whether TCP no delay is enabled
`@tcpQuickAck` | `Boolean` | Enable the `TCP_QUICKACK` option - only with linux native transport.
`@timeout` | `Number (long)` | Sets the amount of time (in milliseconds) after which if the request does not return any data within the timeout period an failure will be passed to the handler and the request will be closed.
`@trafficClass` | `Number (int)` | Set the value of traffic class
`@trustAll` | `Boolean` | Set whether all server certificates should be trusted
`@trustStoreOptions` | `JksOptions` | Set the trust options in jks format, aka Java truststore
`@tryUseCompression` | `Boolean` | Set whether compression is enabled
`@tryUsePerFrameWebsocketCompression` | `Boolean` | -
`@tryUsePerMessageWebsocketCompression` | `Boolean` | -
`@useAlpn` | `Boolean` | Set the ALPN usage.
`@usePooledBuffers` | `Boolean` | Set whether Netty pooled buffers are enabled
`@userAgent` | `String` | Sets the Web Client user agent header. Defaults to Vert.x-WebClient/<version>.
`@userAgentEnabled` | `Boolean` | Sets whether the Web Client should send a user agent header. Defaults to true.
`@verifyHost` | `Boolean` | Set whether hostname verification is enabled
`@websocketCompressionAllowClientNoContext` | `Boolean` | -
`@websocketCompressionLevel` | `Number (int)` | -
`@websocketCompressionRequestServerNoContext` | `Boolean` | -

## Coordinate

Holds network coordinates of node

Name | Type | Description
`@adj` | `Number (float)` | Set adjustment
`@err` | `Number (float)` | Set error
`@height` | `Number (float)` | Set height
`@node` | `String` | Set name of node
`@vec` | `Array of Number (Float)` | Set vector

## CoordinateList

Holds result of network coordinates query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested coordinates
`@list` | `Array of Coordinate` | Set list of coordinates

## DcCoordinates

Holds coordinates of servers in datacenter

Name | Type | Description
`@datacenter` | `String` | Set datacenter
`@servers` | `Array of Coordinate` | Set list of servers in datacenter

## Event

Holds properties of Consul event

Name | Type | Description
`@id` | `String` | Set ID of event
`@lTime` | `Number (int)` | Set the Lamport clock time
`@name` | `String` | Set name of event
`@node` | `String` | Set regular expression to filter by node name
`@payload` | `String` | Set payload of event
`@service` | `String` | Set regular expression to filter by service
`@tag` | `String` | Set regular expression to filter by tag
`@version` | `Number (int)` | Set version

## EventList

Holds result of events query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested events
`@list` | `Array of Event` | Set list of events

## EventListOptions

Holds options for events list request

Name | Type | Description
`@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query
`@name` | `String` | Set event name for filtering on events

## EventOptions

Options used to trigger a new user event.

Name | Type | Description
`@node` | `String` | Set regular expression to filter by node name
`@payload` | `String` | Set payload of event
`@service` | `String` | Set regular expression to filter by service
`@tag` | `String` | Set regular expression to filter by tag

## KeyValue

Represents key/value pair stored in Consul

Name | Type | Description
`@createIndex` | `Number (long)` | Set the internal index value that represents when the entry was created.
`@flags` | `Number (long)` | Set the flags attached to this entry. Clients can choose to use this however makes sense for their application.
`@key` | `String` | Set the key
`@lockIndex` | `Number (long)` | Set the number of times this key has successfully been acquired in a lock.
`@modifyIndex` | `Number (long)` | Set the last index that modified this key.
`@session` | `String` | Set the session that owns the lock
`@value` | `String` | Set the value

## KeyValueList

Holds result of key/value pairs query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index
`@list` | `Array of KeyValue` | Set list of key/value pairs

## KeyValueOptions

Options used to put key/value pair to Consul.

Name | Type | Description
`@acquireSession` | `String` | Set session ID for lock acquisition operation.
`@casIndex` | `Number (long)` | Set the Check-And-Set index. If the index is `0`, Consul will only put the key if it does not already exist. If the index is non-zero, the key is only set if the index matches the ModifyIndex of that key.
`@flags` | `Number (long)` | Set the flags. Flags is an value between `0` and 264-1 that can be attached to each entry. Clients can choose to use this however makes sense for their application.
`@releaseSession` | `String` | Set session ID for lock release operation.

## MaintenanceOptions

Options used to placing a given service into "maintenance mode". During maintenance mode, the service will be marked as unavailable and will not be present in DNS or API queries. Maintenance mode is persistent and will be automatically restored on agent restart.

Name | Type | Description
`@enable` | `Boolean` | Set maintenance mode to enabled: `true` to enter maintenance mode or `false` to resume normal operation. This flag is required.
`@id` | `String` | Set the ID of service. This field is required.
`@reason` | `String` | Set the reason message. If provided, its value should be a text string explaining the reason for placing the service into maintenance mode. This is simply to aid human operators.

## Node

Name | Type | Description
`@address` | `String` | Set node address
`@lanAddress` | `String` | Set node lan address
`@name` | `String` | Set node name
`@wanAddress` | `String` | Set node wan address

## NodeList

Holds result of nodes query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of nodes
`@list` | `Array of Node` | Set list of nodes

## NodeQueryOptions

Options used to requesting list of nodes

Name | Type | Description
`@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query
`@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node.

## PreparedQueryDefinition

Defines a prepared query.

Name | Type | Description
`@dcs` | `Array of String` | Specifies a fixed list of remote datacenters to forward the query to if there are no healthy nodes in the local datacenter. Datacenters are queried in the order given in the list. If this option is combined with NearestN, then the NearestN queries will be performed first, followed by the list given by Datacenters. A given datacenter will only be queried one time during a failover, even if it is selected by both NearestN and is listed in Datacenters.
`@dnsTtl` | `String` | Set the TTL duration when query results are served over DNS. If this is specified, it will take precedence over any Consul agent-specific configuration.
`@id` | `String` | Set ID of the query, always generated by Consul
`@meta` | `String` | Set a list of user-defined key/value pairs that will be used for filtering the query results to nodes with the given metadata values present.
`@name` | `String` | Set an optional friendly name that can be used to execute a query instead of using its ID
`@nearestN` | `Number (int)` | Specifies that the query will be forwarded to up to NearestN other datacenters based on their estimated network round trip time using Network Coordinates from the WAN gossip pool. The median round trip time from the server handling the query to the servers in the remote datacenter is used to determine the priority.
`@passing` | `Boolean` | Specifies the behavior of the query's health check filtering. If this is set to false, the results will include nodes with checks in the passing as well as the warning states. If this is set to true, only nodes with checks in the passing state will be returned.
`@service` | `String` | Set the name of the service to query
`@session` | `String` | Set the ID of an existing session. This provides a way to automatically remove a prepared query when the given session is invalidated. If not given the prepared query must be manually removed when no longer needed.
`@tags` | `Array of String` | Set a list of service tags to filter the query results. For a service to pass the tag filter it must have all of the required tags, and none of the excluded tags (prefixed with `!`).
`@templateRegexp` | `String` | Set regular expression which is used to extract fields from the entire name, once this template is selected.
`@templateType` | `String` | The template type, which must be `name_prefix_match`. This means that the template will apply to any query lookup with a name whose prefix matches the Name field of the template.
`@token` | `String` | Set the ACL token to use each time the query is executed. This allows queries to be executed by clients with lesser or even no ACL Token, so this should be used with care.

## PreparedQueryExecuteOptions

Options used to execute prepared query

Name | Type | Description
`@limit` | `Number (int)` | Set the size of the list to the given number of nodes. This is applied after any sorting or shuffling.
`@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node. Passing `_agent` will use the agent's node for the sort. If this is not present, the default behavior will shuffle the nodes randomly each time the query is executed.

## PreparedQueryExecuteResponse

The results of executing prepared query

Name | Type | Description
`@dc` | `String` | Set the datacenter that ultimately provided the list of nodes
`@dnsTtl` | `String` | Set the TTL duration when query results are served over DNS. If this is specified, it will take precedence over any Consul agent-specific configuration.
`@failovers` | `Number (int)` | Set the number of remote datacenters that were queried while executing the query.
`@nodes` | `Array of ServiceEntry` | Set the list of healthy nodes providing the given service, as specified by the constraints of the prepared query.
`@service` | `String` | Set the service name that the query was selecting. This is useful for context in case an empty list of nodes is returned.

## Service

Holds properties of service and node that its containing

Name | Type | Description
`@address` | `String` | Set service address
`@id` | `String` | Set ID of service
`@meta` | `String` | Specifies arbitrary KV metadata linked to the service instance.
`@name` | `String` | Set service name
`@node` | `String` | Set node name
`@nodeAddress` | `String` | Set node address
`@port` | `Number (int)` | Set service port
`@tags` | `Array of String` | Set list of service tags

## ServiceEntry

Holds properties of service, node and related checks

Name | Type | Description
`@checks` | `Array of Check` | Set list of checks
`@node` | `Node` | Set node
`@service` | `Service` | Set service

## ServiceEntryList

Holds list of services, nodes and related checks

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of services
`@list` | `Array of ServiceEntry` | Set list of services

## ServiceList

Holds result of services query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of services
`@list` | `Array of Service` | Set list of services

## ServiceOptions

Options used to register service.

Name | Type | Description
`@address` | `String` | Set service address
`@checkOptions` | `CheckOptions` | Set check options of service
`@id` | `String` | Set the ID of session
`@meta` | `String` | Specifies arbitrary KV metadata linked to the service instance.
`@name` | `String` | Set service name
`@port` | `Number (int)` | Set service port
`@tags` | `Array of String` | Set list of tags associated with service

## ServiceQueryOptions

Options used to requesting list of services

Name | Type | Description
`@blockingOptions` | `BlockingQueryOptions` | Set options for blocking query
`@near` | `String` | Set node name for sorting the list in ascending order based on the estimated round trip time from that node.
`@tag` | `String` | Set tag for filtering request results

## Session

Holds properties of Consul sessions

Name | Type | Description
`@checks` | `Array of String` | Set the list of associated health checks
`@createIndex` | `Number (long)` | Set the create index of session
`@id` | `String` | Set the ID of node
`@index` | `Number (long)` | Set Consul index
`@lockDelay` | `Number (long)` | Set the Lock delay of session
`@node` | `String` | Set the ID of node

## SessionList

Holds result of sessions query

Name | Type | Description
`@index` | `Number (long)` | Set Consul index, a unique identifier representing the current state of the requested list of sessions
`@list` | `Array of Session` | Set list of sessions

## SessionOptions

Options used to create session.

Name | Type | Description
`@behavior` | `SessionBehavior` | Set the behavior when a session is invalidated. The release behavior is the default if none is specified.
`@checks` | `Array of String` | Set a list of associated health checks. It is highly recommended that, if you override this list, you include the default "serfHealth"
`@lockDelay` | `Number (long)` | Set the lock-delay period.
`@name` | `String` | Set the human-readable name for the Session
`@node` | `String` | Set the node to which the session will be assigned
`@ttl` | `Number (long)` | Set the TTL interval. When TTL interval expires without being renewed, the session has expired and an invalidation is triggered. If specified, it must be between `10s` and `86400s` currently. The contract of a TTL is that it represents a lower bound for invalidation; that is, Consul will not expire the session before the TTL is reached, but it is allowed to delay the expiration past the TTL. The lowest practical TTL should be used to keep the number of managed sessions low. When locks are forcibly expired, such as during a leader election, sessions may not be reaped for up to double this TTL, so long TTL values (> 1 hour) should be avoided.

## TxnError

Holds information describing which operations failed if the transaction was rolled back.

Name | Type | Description
`@opIndex` | `Number (int)` | Set the index of the failed operation in the transaction
`@what` | `String` | Set error message about why that operation failed.

## TxnKVOperation

Holds operation to apply to the key/value store inside a transaction

Name | Type | Description
`@flags` | `Number (long)` | Set the flags attached to this entry. Clients can choose to use this however makes sense for their application.
`@index` | `Number (long)` | Set the index used for locking, unlocking, and check-and-set operations.
`@key` | `String` | Set the key
`@session` | `String` | Set the session used for locking, unlocking, and check-and-set operations.
`@type` | `TxnKVVerb` | Set the type of operation to perform
`@value` | `String` | Set the value

## TxnRequest

Holds list of operations in transaction

Name | Type | Description
`@operationsSize` | `Number (int)` | Returns the number of operations in this request

## TxnResponse

Holds results of transaction

Name | Type | Description
`@errors` | `Array of TxnError` | Adds error to this response
`@errorsSize` | `Number (int)` | Returns the number of errors in this response
`@resultsSize` | `Number (int)` | Returns the number of results in this response