<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Посібник розробника on etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/</link><description>Recent content in Посібник розробника on etcd</description><generator>Hugo</generator><language>uk</language><atom:link href="https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/index.xml" rel="self" type="application/rss+xml"/><item><title>Протокол служби виявлення</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/discovery_protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/discovery_protocol/</guid><description>&lt;p&gt;Протокол служби виявлення допомагає новому учаснику etcd виявити всіх інших учасників у фазі завантаження кластера за допомогою спільної URL-адреси виявлення.&lt;/p&gt;
&lt;p&gt;Протокол служби виявлення використовується &lt;em&gt;лише&lt;/em&gt; на етапі запуску кластера і не може застосовуватися для переналаштування під час роботи або моніторингу кластера.&lt;/p&gt;
&lt;p&gt;Протокол використовує новий токен виявлення для завантаження одного &lt;em&gt;унікального&lt;/em&gt; кластера etcd. Памʼятайте, що один токен виявлення може представляти лише один кластер etcd. Як тільки протокол виявлення на цьому токені починається, навіть якщо він переривається на півдорозі, його не можна використовувати для завантаження іншого кластера etcd.&lt;/p&gt;</description></item><item><title>Налаштування локального кластера</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/local_cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/local_cluster/</guid><description>&lt;p&gt;Для тестування та розробки найшвидший і найпростіший спосіб — налаштувати локальний кластер. Для розгортання в операційному середовищі зверніться до розділу &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/op-guide/clustering/"&gt;кластеризація&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="local-standalone-cluster"&gt;Локальний автономний кластер&lt;a class="td-heading-self-link" href="#local-standalone-cluster" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="starting-a-cluster"&gt;Запуск кластера&lt;a class="td-heading-self-link" href="#starting-a-cluster" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Виконайте наступне, щоб розгорнути кластер etcd як автономний кластер:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ./etcd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Якщо бінарний файл &lt;code&gt;etcd&lt;/code&gt; не присутній у поточній робочій теці, він може знаходитися або в &lt;code&gt;$GOPATH/bin/etcd&lt;/code&gt;, або в &lt;code&gt;/usr/local/bin/etcd&lt;/code&gt;. Виконайте команду відповідно.&lt;/p&gt;
&lt;p&gt;Запущений член etcd слухає на &lt;code&gt;localhost:2379&lt;/code&gt; для клієнтських запитів.&lt;/p&gt;</description></item><item><title>Взаємодія з etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/interacting_v3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/interacting_v3/</guid><description>&lt;p&gt;Користувачі здебільшого взаємодіють з etcd, встановлюючи або отримуючи значення ключа. У цьому розділі описано, як це зробити за допомогою etcdctl, інструменту командного рядка для взаємодії з сервером etcd. Описані концепції повинні застосовуватися до gRPC API або API бібліотеки клієнта.&lt;/p&gt;
&lt;p&gt;Версія API, яку використовує etcdctl для взаємодії з etcd, може бути встановлена на версію &lt;code&gt;2&lt;/code&gt; або &lt;code&gt;3&lt;/code&gt; за допомогою змінної середовища &lt;code&gt;ETCDCTL_API&lt;/code&gt;. Стандартно, etcdctl на master (3.4) використовує API v3, а попередні версії (3.3 і раніше) стандартно використовують API v2.&lt;/p&gt;</description></item><item><title>Чому gRPC gateway</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_grpc_gateway/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_grpc_gateway/</guid><description>&lt;p&gt;etcd v3 використовує &lt;a href="https://www.grpc.io/"&gt;gRPC&lt;/a&gt; для свого протоколу обміну повідомленнями. Проєкт etcd включає клієнт на основі gRPC &lt;a href="https://github.com/etcd-io/etcd/tree/main/client/v3"&gt;Go client&lt;/a&gt; та утиліту командного рядка &lt;a href="https://github.com/etcd-io/etcd/tree/main/etcdctl"&gt;etcdctl&lt;/a&gt; для спілкування з кластером etcd через gRPC. Для мов, які не підтримують gRPC, etcd надає JSON &lt;a href="https://github.com/grpc-ecosystem/grpc-gateway"&gt;gRPC gateway&lt;/a&gt;. Цей шлюз обслуговує RESTful проксі, який перетворює HTTP/JSON запити в gRPC повідомлення.&lt;/p&gt;
&lt;h2 id="using-grpc-gateway"&gt;Використання gRPC gateway&lt;a class="td-heading-self-link" href="#using-grpc-gateway" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Шлюз приймає &lt;a href="https://developers.google.com/protocol-buffers/docs/proto3#json"&gt;JSON mapping&lt;/a&gt; для &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_reference_v3/"&gt;protocol buffer&lt;/a&gt; визначень повідомлень etcd. Зверніть увагу, що поля &lt;code&gt;key&lt;/code&gt; та &lt;code&gt;value&lt;/code&gt; визначені як масиви байтів і тому повинні бути закодовані в base64 у JSON. Наступні приклади використовують &lt;code&gt;curl&lt;/code&gt;, але будь-який HTTP/JSON клієнт повинен працювати так само.&lt;/p&gt;</description></item><item><title>Іменування та виявлення gRPC</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/grpc_naming/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/grpc_naming/</guid><description>&lt;p&gt;etcd надає gRPC резолвер для підтримки альтернативної системи імен, яка отримує точки доступу з etcd для виявлення gRPC сервісів. Основний механізм базується на спостереженні за оновленнями ключів з префіксом імені сервісу.&lt;/p&gt;
&lt;p&gt;Зверніть увагу, що ця функція є експериментальною, оскільки вона залежить від пакунку &lt;a href="https://github.com/grpc/grpc-go/tree/4cedec40eb2ccfbe3f56bb15e894903111ada2d2/resolver"&gt;google.golang.org/grpc/resolver&lt;/a&gt;, який досі є експериментальним у grpc-go.&lt;/p&gt;
&lt;h2 id="using-etcd-discovery-with-go-grpc"&gt;Використання etcd discovery з go-grpc&lt;a class="td-heading-self-link" href="#using-etcd-discovery-with-go-grpc" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Клієнт etcd надає gRPC резолвер для вирішення gRPC точок доступу з бекендом etcd. Резолвер ініціалізується клієнтом etcd:&lt;/p&gt;</description></item><item><title>Вбудовування etcd у застосунок на Go</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/golang_embed_pkg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/golang_embed_pkg/</guid><description>&lt;p&gt;Пакунок &lt;code&gt;embed&lt;/code&gt; Go надає простий спосіб вбудувати сервер etcd прямо у ваш застосунок.&lt;/p&gt;
&lt;p&gt;Для отримання додаткової інформації див. &lt;a href="https://pkg.go.dev/go.etcd.io/etcd/server/v3/embed"&gt;документацію пакунка embed&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Системні обмеження</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/limit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/limit/</guid><description>&lt;h2 id="request-size-limit"&gt;Обмеження розміру запиту&lt;a class="td-heading-self-link" href="#request-size-limit" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;etcd розроблений для обробки невеликих пар ключ-значення, типових для метаданих. Більші запити також працюватимуть, але можуть збільшити затримку інших запитів. Стандартно максимальний розмір будь-якого запиту становить 1.5 MiB. Це обмеження можна налаштувати за допомогою прапорця &lt;code&gt;--max-request-bytes&lt;/code&gt; для сервера etcd.&lt;/p&gt;
&lt;h2 id="storage-size-limit"&gt;Обмеження розміру зберігання&lt;a class="td-heading-self-link" href="#storage-size-limit" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Стандартно обмеження розміру зберігання становить 2 GiB, яке можна налаштувати за допомогою прапорця &lt;code&gt;--quota-backend-bytes&lt;/code&gt;. 8 GiB є рекомендованим максимальним розміром для нормальних середовищ, і etcd попереджає при запуску, якщо налаштоване значення перевищує його.&lt;/p&gt;</description></item><item><title>Функції etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/features/</guid><description>&lt;p&gt;Цей документ надає огляд функцій etcd, щоб допомогти користувачам краще зрозуміти функції та повʼязаний процес їх застарівання. Якщо вас цікавить, як функції розробляються в etcd, будь ласка, перегляньте ці &lt;a href="https://github.com/etcd-io/etcd/blob/main/Documentation/contributor-guide/features.md"&gt;керівні принципи розробки&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Функції etcd поділяються на три стадії: експериментальні, стабільні та небезпечні. Ви можете отримати список функцій, запустивши &lt;code&gt;etcd --help&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="experimental"&gt;Експериментальні&lt;a class="td-heading-self-link" href="#experimental" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Щоб отримати ранній зворотний звʼязок, будь-яка нова функція зазвичай додається як експериментальна. Експериментальну функцію можна визначити за назвою прапорця, яка повинна мати префікс &lt;code&gt;--experimental&lt;/code&gt;. Будь ласка, врахуйте наступні моменти під час використання експериментальної функції:&lt;/p&gt;</description></item><item><title>Довідник API</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_reference_v3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_reference_v3/</guid><description>&lt;p&gt;Ця довідник API автоматично згенерована з вказаних файлів &lt;code&gt;.proto&lt;/code&gt;.&lt;/p&gt;
&lt;h5 id="service-auth-apietcdserverpbrpcproto"&gt;service &lt;code&gt;Auth&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-auth-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;AuthEnable&lt;/td&gt;
 &lt;td&gt;AuthEnableRequest&lt;/td&gt;
 &lt;td&gt;AuthEnableResponse&lt;/td&gt;
 &lt;td&gt;AuthEnable вмикає автентифікацію.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;AuthDisable&lt;/td&gt;
 &lt;td&gt;AuthDisableRequest&lt;/td&gt;
 &lt;td&gt;AuthDisableResponse&lt;/td&gt;
 &lt;td&gt;AuthDisable вимикає автентифікацію.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;AuthStatus&lt;/td&gt;
 &lt;td&gt;AuthStatusRequest&lt;/td&gt;
 &lt;td&gt;AuthStatusResponse&lt;/td&gt;
 &lt;td&gt;AuthStatus показує статус автентифікації.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Authenticate&lt;/td&gt;
 &lt;td&gt;AuthenticateRequest&lt;/td&gt;
 &lt;td&gt;AuthenticateResponse&lt;/td&gt;
 &lt;td&gt;Authenticate обробляє запит автентифікації.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserAdd&lt;/td&gt;
 &lt;td&gt;AuthUserAddRequest&lt;/td&gt;
 &lt;td&gt;AuthUserAddResponse&lt;/td&gt;
 &lt;td&gt;UserAdd додає нового користувача. Імʼя користувача не може бути порожнім.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserGet&lt;/td&gt;
 &lt;td&gt;AuthUserGetRequest&lt;/td&gt;
 &lt;td&gt;AuthUserGetResponse&lt;/td&gt;
 &lt;td&gt;UserGet отримує детальну інформацію про користувача.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserList&lt;/td&gt;
 &lt;td&gt;AuthUserListRequest&lt;/td&gt;
 &lt;td&gt;AuthUserListResponse&lt;/td&gt;
 &lt;td&gt;UserList отримує список всіх користувачів.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserDelete&lt;/td&gt;
 &lt;td&gt;AuthUserDeleteRequest&lt;/td&gt;
 &lt;td&gt;AuthUserDeleteResponse&lt;/td&gt;
 &lt;td&gt;UserDelete видаляє вказаного користувача.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserChangePassword&lt;/td&gt;
 &lt;td&gt;AuthUserChangePasswordRequest&lt;/td&gt;
 &lt;td&gt;AuthUserChangePasswordResponse&lt;/td&gt;
 &lt;td&gt;UserChangePassword змінює пароль вказаного користувача.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserGrantRole&lt;/td&gt;
 &lt;td&gt;AuthUserGrantRoleRequest&lt;/td&gt;
 &lt;td&gt;AuthUserGrantRoleResponse&lt;/td&gt;
 &lt;td&gt;UserGrant надає роль вказаному користувачу.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;UserRevokeRole&lt;/td&gt;
 &lt;td&gt;AuthUserRevokeRoleRequest&lt;/td&gt;
 &lt;td&gt;AuthUserRevokeRoleResponse&lt;/td&gt;
 &lt;td&gt;UserRevokeRole відкликає роль вказаного користувача.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleAdd&lt;/td&gt;
 &lt;td&gt;AuthRoleAddRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleAddResponse&lt;/td&gt;
 &lt;td&gt;RoleAdd додає нову роль. Імʼя ролі не може бути порожнім.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleGet&lt;/td&gt;
 &lt;td&gt;AuthRoleGetRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleGetResponse&lt;/td&gt;
 &lt;td&gt;RoleGet отримує детальну інформацію про роль.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleList&lt;/td&gt;
 &lt;td&gt;AuthRoleListRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleListResponse&lt;/td&gt;
 &lt;td&gt;RoleList отримує список всіх ролей.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleDelete&lt;/td&gt;
 &lt;td&gt;AuthRoleDeleteRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleDeleteResponse&lt;/td&gt;
 &lt;td&gt;RoleDelete видаляє вказану роль.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleGrantPermission&lt;/td&gt;
 &lt;td&gt;AuthRoleGrantPermissionRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleGrantPermissionResponse&lt;/td&gt;
 &lt;td&gt;RoleGrantPermission надає дозвіл на вказаний ключ або діапазон вказаній ролі.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;RoleRevokePermission&lt;/td&gt;
 &lt;td&gt;AuthRoleRevokePermissionRequest&lt;/td&gt;
 &lt;td&gt;AuthRoleRevokePermissionResponse&lt;/td&gt;
 &lt;td&gt;RoleRevokePermission відкликає дозвіл на ключ або діапазон вказаної ролі.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-cluster-apietcdserverpbrpcproto"&gt;service &lt;code&gt;Cluster&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-cluster-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;MemberAdd&lt;/td&gt;
 &lt;td&gt;MemberAddRequest&lt;/td&gt;
 &lt;td&gt;MemberAddResponse&lt;/td&gt;
 &lt;td&gt;MemberAdd додає учасника до кластера.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MemberRemove&lt;/td&gt;
 &lt;td&gt;MemberRemoveRequest&lt;/td&gt;
 &lt;td&gt;MemberRemoveResponse&lt;/td&gt;
 &lt;td&gt;MemberRemove видаляє існуючого учасника з кластера.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MemberUpdate&lt;/td&gt;
 &lt;td&gt;MemberUpdateRequest&lt;/td&gt;
 &lt;td&gt;MemberUpdateResponse&lt;/td&gt;
 &lt;td&gt;MemberUpdate оновлює конфігурацію учасника.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MemberList&lt;/td&gt;
 &lt;td&gt;MemberListRequest&lt;/td&gt;
 &lt;td&gt;MemberListResponse&lt;/td&gt;
 &lt;td&gt;MemberList показує всіх учасників кластера.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MemberPromote&lt;/td&gt;
 &lt;td&gt;MemberPromoteRequest&lt;/td&gt;
 &lt;td&gt;MemberPromoteResponse&lt;/td&gt;
 &lt;td&gt;MemberPromote підвищує учасника з raft learner (без права голосу) до raft учасника з правом голосу.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-kv-apietcdserverpbrpcproto"&gt;service &lt;code&gt;KV&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-kv-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Range&lt;/td&gt;
 &lt;td&gt;RangeRequest&lt;/td&gt;
 &lt;td&gt;RangeResponse&lt;/td&gt;
 &lt;td&gt;Range отримує ключі в діапазоні з сховища ключ-значення.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Put&lt;/td&gt;
 &lt;td&gt;PutRequest&lt;/td&gt;
 &lt;td&gt;PutResponse&lt;/td&gt;
 &lt;td&gt;Put вставляє вказаний ключ у сховище ключ-значення. Запит на вставку збільшує ревізію сховища ключ-значення і генерує одну подію в історії подій.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;DeleteRange&lt;/td&gt;
 &lt;td&gt;DeleteRangeRequest&lt;/td&gt;
 &lt;td&gt;DeleteRangeResponse&lt;/td&gt;
 &lt;td&gt;DeleteRange видаляє вказаний діапазон зі сховища ключ-значення. Запит на видалення збільшує ревізію сховища ключ-значення і генерує подію видалення в історії подій для кожного видаленого ключа.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Txn&lt;/td&gt;
 &lt;td&gt;TxnRequest&lt;/td&gt;
 &lt;td&gt;TxnResponse&lt;/td&gt;
 &lt;td&gt;Txn обробляє кілька запитів в одній транзакції. Запит на транзакцію збільшує ревізію сховища ключ-значення і генерує події з тією ж ревізією для кожного завершеного запиту. Не дозволяється змінювати один і той самий ключ кілька разів в одній транзакції.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Compact&lt;/td&gt;
 &lt;td&gt;CompactionRequest&lt;/td&gt;
 &lt;td&gt;CompactionResponse&lt;/td&gt;
 &lt;td&gt;Compact стискає історію подій у сховищі ключ-значення etcd. Сховище ключ-значення повинно періодично стискатися, інакше історія подій буде рости нескінченно.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-lease-apietcdserverpbrpcproto"&gt;service &lt;code&gt;Lease&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-lease-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;LeaseGrant&lt;/td&gt;
 &lt;td&gt;LeaseGrantRequest&lt;/td&gt;
 &lt;td&gt;LeaseGrantResponse&lt;/td&gt;
 &lt;td&gt;LeaseGrant створює лізинг, який закінчується, якщо сервер не отримує keepAlive протягом заданого періоду часу. Всі ключі, прикріплені до лізингу, будуть видалені після закінчення терміну дії лізингу. Кожен видалений ключ генерує подію видалення в історії подій.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LeaseRevoke&lt;/td&gt;
 &lt;td&gt;LeaseRevokeRequest&lt;/td&gt;
 &lt;td&gt;LeaseRevokeResponse&lt;/td&gt;
 &lt;td&gt;LeaseRevoke відкликає лізинг. Всі ключі, прикріплені до лізингу, будуть видалені.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LeaseKeepAlive&lt;/td&gt;
 &lt;td&gt;LeaseKeepAliveRequest&lt;/td&gt;
 &lt;td&gt;LeaseKeepAliveResponse&lt;/td&gt;
 &lt;td&gt;LeaseKeepAlive підтримує лізинг активним, передаючи запити keep alive від клієнта до сервера і відповіді keep alive від сервера до клієнта.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LeaseTimeToLive&lt;/td&gt;
 &lt;td&gt;LeaseTimeToLiveRequest&lt;/td&gt;
 &lt;td&gt;LeaseTimeToLiveResponse&lt;/td&gt;
 &lt;td&gt;LeaseTimeToLive отримує інформацію про лізинг.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;LeaseLeases&lt;/td&gt;
 &lt;td&gt;LeaseLeasesRequest&lt;/td&gt;
 &lt;td&gt;LeaseLeasesResponse&lt;/td&gt;
 &lt;td&gt;LeaseLeases показує всі існуючі лізинги.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-maintenance-apietcdserverpbrpcproto"&gt;service &lt;code&gt;Maintenance&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-maintenance-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Alarm&lt;/td&gt;
 &lt;td&gt;AlarmRequest&lt;/td&gt;
 &lt;td&gt;AlarmResponse&lt;/td&gt;
 &lt;td&gt;Alarm активує, деактивує та запитує тривоги щодо справності кластера.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Status&lt;/td&gt;
 &lt;td&gt;StatusRequest&lt;/td&gt;
 &lt;td&gt;StatusResponse&lt;/td&gt;
 &lt;td&gt;Status отримує статус учасника.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Defragment&lt;/td&gt;
 &lt;td&gt;DefragmentRequest&lt;/td&gt;
 &lt;td&gt;DefragmentResponse&lt;/td&gt;
 &lt;td&gt;Defragment дефрагментує бекенд бази даних учасника для відновлення місця для зберігання.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Hash&lt;/td&gt;
 &lt;td&gt;HashRequest&lt;/td&gt;
 &lt;td&gt;HashResponse&lt;/td&gt;
 &lt;td&gt;Hash обчислює хеш всього бекенду ключового простору, включаючи ключі, лізинги та інші сегменти в сховищі. Це призначено ТІЛЬКИ для тестування! Не покладайтеся на це у промисловій експлуатації з поточними транзакціями, оскільки операція Hash не утримує блокування MVCC. Використовуйте API &amp;ldquo;HashKV&amp;rdquo; замість цього для перевірки узгодженості сегмента &amp;ldquo;ключ&amp;rdquo;.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;HashKV&lt;/td&gt;
 &lt;td&gt;HashKVRequest&lt;/td&gt;
 &lt;td&gt;HashKVResponse&lt;/td&gt;
 &lt;td&gt;HashKV обчислює хеш всіх ключів MVCC до вказаної ревізії. Він ітерує тільки сегмент &amp;ldquo;ключ&amp;rdquo; в бекенді сховища.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Snapshot&lt;/td&gt;
 &lt;td&gt;SnapshotRequest&lt;/td&gt;
 &lt;td&gt;SnapshotResponse&lt;/td&gt;
 &lt;td&gt;Snapshot надсилає знімок всього бекенду від учасника через потік до клієнта.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MoveLeader&lt;/td&gt;
 &lt;td&gt;MoveLeaderRequest&lt;/td&gt;
 &lt;td&gt;MoveLeaderResponse&lt;/td&gt;
 &lt;td&gt;MoveLeader запитує поточного лідера вузла передати своє лідерство іншому вузлу.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Downgrade&lt;/td&gt;
 &lt;td&gt;DowngradeRequest&lt;/td&gt;
 &lt;td&gt;DowngradeResponse&lt;/td&gt;
 &lt;td&gt;Downgrade запитує зниження, перевіряє можливість або скасовує зниження версії кластера. Підтримується з версії etcd 3.5.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-watch-apietcdserverpbrpcproto"&gt;service &lt;code&gt;Watch&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#service-watch-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Watch&lt;/td&gt;
 &lt;td&gt;WatchRequest&lt;/td&gt;
 &lt;td&gt;WatchResponse&lt;/td&gt;
 &lt;td&gt;Watch спостерігає за подіями, що відбуваються або вже відбулися. Вхідний і вихідний потоки; вхідний потік створює і скасовує спостерігачів, а вихідний потік надсилає події. Один запит на спостереження може спостерігати за кількома діапазонами ключів, передаючи події для кількох спостережень одночасно. Вся історія подій може бути переглянута, починаючи з останньої ревізії стиснення.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-alarmmember-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AlarmMember&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-alarmmember-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;memberID&lt;/td&gt;
 &lt;td&gt;memberID - це ID учасника, повʼязаного з піднятою тривогою.&lt;/td&gt;
 &lt;td&gt;uint64&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;alarm&lt;/td&gt;
 &lt;td&gt;alarm - це тип тривоги, яка була піднята.&lt;/td&gt;
 &lt;td&gt;AlarmType&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-alarmrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AlarmRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-alarmrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;action&lt;/td&gt;
 &lt;td&gt;action - це тип запиту на тривогу. Дія може бути GET для отримання статусів тривог, ACTIVATE для активації тривоги або DEACTIVATE для деактивації піднятої тривоги.&lt;/td&gt;
 &lt;td&gt;AlarmAction&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;memberID&lt;/td&gt;
 &lt;td&gt;memberID - це ID учасника, повʼязаного з тривогою. Якщо memberID дорівнює 0, запит на тривогу охоплює всіх учасників.&lt;/td&gt;
 &lt;td&gt;uint64&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;alarm&lt;/td&gt;
 &lt;td&gt;alarm - це тип тривоги, яку слід розглянути для цього запиту.&lt;/td&gt;
 &lt;td&gt;AlarmType&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-alarmresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AlarmResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-alarmresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;alarms&lt;/td&gt;
 &lt;td&gt;alarms - це список тривог, повʼязаних із запитом на тривогу.&lt;/td&gt;
 &lt;td&gt;(slice of) AlarmMember&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authdisablerequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthDisableRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authdisablerequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authdisableresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthDisableResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authdisableresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authenablerequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthEnableRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authenablerequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authenableresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthEnableResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authenableresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authroleaddrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleAddRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authroleaddrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;name - це імʼя ролі, яку потрібно додати до системи автентифікації.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authroleaddresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleAddResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authroleaddresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authroledeleterequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleDeleteRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authroledeleterequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;role&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authroledeleteresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleDeleteResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authroledeleteresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolegetrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleGetRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolegetrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;role&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolegetresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleGetResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolegetresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;perm&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;(slice of) authpb.Permission&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolegrantpermissionrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleGrantPermissionRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolegrantpermissionrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;name - це імʼя ролі, якій буде надано дозвіл.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;perm&lt;/td&gt;
 &lt;td&gt;perm - це дозвіл, який буде надано ролі.&lt;/td&gt;
 &lt;td&gt;authpb.Permission&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolegrantpermissionresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleGrantPermissionResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolegrantpermissionresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolelistrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleListRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolelistrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolelistresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleListResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolelistresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;roles&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;(slice of) string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolerevokepermissionrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleRevokePermissionRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolerevokepermissionrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;role&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;key&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;bytes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;range_end&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;bytes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authrolerevokepermissionresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthRoleRevokePermissionResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authrolerevokepermissionresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authstatusrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthStatusRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authstatusrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authstatusresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthStatusResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authstatusresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;enabled&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;bool&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;authRevision&lt;/td&gt;
 &lt;td&gt;authRevision - це поточна ревізія сховища автентифікації&lt;/td&gt;
 &lt;td&gt;uint64&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuseraddrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserAddRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuseraddrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;password&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;options&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;authpb.UserAddOptions&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;hashedPassword&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuseraddresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserAddResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuseraddresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserchangepasswordrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserChangePasswordRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserchangepasswordrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;name - це імʼя користувача, пароль якого змінюється.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;password&lt;/td&gt;
 &lt;td&gt;password - це новий пароль для користувача. Зверніть увагу, що це поле буде видалено на рівні API.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;hashedPassword&lt;/td&gt;
 &lt;td&gt;hashedPassword - це новий пароль для користувача. Зверніть увагу, що це поле буде ініціалізовано на рівні API.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserchangepasswordresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserChangePasswordResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserchangepasswordresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserdeleterequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserDeleteRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserdeleterequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;name - це імʼя користувача, якого потрібно видалити.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserdeleteresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserDeleteResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserdeleteresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authusergetrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserGetRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authusergetrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authusergetresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserGetResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authusergetresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;roles&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;(slice of) string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authusergrantrolerequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserGrantRoleRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authusergrantrolerequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;user&lt;/td&gt;
 &lt;td&gt;user - це імʼя користувача, якому слід надати вказану роль.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;role&lt;/td&gt;
 &lt;td&gt;role - це імʼя ролі, яку слід надати користувачу.&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authusergrantroleresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserGrantRoleResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authusergrantroleresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserlistrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserListRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserlistrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserlistresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserListResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserlistresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;users&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;(slice of) string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserrevokerolerequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserRevokeRoleRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserrevokerolerequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;role&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authuserrevokeroleresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthUserRevokeRoleResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authuserrevokeroleresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authenticaterequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthenticateRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authenticaterequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;password&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-authenticateresponse-apietcdserverpbrpcproto"&gt;message &lt;code&gt;AuthenticateResponse&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-authenticateresponse-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;(versionpb.etcd_version_msg)&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;option&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;token&lt;/td&gt;
 &lt;td&gt;token - це авторизований токен, який можна використовувати в наступних RPC&lt;/td&gt;
 &lt;td&gt;string&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-compactionrequest-apietcdserverpbrpcproto"&gt;message &lt;code&gt;CompactionRequest&lt;/code&gt; (api/etcdserverpb/rpc.proto)&lt;a class="td-heading-self-link" href="#message-compactionrequest-apietcdserverpbrpcproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;CompactionRequest стискає сховище ключ-значення до вказаної ревізії. Всі замінені ключі з ревізією менше ревізії стиснення будуть видалені.&lt;/p&gt;</description></item><item><title>Довідник API: паралельність</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_concurrency_reference_v3/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/api_concurrency_reference_v3/</guid><description>&lt;p&gt;Ця довідка API автоматично згенерована з вказаних файлів &lt;code&gt;.proto&lt;/code&gt;.&lt;/p&gt;
&lt;h5 id="service-lock-serveretcdserverapiv3lockv3lockpbv3lockproto"&gt;service &lt;code&gt;Lock&lt;/code&gt; (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)&lt;a class="td-heading-self-link" href="#service-lock-serveretcdserverapiv3lockv3lockpbv3lockproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Сервіс блокування надає клієнтські засоби блокування як інтерфейс gRPC.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Метод&lt;/th&gt;
 &lt;th&gt;Тип запиту&lt;/th&gt;
 &lt;th&gt;Тип відповіді&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Lock&lt;/td&gt;
 &lt;td&gt;LockRequest&lt;/td&gt;
 &lt;td&gt;LockResponse&lt;/td&gt;
 &lt;td&gt;Lock отримує розподілений спільний блок на вказаному іменованому блоці. У разі успіху, він поверне унікальний ключ, який існує, поки блок утримується викликачем. Цей ключ можна використовувати разом з транзакціями, щоб безпечно забезпечити оновлення до etcd лише під час утримання блоку. Блок утримується до виклику Unlock на ключі або до закінчення терміну дії оренди, повʼязаної з власником.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Unlock&lt;/td&gt;
 &lt;td&gt;UnlockRequest&lt;/td&gt;
 &lt;td&gt;UnlockResponse&lt;/td&gt;
 &lt;td&gt;Unlock приймає ключ, повернутий Lock, і звільняє утримання блоку. Наступний викликач Lock, який чекає на блок, буде розбуджений і отримає право власності на блок.&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-lockrequest-serveretcdserverapiv3lockv3lockpbv3lockproto"&gt;message &lt;code&gt;LockRequest&lt;/code&gt; (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)&lt;a class="td-heading-self-link" href="#message-lockrequest-serveretcdserverapiv3lockv3lockpbv3lockproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;name&lt;/td&gt;
 &lt;td&gt;name є ідентифікатором для розподіленого спільного блоку, який потрібно отримати.&lt;/td&gt;
 &lt;td&gt;bytes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;lease&lt;/td&gt;
 &lt;td&gt;lease є ID оренди, яка буде прикріплена до права власності на блок. Якщо оренда закінчується або відкликається і наразі утримує блок, блок автоматично звільняється. Виклики до Lock з тією ж орендою будуть розглядатися як одне отримання; блокування двічі з тією ж орендою є бездіяльністю.&lt;/td&gt;
 &lt;td&gt;int64&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-lockresponse-serveretcdserverapiv3lockv3lockpbv3lockproto"&gt;message &lt;code&gt;LockResponse&lt;/code&gt; (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)&lt;a class="td-heading-self-link" href="#message-lockresponse-serveretcdserverapiv3lockv3lockpbv3lockproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;etcdserverpb.ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;key&lt;/td&gt;
 &lt;td&gt;key є ключем, який існуватиме в etcd протягом часу, коли викликач Lock утримує блок. Користувачі не повинні змінювати цей ключ, інакше блок може проявляти невизначену поведінку.&lt;/td&gt;
 &lt;td&gt;bytes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-unlockrequest-serveretcdserverapiv3lockv3lockpbv3lockproto"&gt;message &lt;code&gt;UnlockRequest&lt;/code&gt; (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)&lt;a class="td-heading-self-link" href="#message-unlockrequest-serveretcdserverapiv3lockv3lockpbv3lockproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;key&lt;/td&gt;
 &lt;td&gt;key є ключем права власності на блок, наданим Lock.&lt;/td&gt;
 &lt;td&gt;bytes&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="message-unlockresponse-serveretcdserverapiv3lockv3lockpbv3lockproto"&gt;message &lt;code&gt;UnlockResponse&lt;/code&gt; (server/etcdserver/api/v3lock/v3lockpb/v3lock.proto)&lt;a class="td-heading-self-link" href="#message-unlockresponse-serveretcdserverapiv3lockv3lockpbv3lockproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Поле&lt;/th&gt;
 &lt;th&gt;Опис&lt;/th&gt;
 &lt;th&gt;Тип&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;header&lt;/td&gt;
 &lt;td&gt;&lt;/td&gt;
 &lt;td&gt;etcdserverpb.ResponseHeader&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h5 id="service-election-serveretcdserverapiv3electionv3electionpbv3electionproto"&gt;service &lt;code&gt;Election&lt;/code&gt; (server/etcdserver/api/v3election/v3electionpb/v3election.proto)&lt;a class="td-heading-self-link" href="#service-election-serveretcdserverapiv3electionv3electionpbv3electionproto" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h5&gt;
&lt;p&gt;Сервіс виборів надає клієнтські засоби виборів як інтерфейс gRPC.&lt;/p&gt;</description></item></channel></rss>