commit cb796ef6506cf6bf04ef1a7f18fee4c76286fccb
Author: qiwang <1364512070@qq.com>
Date: Sun Oct 8 17:30:35 2023 +0800
fix:提交openstack代码
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..f332044
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/pcm-participant-openstack.iml b/.idea/pcm-participant-openstack.iml
new file mode 100644
index 0000000..5e764c4
--- /dev/null
+++ b/.idea/pcm-participant-openstack.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..137069b
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,73 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+ (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed 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.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..9d856ca
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,5 @@
+rpc-gen:
+ goctl rpc protoc ./pb/*.proto --go_out=./ --go-grpc_out=./ --zrpc_out=.
+
+pcm-participant-openstack:
+ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o pcm-participant-openstack openstack.go
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7731834
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+# pcm-participant-openstack
diff --git a/etc/pcmopenstack.yaml b/etc/pcmopenstack.yaml
new file mode 100644
index 0000000..89533a4
--- /dev/null
+++ b/etc/pcmopenstack.yaml
@@ -0,0 +1,15 @@
+NacosConfig:
+ DataId: pcm-openstack-rpc.yaml
+ Group: DEFAULT_GROUP
+ ServerConfigs:
+ # - IpAddr: 127.0.0.1
+ # Port: 8848
+ - IpAddr: 10.101.15.7
+ Port: 8848
+ ClientConfig:
+ NamespaceId: storage
+ TimeoutMs: 5000
+ NotLoadCacheAtStart: true
+ LogDir:
+ CacheDir:
+ LogLevel: debug
\ No newline at end of file
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..9ca79c0
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,112 @@
+module gitlink.org.cn/jcce-pcm/pcm-participant-openstack
+
+go 1.19
+
+require (
+ github.com/prometheus/client_golang v1.16.0
+ github.com/prometheus/common v0.44.0
+ github.com/robfig/cron/v3 v3.0.1
+ github.com/zeromicro/go-zero v1.5.5
+ gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7
+ gitlink.org.cn/jcce-pcm/utils v0.0.2
+ google.golang.org/grpc v1.57.0
+ google.golang.org/protobuf v1.31.0
+ k8s.io/apimachinery v0.27.3
+ k8s.io/client-go v0.26.3
+)
+
+require (
+ github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c // indirect
+ github.com/Masterminds/squirrel v1.5.4 // indirect
+ github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 // indirect
+ github.com/beorn7/perks v1.0.1 // indirect
+ github.com/buger/jsonparser v1.1.1 // indirect
+ github.com/bwmarrin/snowflake v0.3.0 // indirect
+ github.com/cenkalti/backoff/v4 v4.2.0 // indirect
+ github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/coreos/go-semver v0.3.1 // indirect
+ github.com/coreos/go-systemd/v22 v22.5.0 // indirect
+ github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
+ github.com/emicklei/go-restful/v3 v3.9.0 // indirect
+ github.com/fatih/color v1.15.0 // indirect
+ github.com/fsnotify/fsnotify v1.6.0 // indirect
+ github.com/go-logr/logr v1.2.3 // indirect
+ github.com/go-logr/stdr v1.2.2 // indirect
+ github.com/go-openapi/jsonpointer v0.19.6 // indirect
+ github.com/go-openapi/jsonreference v0.20.1 // indirect
+ github.com/go-openapi/swag v0.22.3 // indirect
+ github.com/go-redis/redis/v8 v8.11.5 // indirect
+ github.com/go-resty/resty/v2 v2.7.0 // indirect
+ github.com/go-sql-driver/mysql v1.7.1 // indirect
+ github.com/gogo/protobuf v1.3.2 // indirect
+ github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
+ github.com/golang/mock v1.6.0 // indirect
+ github.com/golang/protobuf v1.5.3 // indirect
+ github.com/google/gnostic v0.5.7-v3refs // indirect
+ github.com/google/go-cmp v0.5.9 // indirect
+ github.com/google/gofuzz v1.2.0 // indirect
+ github.com/google/uuid v1.3.0 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 // indirect
+ github.com/jinzhu/copier v0.3.5 // indirect
+ github.com/jmespath/go-jmespath v0.4.0 // indirect
+ github.com/josharian/intern v1.0.0 // indirect
+ github.com/json-iterator/go v1.1.12 // indirect
+ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
+ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
+ github.com/mailru/easyjson v0.7.7 // indirect
+ github.com/mattn/go-colorable v0.1.13 // indirect
+ github.com/mattn/go-isatty v0.0.17 // indirect
+ github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
+ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
+ github.com/modern-go/reflect2 v1.0.2 // indirect
+ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
+ github.com/nacos-group/nacos-sdk-go/v2 v2.2.1 // indirect
+ github.com/openzipkin/zipkin-go v0.4.1 // indirect
+ github.com/pelletier/go-toml/v2 v2.0.9 // indirect
+ github.com/pkg/errors v0.9.1 // indirect
+ github.com/prometheus/client_model v0.4.0 // indirect
+ github.com/prometheus/procfs v0.10.1 // indirect
+ github.com/spaolacci/murmur3 v1.1.0 // indirect
+ go.etcd.io/etcd/api/v3 v3.5.9 // indirect
+ go.etcd.io/etcd/client/pkg/v3 v3.5.9 // indirect
+ go.etcd.io/etcd/client/v3 v3.5.9 // indirect
+ go.opentelemetry.io/otel v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/jaeger v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/zipkin v1.14.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.14.0 // indirect
+ go.opentelemetry.io/otel/trace v1.14.0 // indirect
+ go.opentelemetry.io/proto/otlp v0.19.0 // indirect
+ go.uber.org/atomic v1.10.0 // indirect
+ go.uber.org/automaxprocs v1.5.3 // indirect
+ go.uber.org/multierr v1.9.0 // indirect
+ go.uber.org/zap v1.24.0 // indirect
+ golang.org/x/net v0.14.0 // indirect
+ golang.org/x/oauth2 v0.8.0 // indirect
+ golang.org/x/sync v0.2.0 // indirect
+ golang.org/x/sys v0.11.0 // indirect
+ golang.org/x/term v0.11.0 // indirect
+ golang.org/x/text v0.12.0 // indirect
+ golang.org/x/time v0.3.0 // indirect
+ google.golang.org/appengine v1.6.7 // indirect
+ google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 // indirect
+ gopkg.in/inf.v0 v0.9.1 // indirect
+ gopkg.in/ini.v1 v1.66.2 // indirect
+ gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
+ gopkg.in/yaml.v2 v2.4.0 // indirect
+ gopkg.in/yaml.v3 v3.0.1 // indirect
+ k8s.io/api v0.26.3 // indirect
+ k8s.io/klog/v2 v2.90.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect
+ k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
+ sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
+ sigs.k8s.io/yaml v1.3.0 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..8ebb220
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,1681 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
+cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
+cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
+cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
+cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
+cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
+cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4=
+cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M=
+cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc=
+cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
+cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
+cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
+cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
+cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI=
+cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk=
+cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY=
+cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg=
+cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8=
+cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0=
+cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY=
+cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM=
+cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY=
+cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ=
+cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI=
+cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4=
+cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc=
+cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA=
+cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U=
+cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A=
+cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc=
+cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU=
+cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA=
+cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM=
+cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I=
+cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4=
+cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw=
+cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o=
+cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE=
+cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw=
+cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY=
+cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg=
+cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI=
+cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4=
+cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk=
+cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc=
+cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc=
+cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04=
+cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno=
+cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak=
+cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4=
+cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0=
+cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ=
+cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk=
+cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0=
+cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc=
+cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o=
+cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s=
+cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0=
+cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ=
+cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY=
+cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY=
+cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw=
+cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI=
+cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo=
+cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0=
+cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0=
+cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8=
+cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8=
+cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM=
+cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc=
+cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI=
+cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE=
+cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE=
+cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4=
+cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8=
+cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
+cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
+cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
+cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
+cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
+cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
+cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA=
+cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw=
+cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc=
+cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY=
+cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s=
+cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI=
+cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y=
+cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM=
+cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI=
+cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0=
+cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk=
+cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg=
+cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590=
+cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk=
+cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk=
+cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U=
+cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA=
+cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM=
+cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk=
+cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY=
+cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI=
+cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4=
+cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI=
+cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow=
+cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM=
+cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M=
+cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s=
+cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU=
+cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U=
+cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU=
+cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
+cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU=
+cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE=
+cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo=
+cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA=
+cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU=
+cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
+cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
+cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
+cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY=
+cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck=
+cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg=
+cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo=
+cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I=
+cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4=
+cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0=
+cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs=
+cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc=
+cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE=
+cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM=
+cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM=
+cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ=
+cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo=
+cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE=
+cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0=
+cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38=
+cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w=
+cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I=
+cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ=
+cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA=
+cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A=
+cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s=
+cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI=
+cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo=
+cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA=
+cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
+cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
+cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM=
+cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo=
+cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ=
+cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g=
+cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4=
+cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c=
+cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s=
+cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4=
+cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0=
+cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8=
+cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek=
+cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0=
+cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM=
+cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q=
+cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU=
+cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU=
+cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k=
+cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4=
+cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y=
+cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg=
+cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk=
+cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w=
+cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU=
+cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI=
+cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8=
+cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc=
+cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw=
+cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w=
+cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI=
+cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE=
+cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk=
+cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg=
+cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY=
+cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08=
+cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM=
+cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA=
+cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w=
+cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM=
+cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60=
+cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo=
+cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o=
+cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A=
+cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0=
+cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0=
+cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA=
+cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI=
+cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc=
+cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM=
+cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o=
+cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c=
+cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY=
+cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc=
+cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc=
+cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg=
+cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE=
+cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc=
+cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A=
+cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM=
+cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY=
+cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs=
+cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g=
+cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA=
+cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg=
+cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0=
+cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic=
+cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI=
+cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE=
+cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8=
+cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8=
+cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08=
+cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw=
+cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE=
+cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc=
+cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE=
+cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM=
+cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI=
+cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4=
+cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w=
+cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE=
+cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM=
+cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA=
+cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY=
+cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY=
+cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s=
+cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8=
+cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI=
+cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk=
+cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4=
+cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA=
+cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o=
+cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM=
+cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8=
+cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8=
+cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4=
+cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ=
+cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU=
+cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY=
+cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34=
+cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA=
+cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0=
+cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4=
+cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs=
+cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA=
+cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk=
+cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE=
+cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc=
+cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs=
+cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg=
+cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo=
+cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw=
+cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E=
+cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU=
+cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70=
+cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo=
+cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0=
+cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA=
+cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg=
+cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE=
+cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0=
+cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI=
+cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
+cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
+cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
+cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
+cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI=
+cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0=
+cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg=
+cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4=
+cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o=
+cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk=
+cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo=
+cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE=
+cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U=
+cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg=
+cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4=
+cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg=
+cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c=
+cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs=
+cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70=
+cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y=
+cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A=
+cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA=
+cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM=
+cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA=
+cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0=
+cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU=
+cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg=
+cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4=
+cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY=
+cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc=
+cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y=
+cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do=
+cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo=
+cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s=
+cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI=
+cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk=
+cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44=
+cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA=
+cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4=
+cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4=
+cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4=
+cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0=
+cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU=
+cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q=
+cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA=
+cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU=
+cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc=
+cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk=
+cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk=
+cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU=
+cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s=
+cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs=
+cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg=
+cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4=
+cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U=
+cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco=
+cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo=
+cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E=
+cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU=
+cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4=
+cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw=
+cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos=
+cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM=
+cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ=
+cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0=
+cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco=
+cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
+cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
+cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
+cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
+cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
+cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo=
+cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y=
+cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc=
+cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s=
+cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w=
+cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I=
+cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw=
+cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g=
+cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM=
+cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA=
+cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8=
+cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4=
+cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ=
+cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg=
+cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28=
+cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y=
+cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs=
+cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg=
+cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk=
+cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw=
+cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU=
+cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4=
+cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M=
+cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU=
+cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0=
+cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo=
+cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo=
+cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY=
+cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E=
+cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE=
+cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g=
+cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208=
+cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w=
+cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8=
+cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE=
+cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg=
+cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc=
+cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A=
+cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo=
+cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ=
+cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0=
+cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M=
+cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M=
+cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA=
+dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/BurntSushi/toml v1.1.0 h1:ksErzDEI1khOiGPgpwuI7x2ebx/uXQNw7xJpn9Eq1+I=
+github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
+github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
+github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
+github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
+github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c h1:qoPu5FeE6dsvZ7AmH/l3Y5RxrJPNVKvsQSrjQpWUCMQ=
+github.com/JCCE-nudt/zero-contrib/zrpc/registry/nacos v0.0.0-20230419021610-13bbc83fbc3c/go.mod h1:GuCS4be9IH3bSBTvbzz34nszPQDO33PIOv5nviEaFMw=
+github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM=
+github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10=
+github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
+github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/Shopify/sarama v1.37.2/go.mod h1:Nxye/E+YPru//Bpaorfhc3JsSGYwCaDDj+R4bK52U5o=
+github.com/Shopify/toxiproxy/v2 v2.5.0/go.mod h1:yhM2epWtAmel9CB8r2+L+PCmhH6yH2pITaPAo7jxJl0=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
+github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZpUGpz5+4FfNmIU+FmZg2P3Xaj2v2bfNWmk=
+github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc=
+github.com/alicebob/miniredis/v2 v2.30.1/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg=
+github.com/alicebob/miniredis/v2 v2.30.5 h1:3r6kTHdKnuP4fkS8k2IrvSfxpxUTcW1SOL0wN7b7Dt0=
+github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704 h1:PpfENOj/vPfhhy9N2OFRjpue0hjM5XqAp2thFmkXXIk=
+github.com/aliyun/alibaba-cloud-sdk-go v1.61.1704/go.mod h1:RcDobYh8k5VP6TNybz9m++gL3ijVI5wueVr0EM10VsU=
+github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
+github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
+github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
+github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=
+github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
+github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
+github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
+github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4=
+github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw=
+github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
+github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
+github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
+github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
+github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
+github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
+github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
+github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
+github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
+github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
+github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
+github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
+github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/eapache/go-resiliency v1.3.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho=
+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
+github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
+github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
+github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/emicklei/go-restful/v3 v3.9.0 h1:XwGDlfxEnQZzuopoqxwSEllNcCOM9DhhFyhFIIGKwxE=
+github.com/emicklei/go-restful/v3 v3.9.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
+github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
+github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
+github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
+github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
+github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
+github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo=
+github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w=
+github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
+github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs=
+github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw=
+github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw=
+github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
+github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
+github.com/fullstorydev/grpcurl v1.8.7/go.mod h1:pVtM4qe3CMoLaIzYS8uvTuDj2jVYmXqMUkZeijnXp/E=
+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
+github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
+github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
+github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
+github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
+github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
+github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
+github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
+github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
+github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE=
+github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
+github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
+github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo=
+github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8=
+github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
+github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ=
+github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g=
+github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
+github.com/go-redis/redis/v8 v8.11.5 h1:AcZZR7igkdvfVmQTPnu9WE37LRrO/YrBH5zWyjDC0oI=
+github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo=
+github.com/go-resty/resty/v2 v2.7.0 h1:me+K9p3uhSmXtrBZ4k9jcEAfJmuC8IivWHwaLZwPrFY=
+github.com/go-resty/resty/v2 v2.7.0/go.mod h1:9PWDzw47qPphMRFfhsyk0NnSgvluHcljSMVIq3w7q0I=
+github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrtU8EI=
+github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
+github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
+github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
+github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
+github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
+github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
+github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
+github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
+github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
+github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
+github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
+github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc=
+github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk=
+github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
+github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA=
+github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs=
+github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w=
+github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
+github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
+github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
+github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
+github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
+github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
+github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
+github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
+github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
+github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
+github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
+github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
+github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
+github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y=
+github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg=
+github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
+github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
+github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8=
+github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg=
+github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
+github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0=
+github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM=
+github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM=
+github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM=
+github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c=
+github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo=
+github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY=
+github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8=
+github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4=
+github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g=
+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
+github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
+github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
+github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
+github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0 h1:1JYBfzqrWPcCclBwxFCPAou9n+q86mfnu7NAeHfte7A=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.0/go.mod h1:YDZoGHuwE+ov0c8smSH49WLF3F2LaWnYYuDVd+EWrc0=
+github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
+github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplbc8s8sSb3V2oUCygFHVp8gC3Dn6U4MNI=
+github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
+github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM=
+github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
+github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w=
+github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
+github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
+github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
+github.com/jackc/puddle/v2 v2.2.0/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
+github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs=
+github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM=
+github.com/jcmturner/gofork v1.7.6/go.mod h1:1622LH6i/EZqLloHfE7IeZ0uEJwMSUyQ/nDd82IeqRo=
+github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg=
+github.com/jcmturner/gokrb5/v8 v8.4.3/go.mod h1:dqRwJGXznQrzw6cWmyo6kH+E7jksEQG/CyVWsJEsJO0=
+github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
+github.com/jhump/gopoet v0.0.0-20190322174617-17282ff210b3/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
+github.com/jhump/gopoet v0.1.0/go.mod h1:me9yfT6IJSlOL3FCfrg+L6yzUEZ+5jW6WHt4Sk+UPUI=
+github.com/jhump/goprotoc v0.5.0/go.mod h1:VrbvcYrQOrTi3i0Vf+m+oqQWk9l72mjkJCYo7UvLHRQ=
+github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E=
+github.com/jhump/protoreflect v1.12.0/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI=
+github.com/jhump/protoreflect v1.15.1/go.mod h1:jD/2GMKKE6OqX8qTjhADU1e6DShO+gavG9e0Q693nKo=
+github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg=
+github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg=
+github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
+github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
+github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
+github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
+github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
+github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
+github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
+github.com/klauspost/compress v1.15.15/go.mod h1:ZcK2JAFqKOpnBlxcLsJzYfrS9X1akm9fHZNnD9+Vo/4=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
+github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
+github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
+github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw=
+github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o=
+github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk=
+github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw=
+github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
+github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
+github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
+github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4=
+github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
+github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
+github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94=
+github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
+github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
+github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo=
+github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
+github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
+github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
+github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw=
+github.com/nacos-group/nacos-sdk-go/v2 v2.2.1 h1:f72CRRn1BQk0FpK0vAnXn56ddGQpmHcyp0QoHEajhow=
+github.com/nacos-group/nacos-sdk-go/v2 v2.2.1/go.mod h1:ys/1adWeKXXzbNWfRNbaFlX/t6HVLWdpsNDvmoWTw0g=
+github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
+github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
+github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=
+github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU=
+github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
+github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0=
+github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE=
+github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU=
+github.com/onsi/ginkgo/v2 v2.0.0/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
+github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c=
+github.com/onsi/ginkgo/v2 v2.1.4/go.mod h1:um6tUpWM/cxCK3/FK8BXqEiUMUwRgSM4JXG47RKZmLU=
+github.com/onsi/ginkgo/v2 v2.1.6/go.mod h1:MEH45j8TBi6u9BMogfbp0stKC5cdGjumZj5Y7AG4VIk=
+github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8AyFNU9d0=
+github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
+github.com/onsi/ginkgo/v2 v2.9.1 h1:zie5Ly042PD3bsCvsSOPvRnFwyo3rKe64TJlD6nu0mk=
+github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
+github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
+github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5hitRs=
+github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro=
+github.com/onsi/gomega v1.20.1/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
+github.com/onsi/gomega v1.21.1/go.mod h1:iYAIXgPSaDHak0LCMA+AWBpIKBr8WZicMxnE8luStNc=
+github.com/onsi/gomega v1.22.1/go.mod h1:x6n7VNe4hw0vkyYUM4mjIXx3JbLiPaBPNgB7PRQ1tuM=
+github.com/onsi/gomega v1.23.0/go.mod h1:Z/NWtiqwBrwUt4/2loMmHL63EDLnYHmVbuBpDr2vQAg=
+github.com/onsi/gomega v1.27.4 h1:Z2AnStgsdSayCMDiCU42qIz+HLqEPcgiOCXjAU/w+8E=
+github.com/openzipkin/zipkin-go v0.4.1 h1:kNd/ST2yLLWhaWrkgchya40TJabe8Hioj9udfPcEO5A=
+github.com/openzipkin/zipkin-go v0.4.1/go.mod h1:qY0VqDSN1pOBN94dBc6w2GJlWLiovAyg7Qt6/I9HecM=
+github.com/pelletier/go-toml/v2 v2.0.7/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
+github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=
+github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
+github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
+github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
+github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g=
+github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
+github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
+github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
+github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
+github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
+github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ=
+github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y=
+github.com/prometheus/client_golang v1.16.0 h1:yk/hx9hDbrGHovbci4BY+pRMfSuuat626eFsHb7tmT8=
+github.com/prometheus/client_golang v1.16.0/go.mod h1:Zsulrv/L9oM40tJ7T815tM89lFEugiJ9HzIqaAx4LKc=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
+github.com/prometheus/client_model v0.4.0 h1:5lQXD3cAg1OXBf4Wq03gTrXHeaV0TQvGfUooCfx1yqY=
+github.com/prometheus/client_model v0.4.0/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU=
+github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
+github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
+github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
+github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA=
+github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY=
+github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
+github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
+github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4=
+github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg=
+github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM=
+github.com/rabbitmq/amqp091-go v1.5.0/go.mod h1:JsV0ofX5f1nwOGafb8L5rBItt9GyhfQfcJj+oyz0dGg=
+github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
+github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
+github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
+github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
+github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
+github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
+github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
+github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
+github.com/rs/zerolog v1.28.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0=
+github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
+github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI=
+github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
+github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
+github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
+github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
+github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y=
+github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
+github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
+github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
+github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/urfave/cli/v2 v2.11.0/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo=
+github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
+github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
+github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
+github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
+github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
+github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+github.com/yuin/gopher-lua v1.1.0 h1:BojcDhfyDWgU2f2TOzYK/g5p2gxMrku8oupLDqlnSqE=
+github.com/yuin/gopher-lua v1.1.0/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
+github.com/zeromicro/go-zero v1.5.1/go.mod h1:bGYm4XWsGN9GhDsO2O2BngpVoWjf3Eog2a5hUOMhlXs=
+github.com/zeromicro/go-zero v1.5.5 h1:qEHnDuCBu/gDBmfWEZXYow6ZmWmzsrJTjtjSMVm4SiY=
+github.com/zeromicro/go-zero v1.5.5/go.mod h1:AGCspTFitHzYjl5ddAmYWLfdt341+BrhefqlwO45UbU=
+gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7 h1:hiCAYNuPNMrn7HDF7pWXL3KBA53X8bAhnXmfxIAczSg=
+gitlink.org.cn/jcce-pcm/pcm-coordinator v0.1.7/go.mod h1:mNBUzs5q4T1y54HB07hJSkrXLX6tbaRJrdKmpS2zq9c=
+gitlink.org.cn/jcce-pcm/utils v0.0.2 h1:Stif8W9C9TOCS2hw4g+OlOywDrsVYNrkiyKfBrWkT0w=
+gitlink.org.cn/jcce-pcm/utils v0.0.2/go.mod h1:u8PTlBpzUyOlbQJgfSiutq91q/JtrJIQiPNDe4S/pGs=
+go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA=
+go.etcd.io/etcd/api/v3 v3.5.9 h1:4wSsluwyTbGGmyjJktOf3wFQoTBIURXHnq9n/G/JQHs=
+go.etcd.io/etcd/api/v3 v3.5.9/go.mod h1:uyAal843mC8uUVSLWz6eHa/d971iDGnCRpmKd2Z+X8k=
+go.etcd.io/etcd/client/pkg/v3 v3.5.7/go.mod h1:o0Abi1MK86iad3YrWhgUsbGx1pmTS+hrORWc2CamuhY=
+go.etcd.io/etcd/client/pkg/v3 v3.5.9 h1:oidDC4+YEuSIQbsR94rY9gur91UPL6DnxDCIYd2IGsE=
+go.etcd.io/etcd/client/pkg/v3 v3.5.9/go.mod h1:y+CzeSmkMpWN2Jyu1npecjB9BBnABxGM4pN8cGuJeL4=
+go.etcd.io/etcd/client/v3 v3.5.7/go.mod h1:sOWmj9DZUMyAngS7QQwCyAXXAL6WhgTOPLNS/NabQgw=
+go.etcd.io/etcd/client/v3 v3.5.9 h1:r5xghnU7CwbUxD/fbUtRyJGaYNfDun8sp/gTr1hew6E=
+go.etcd.io/etcd/client/v3 v3.5.9/go.mod h1:i/Eo5LrZ5IKqpbtpPDuaUnDOUv471oDg8cjQaUr2MbA=
+go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
+go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
+go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
+go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
+go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
+go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
+go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
+go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM=
+go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU=
+go.opentelemetry.io/otel/exporters/jaeger v1.14.0 h1:CjbUNd4iN2hHmWekmOqZ+zSCU+dzZppG8XsV+A3oc8Q=
+go.opentelemetry.io/otel/exporters/jaeger v1.14.0/go.mod h1:4Ay9kk5vELRrbg5z4cpP9EtmQRFap2Wb0woPG4lujZA=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho=
+go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 h1:3jAYbRHQAqzLjd9I4tzxwJ8Pk/N6AqBcF6m1ZHrxG94=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0/go.mod h1:+N7zNjIJv4K+DeX67XXET0P+eIciESgaFDBqh+ZJFS4=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0 h1:sEL90JjOO/4yhquXl5zTAkLLsZ5+MycAgX99SDsxGc8=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.14.0/go.mod h1:oCslUcizYdpKYyS9e8srZEqM6BB8fq41VJBjLAE6z1w=
+go.opentelemetry.io/otel/exporters/zipkin v1.14.0 h1:reEVE1upBF9tcujgvSqLJS0SrI7JQPaTKP4s4rymnSs=
+go.opentelemetry.io/otel/exporters/zipkin v1.14.0/go.mod h1:RcjvOAcvhzcufQP8aHmzRw1gE9g/VEZufDdo2w+s4sk=
+go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY=
+go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM=
+go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M=
+go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8=
+go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
+go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
+go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ=
+go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
+go.uber.org/automaxprocs v1.5.2/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
+go.uber.org/automaxprocs v1.5.3 h1:kWazyxZUrS3Gs4qUpbwo5kEIMGe/DAvi5Z4tl2NW4j8=
+go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A=
+go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
+go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
+go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo=
+go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
+go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60=
+go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20221010152910-d6f0a8c073c2/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
+golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
+golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
+golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
+golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
+golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
+golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
+golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
+golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
+golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
+golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
+golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
+golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
+golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
+golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
+golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
+golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
+golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
+golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
+golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk=
+golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211029224645-99673261e6eb/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.0.0-20220725212005-46097bf591d3/go.mod h1:AaygXjzTFtRAg2ttMY5RMuhpJ3cNnI0XpyFJD1iQRSM=
+golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20220927171203-f486391704dc/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20221004154528-8021a29435af/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
+golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
+golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY=
+golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE=
+golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws=
+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc=
+golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14=
+golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
+golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc=
+golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
+golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
+golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
+golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk=
+golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
+golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8=
+golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220923202941-7f9b1623fab7/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI=
+golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190204203706-41f3e6584952/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220909162455-aba9fc2a8ff2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
+golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc=
+golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA=
+golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ=
+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
+golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
+golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
+golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
+golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc=
+golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
+golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
+golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw=
+golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8=
+golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
+golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
+golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE=
+golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
+golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
+golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k=
+golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
+google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
+google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
+google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
+google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE=
+google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
+google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
+google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
+google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg=
+google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE=
+google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
+google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
+google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
+google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo=
+google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4=
+google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw=
+google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU=
+google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k=
+google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE=
+google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI=
+google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I=
+google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo=
+google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g=
+google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA=
+google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8=
+google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs=
+google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA=
+google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA=
+google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw=
+google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg=
+google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o=
+google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g=
+google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
+google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw=
+google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI=
+google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s=
+google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08=
+google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70=
+google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo=
+google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
+google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c=
+google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
+google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
+google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
+google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
+google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
+google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
+google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
+google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
+google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A=
+google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
+google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24=
+google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k=
+google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48=
+google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w=
+google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
+google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
+google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
+google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
+google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo=
+google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4=
+google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA=
+google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE=
+google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc=
+google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
+google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo=
+google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw=
+google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI=
+google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI=
+google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U=
+google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
+google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM=
+google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
+google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s=
+google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo=
+google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg=
+google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE=
+google.golang.org/genproto v0.0.0-20221207170731-23e4bf6bdc37/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54 h1:9NWlQfY2ePejTmfwUH1OWwmznFa+0kKcHGPDvcPza9M=
+google.golang.org/genproto v0.0.0-20230526161137-0005af68ea54/go.mod h1:zqTuNwFlFRsw5zIts5VnzLQxSRqh+CGOTVMlYbY0Eyk=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9 h1:m8v1xLLLzMe1m5P+gCTF8nJB9epwZQUBERm20Oy1poQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19 h1:0nDDozoAU19Qb2HwhXadU8OcsiO/09cnTqhUtq2MEOM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
+google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
+google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
+google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
+google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
+google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
+google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
+google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
+google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
+google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
+google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
+google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
+google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k=
+google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
+google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
+google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
+google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI=
+google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww=
+google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
+google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
+google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw=
+google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
+google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
+google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
+google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
+google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
+google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
+google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
+google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
+google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
+google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.28.2-0.20230222093303-bc1253ad3743/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
+google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
+gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/h2non/gock.v1 v1.1.2 h1:jBbHXgGBK/AoPVfJh5x4r/WxIrElvbLel8TCZkkZJoY=
+gopkg.in/h2non/gock.v1 v1.1.2/go.mod h1:n7UGz/ckNChHiK05rDoiC4MYSunEC/lyaUm2WWaDva0=
+gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
+gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
+gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI=
+gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8=
+gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
+honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
+k8s.io/api v0.26.3 h1:emf74GIQMTik01Aum9dPP0gAypL8JTLl/lHa4V9RFSU=
+k8s.io/api v0.26.3/go.mod h1:PXsqwPMXBSBcL1lJ9CYDKy7kIReUydukS5JiRlxC3qE=
+k8s.io/apimachinery v0.26.3/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I=
+k8s.io/apimachinery v0.27.3 h1:Ubye8oBufD04l9QnNtW05idcOe9Z3GQN8+7PqmuVcUM=
+k8s.io/apimachinery v0.27.3/go.mod h1:XNfZ6xklnMCOGGFNqXG7bUrQCoR04dh/E7FprV6pb+E=
+k8s.io/client-go v0.26.3 h1:k1UY+KXfkxV2ScEL3gilKcF7761xkYsSD6BC9szIu8s=
+k8s.io/client-go v0.26.3/go.mod h1:ZPNu9lm8/dbRIPAgteN30RSXea6vrCpFvq+MateTUuQ=
+k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E=
+k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
+k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
+k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/klog/v2 v2.90.1 h1:m4bYOKall2MmOiRaR1J+We67Do7vm9KiQVlT96lnHUw=
+k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
+k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
+k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg=
+k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg=
+k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
+k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20230115233650-391b47cb4029/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+k8s.io/utils v0.0.0-20230209194617-a36077c30491 h1:r0BAOLElQnnFhE/ApUsg3iHdVYYPBjNSSOMowRZxxsY=
+k8s.io/utils v0.0.0-20230209194617-a36077c30491/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
+rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
+sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE=
+sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E=
+sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
+sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo=
+sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8=
diff --git a/internal/common/Entity.go b/internal/common/Entity.go
new file mode 100644
index 0000000..fc0bb7e
--- /dev/null
+++ b/internal/common/Entity.go
@@ -0,0 +1,46 @@
+package common
+
+import "time"
+
+type Auth struct {
+ Auth struct {
+ Identity struct {
+ Methods []string `json:"methods"`
+ Password struct {
+ User struct {
+ Name string `json:"name"`
+ Password string `json:"password"`
+ Domain struct {
+ Name string `json:"name"`
+ } `json:"domain"`
+ } `json:"user"`
+ } `json:"password"`
+ } `json:"identity"`
+ Scope struct {
+ Project struct {
+ Name string `json:"name"`
+ Domain struct {
+ Name string `json:"name"`
+ } `json:"domain"`
+ } `json:"project"`
+ } `json:"scope"`
+ } `json:"auth"`
+}
+
+type Token struct {
+ Token struct {
+ ExpiresAt time.Time `json:"expires_at"`
+ AuditIds []string `json:"audit_ids"`
+ Methods []string `json:"methods"`
+ IssuedAt time.Time `json:"issued_at"`
+ User struct {
+ Domain struct {
+ Id string `json:"id"`
+ Name string `json:"name"`
+ } `json:"domain"`
+ Id string `json:"id"`
+ Name string `json:"name"`
+ PasswordExpiresAt string `json:"password_expires_at"`
+ } `json:"user"`
+ } `json:"token"`
+}
diff --git a/internal/common/tokenService.go b/internal/common/tokenService.go
new file mode 100644
index 0000000..6cf2d66
--- /dev/null
+++ b/internal/common/tokenService.go
@@ -0,0 +1,69 @@
+package common
+
+import (
+ "bytes"
+ "io"
+ "k8s.io/apimachinery/pkg/util/json"
+ "log"
+ "net/http"
+ "time"
+)
+
+const (
+ USER = "admin"
+ PASSWORD = "Nudt@123"
+ DOMAIN = "Default"
+ TokenUrl = "http://10.105.20.9:5000/v3/auth/tokens?nocatalog"
+ Status_created = 201
+ ProjectName = "Default"
+ TokenHeader = "X-Subject-Token"
+ AuthMethod = "password"
+)
+
+var (
+ token, expiredAt = GenerateToken()
+)
+
+func GenerateToken() (string, time.Time) {
+ a := Auth{}
+ a.Auth.Scope.Project.Name = USER
+ a.Auth.Scope.Project.Domain.Name = ProjectName
+ a.Auth.Identity.Methods = append(a.Auth.Identity.Methods, AuthMethod)
+ a.Auth.Identity.Password.User.Name = USER
+ a.Auth.Identity.Password.User.Password = PASSWORD
+ a.Auth.Identity.Password.User.Domain.Name = DOMAIN
+
+ jsonStr, _ := json.Marshal(a)
+ req_url, err := http.NewRequest("POST", TokenUrl, bytes.NewBuffer(jsonStr))
+
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ c := http.Client{Timeout: time.Duration(3) * time.Second}
+
+ respUrl, err := c.Do(req_url)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ if respUrl.StatusCode != Status_created {
+ panic("获取token失败")
+ }
+
+ defer respUrl.Body.Close()
+
+ var t Token
+
+ result, _ := io.ReadAll(respUrl.Body)
+ json.Unmarshal(result, &t)
+
+ return respUrl.Header.Get(TokenHeader), t.Token.ExpiresAt
+}
+
+func GetToken() string {
+ if time.Now().After(expiredAt) {
+ token, expiredAt = GenerateToken()
+ }
+ return token
+}
diff --git a/internal/config/config.go b/internal/config/config.go
new file mode 100644
index 0000000..66844fb
--- /dev/null
+++ b/internal/config/config.go
@@ -0,0 +1,27 @@
+package config
+
+import (
+ "github.com/zeromicro/go-zero/core/logx"
+ "github.com/zeromicro/go-zero/zrpc"
+)
+
+const (
+ HOST = "10.101.15.3"
+ PORT = "6443"
+)
+
+type Config struct {
+ zrpc.RpcServerConf
+ OpenstackConfig
+ LogConf logx.LogConf
+ PcmCoreRpcConf zrpc.RpcClientConf
+ //Participant Participant
+}
+
+/*type Participant struct {
+ Address string `json:"address"`
+ Type string `json:"type"`
+ TenantId int64 `json:"tenantId"`
+ TenantName string `json:"tenantName"`
+ Labels map[string]string
+}*/
diff --git a/internal/config/openstackConfig.go b/internal/config/openstackConfig.go
new file mode 100644
index 0000000..4667980
--- /dev/null
+++ b/internal/config/openstackConfig.go
@@ -0,0 +1,8 @@
+package config
+
+type OpenstackConfig struct {
+ OpenstackNetworkUrl string `json:"OpenstackNetworkUrl"`
+ OpenstackComputeUrl string `json:"OpenstackComputeUrl"`
+ OpenstackImageUrl string `json:"OpenstackImageUrl"`
+ OpenstackVolumev2Url string `json:"OpenstackVolumev2Url"`
+}
diff --git a/internal/logic/bulkcreatenetworkslogic.go b/internal/logic/bulkcreatenetworkslogic.go
new file mode 100644
index 0000000..a22a9cc
--- /dev/null
+++ b/internal/logic/bulkcreatenetworkslogic.go
@@ -0,0 +1,58 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type BulkCreateNetworksLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewBulkCreateNetworksLogic(ctx context.Context, svcCtx *svc.ServiceContext) *BulkCreateNetworksLogic {
+ return &BulkCreateNetworksLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+// 批量创建网络
+func (l *BulkCreateNetworksLogic) BulkCreateNetworks(in *openstack.BulkCreateNetworksReq) (*openstack.BulkCreateNetworksResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.BulkCreateNetworksResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v2.0/networks", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.BulkCreateNetworksResp{}, nil
+}
diff --git a/internal/logic/createimagelogic.go b/internal/logic/createimagelogic.go
new file mode 100644
index 0000000..21262b1
--- /dev/null
+++ b/internal/logic/createimagelogic.go
@@ -0,0 +1,59 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateImageLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateImageLogic {
+ return &CreateImageLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+// Images from glance
+func (l *CreateImageLogic) CreateImage(in *openstack.CreateImageReq) (*openstack.CreateImageResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateImageResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackImageUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/v2/images", payload, token)
+ //statusCode, body, err := tool.HttpClientWithScreen(tool.POST, openstackUrl+"/v2/images", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 201 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 201 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/createnetworklogic.go b/internal/logic/createnetworklogic.go
new file mode 100644
index 0000000..b0e6923
--- /dev/null
+++ b/internal/logic/createnetworklogic.go
@@ -0,0 +1,57 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateNetworkLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateNetworkLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateNetworkLogic {
+ return &CreateNetworkLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateNetworkLogic) CreateNetwork(in *openstack.CreateNetworkReq) (*openstack.CreateNetworkResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateNetworkResp
+ reqByte, err := json.Marshal(in)
+ token := common.GetToken()
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/v2.0/networks", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 201 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 201 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/createnodelogic.go b/internal/logic/createnodelogic.go
new file mode 100644
index 0000000..f8c2a14
--- /dev/null
+++ b/internal/logic/createnodelogic.go
@@ -0,0 +1,57 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateNodeLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateNodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateNodeLogic {
+ return &CreateNodeLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateNodeLogic) CreateNode(in *openstack.CreateNodeReq) (*openstack.CreateNodeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateNodeResp
+ token := common.GetToken()
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := "http://10.105.20.9:9292"
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/v1/nodes", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 201 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 201 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/createserverlogic.go b/internal/logic/createserverlogic.go
new file mode 100644
index 0000000..8b1881b
--- /dev/null
+++ b/internal/logic/createserverlogic.go
@@ -0,0 +1,58 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+ "k8s.io/apimachinery/pkg/util/json"
+)
+
+type CreateServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateServerLogic {
+ return &CreateServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateServerLogic) CreateServer(in *openstack.CreateServerReq) (*openstack.CreateServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateServerResp
+ reqByte, err := json.Marshal(in)
+ token := common.GetToken()
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/servers", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 202 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 202 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+
+}
diff --git a/internal/logic/createsubnetlogic.go b/internal/logic/createsubnetlogic.go
new file mode 100644
index 0000000..9eb22e5
--- /dev/null
+++ b/internal/logic/createsubnetlogic.go
@@ -0,0 +1,58 @@
+package logic
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "strings"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateSubnetLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateSubnetLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateSubnetLogic {
+ return &CreateSubnetLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateSubnetLogic) CreateSubnet(in *openstack.CreateSubnetReq) (*openstack.CreateSubnetResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateSubnetResp
+ reqByte, err := json.Marshal(in)
+ token := common.GetToken()
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/v2.0/subnets", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 201 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 201 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/createvolumelogic.go b/internal/logic/createvolumelogic.go
new file mode 100644
index 0000000..7ff8159
--- /dev/null
+++ b/internal/logic/createvolumelogic.go
@@ -0,0 +1,57 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateVolumeLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateVolumeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateVolumeLogic {
+ return &CreateVolumeLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateVolumeLogic) CreateVolume(in *openstack.CreateVolumeReq) (*openstack.CreateVolumeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateVolumeResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ token := common.GetToken()
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/volumes", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 202 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 202 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/createvolumetypeslogic.go b/internal/logic/createvolumetypeslogic.go
new file mode 100644
index 0000000..6fbd8b2
--- /dev/null
+++ b/internal/logic/createvolumetypeslogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type CreateVolumeTypesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewCreateVolumeTypesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CreateVolumeTypesLogic {
+ return &CreateVolumeTypesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *CreateVolumeTypesLogic) CreateVolumeTypes(in *openstack.CreateTypeReq) (*openstack.CreateTypeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.CreateTypeResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ statusCode, body, err := tool.HttpClientWithScreen(tool.POST, openstackUrl+"/v3/"+in.ProjectId+"/types", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 201 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 201 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deleteimagelogic.go b/internal/logic/deleteimagelogic.go
new file mode 100644
index 0000000..2db8460
--- /dev/null
+++ b/internal/logic/deleteimagelogic.go
@@ -0,0 +1,53 @@
+package logic
+
+import (
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "context"
+ "fmt"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteImageLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteImageLogic {
+ return &DeleteImageLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteImageLogic) DeleteImage(in *openstack.DeleteImageReq) (*openstack.DeleteImageResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.DeleteImageResp
+ openstackUrl := l.svcCtx.Config.OpenstackImageUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.DELETE, openstackUrl+"/v2/images/"+in.ImageId, strings.NewReader(``), token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 204 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 204 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deletenetworklogic.go b/internal/logic/deletenetworklogic.go
new file mode 100644
index 0000000..eb3440f
--- /dev/null
+++ b/internal/logic/deletenetworklogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteNetworkLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteNetworkLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteNetworkLogic {
+ return &DeleteNetworkLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteNetworkLogic) DeleteNetwork(in *openstack.DeleteNetworkReq) (*openstack.DeleteNetworkResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.DeleteNetworkResp
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.DELETE, openstackUrl+"/v2.0/networks/"+in.NetworkId, strings.NewReader(``), token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 204 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 204 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deletenodelogic.go b/internal/logic/deletenodelogic.go
new file mode 100644
index 0000000..5576ed1
--- /dev/null
+++ b/internal/logic/deletenodelogic.go
@@ -0,0 +1,50 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteNodeLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteNodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteNodeLogic {
+ return &DeleteNodeLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteNodeLogic) DeleteNode(in *openstack.DeleteNodeReq) (*openstack.DeleteNodeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.DeleteNodeResp
+ openstackUrl := ""
+ statusCode, body, err := tool.HttpClientWithScreen(tool.DELETE, openstackUrl+"/v1/nodes/"+in.NodeIdent, strings.NewReader(``))
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deleteserverlogic.go b/internal/logic/deleteserverlogic.go
new file mode 100644
index 0000000..4fb497c
--- /dev/null
+++ b/internal/logic/deleteserverlogic.go
@@ -0,0 +1,53 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+ "k8s.io/apimachinery/pkg/util/json"
+)
+
+type DeleteServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteServerLogic {
+ return &DeleteServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteServerLogic) DeleteServer(in *openstack.DeleteServerReq) (*openstack.DeleteServerResp, error) {
+ // todo: add your logic here and delete this line
+
+ var resp openstack.DeleteServerResp
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.DELETE, openstackUrl+"/servers/"+in.ServerId, strings.NewReader(``), token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 204 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 204 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deletevolumelogic.go b/internal/logic/deletevolumelogic.go
new file mode 100644
index 0000000..3d84db4
--- /dev/null
+++ b/internal/logic/deletevolumelogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteVolumeLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteVolumeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteVolumeLogic {
+ return &DeleteVolumeLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteVolumeLogic) DeleteVolume(in *openstack.DeleteVolumeReq) (*openstack.DeleteVolumeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.DeleteVolumeResp
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.DELETE, openstackUrl+"/volumes/"+in.VolumeId, strings.NewReader(``), token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 202 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 202 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/deletevolumetypeslogic.go b/internal/logic/deletevolumetypeslogic.go
new file mode 100644
index 0000000..cf92e49
--- /dev/null
+++ b/internal/logic/deletevolumetypeslogic.go
@@ -0,0 +1,50 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type DeleteVolumeTypesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewDeleteVolumeTypesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteVolumeTypesLogic {
+ return &DeleteVolumeTypesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *DeleteVolumeTypesLogic) DeleteVolumeTypes(in *openstack.DeleteTypeReq) (*openstack.DeleteTypeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.DeleteTypeResp
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ statusCode, body, err := tool.HttpClientWithScreen(tool.DELETE, openstackUrl+"/v3/"+in.ProjectId+"/types/"+in.VolumeTypeId, strings.NewReader(``))
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 204 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 204 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/getcomputelimitslogic.go b/internal/logic/getcomputelimitslogic.go
new file mode 100644
index 0000000..53a74b4
--- /dev/null
+++ b/internal/logic/getcomputelimitslogic.go
@@ -0,0 +1,51 @@
+package logic
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetComputeLimitsLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewGetComputeLimitsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetComputeLimitsLogic {
+ return &GetComputeLimitsLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *GetComputeLimitsLogic) GetComputeLimits(in *openstack.GetComputeLimitsReq) (*openstack.GetComputeLimitsResp, error) {
+ var resp openstack.GetComputeLimitsResp
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v2/limits", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/getserversdetailedbyidlogic.go b/internal/logic/getserversdetailedbyidlogic.go
new file mode 100644
index 0000000..95da382
--- /dev/null
+++ b/internal/logic/getserversdetailedbyidlogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetServersDetailedByIdLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewGetServersDetailedByIdLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetServersDetailedByIdLogic {
+ return &GetServersDetailedByIdLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *GetServersDetailedByIdLogic) GetServersDetailedById(in *openstack.GetServersDetailedByIdReq) (*openstack.GetServersDetailedByIdResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.GetServersDetailedByIdResp
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/servers/"+in.ServerId, nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/getvolumelimitslogic.go b/internal/logic/getvolumelimitslogic.go
new file mode 100644
index 0000000..c97171e
--- /dev/null
+++ b/internal/logic/getvolumelimitslogic.go
@@ -0,0 +1,51 @@
+package logic
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type GetVolumeLimitsLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewGetVolumeLimitsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetVolumeLimitsLogic {
+ return &GetVolumeLimitsLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *GetVolumeLimitsLogic) GetVolumeLimits(in *openstack.GetVolumeLimitsReq) (*openstack.GetVolumeLimitsResp, error) {
+ var resp openstack.GetVolumeLimitsResp
+ openstackUrl := "http://10.105.20.9:8776"
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v3/aa7366b7f0e9453a9ba8bc699aa97b1e/limits", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listflavorsdetaillogic.go b/internal/logic/listflavorsdetaillogic.go
new file mode 100644
index 0000000..4e4fb79
--- /dev/null
+++ b/internal/logic/listflavorsdetaillogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListFlavorsDetailLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListFlavorsDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListFlavorsDetailLogic {
+ return &ListFlavorsDetailLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListFlavorsDetailLogic) ListFlavorsDetail(in *openstack.ListFlavorsDetailReq) (*openstack.ListFlavorsDetailResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListFlavorsDetailResp
+ openstackUrl := "http://10.105.20.9:8774/v2.1/aa7366b7f0e9453a9ba8bc699aa97b1e"
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/flavors/detail", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listimageslogic.go b/internal/logic/listimageslogic.go
new file mode 100644
index 0000000..4af9da4
--- /dev/null
+++ b/internal/logic/listimageslogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListImagesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListImagesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListImagesLogic {
+ return &ListImagesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListImagesLogic) ListImages(in *openstack.ListImagesReq) (*openstack.ListImagesResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListImagesResp
+ openstackUrl := "http://10.105.20.9:9292"
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v2/images", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listnetworkslogic.go b/internal/logic/listnetworkslogic.go
new file mode 100644
index 0000000..efe32fd
--- /dev/null
+++ b/internal/logic/listnetworkslogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListNetworksLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListNetworksLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListNetworksLogic {
+ return &ListNetworksLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListNetworksLogic) ListNetworks(in *openstack.ListNetworksReq) (*openstack.ListNetworksResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListNetworksResp
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v2.0/networks", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+
+ return &resp, nil
+}
diff --git a/internal/logic/listnodeslogic.go b/internal/logic/listnodeslogic.go
new file mode 100644
index 0000000..d71a384
--- /dev/null
+++ b/internal/logic/listnodeslogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListNodesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListNodesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListNodesLogic {
+ return &ListNodesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+// Bare Metal
+func (l *ListNodesLogic) ListNodes(in *openstack.ListNodesReq) (*openstack.ListNodesResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListNodesResp
+ openstackUrl := ""
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/v2.0/networks", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listserversdetailedlogic.go b/internal/logic/listserversdetailedlogic.go
new file mode 100644
index 0000000..4a1ded1
--- /dev/null
+++ b/internal/logic/listserversdetailedlogic.go
@@ -0,0 +1,51 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListServersDetailedLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListServersDetailedLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListServersDetailedLogic {
+ return &ListServersDetailedLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListServersDetailedLogic) ListServersDetailed(in *openstack.ListServersDetailedReq) (*openstack.ListServersDetailedResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListServersDetailedResp
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/servers/detail", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listserverslogic.go b/internal/logic/listserverslogic.go
new file mode 100644
index 0000000..791e26c
--- /dev/null
+++ b/internal/logic/listserverslogic.go
@@ -0,0 +1,51 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListServersLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListServersLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListServersLogic {
+ return &ListServersLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListServersLogic) ListServers(in *openstack.ListServersReq) (*openstack.ListServersResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListServersResp
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/servers", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listvolumesdetaillogic.go b/internal/logic/listvolumesdetaillogic.go
new file mode 100644
index 0000000..2d3a92e
--- /dev/null
+++ b/internal/logic/listvolumesdetaillogic.go
@@ -0,0 +1,52 @@
+package logic
+
+import (
+ "context"
+ "encoding/json"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListVolumesDetailLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListVolumesDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListVolumesDetailLogic {
+ return &ListVolumesDetailLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListVolumesDetailLogic) ListVolumesDetail(in *openstack.ListVolumesDetailReq) (*openstack.ListVolumesDetailResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListVolumesDetailResp
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/volumes/detail", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listvolumeslogic.go b/internal/logic/listvolumeslogic.go
new file mode 100644
index 0000000..77c8482
--- /dev/null
+++ b/internal/logic/listvolumeslogic.go
@@ -0,0 +1,53 @@
+package logic
+
+import (
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+
+ "context"
+ "fmt"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListVolumesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListVolumesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListVolumesLogic {
+ return &ListVolumesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+// cinder(block storage) volumes
+func (l *ListVolumesLogic) ListVolumes(in *openstack.ListVolumesReq) (*openstack.ListVolumesResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListVolumesResp
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ token := common.GetToken()
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/volumes", nil, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/listvolumetypeslogic.go b/internal/logic/listvolumetypeslogic.go
new file mode 100644
index 0000000..3c13405
--- /dev/null
+++ b/internal/logic/listvolumetypeslogic.go
@@ -0,0 +1,53 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ListVolumeTypesLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewListVolumeTypesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ListVolumeTypesLogic {
+ return &ListVolumeTypesLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ListVolumeTypesLogic) ListVolumeTypes(in *openstack.ListVolumeTypesReq) (*openstack.ListVolumeTypesResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ListVolumeTypesResp
+ openstackUrl := l.svcCtx.Config.OpenstackVolumev2Url
+ token := common.GetToken()
+ //statusCode, body, err := tool.HttpClientWithScreen(tool.GET, openstackUrl+"/v3/"+in.ProjectId+"/types", strings.NewReader(``))
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.GET, openstackUrl+"/types", nil, token)
+
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/logic/pauseserverlogic.go b/internal/logic/pauseserverlogic.go
new file mode 100644
index 0000000..c00068c
--- /dev/null
+++ b/internal/logic/pauseserverlogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type PauseServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewPauseServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *PauseServerLogic {
+ return &PauseServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *PauseServerLogic) PauseServer(in *openstack.PauseServerReq) (*openstack.PauseServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.PauseServerResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/servers/"+in.ServerId+"/action", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.PauseServerResp{}, nil
+}
diff --git a/internal/logic/rebootserverlogic.go b/internal/logic/rebootserverlogic.go
new file mode 100644
index 0000000..b1169ce
--- /dev/null
+++ b/internal/logic/rebootserverlogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type RebootServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewRebootServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *RebootServerLogic {
+ return &RebootServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *RebootServerLogic) RebootServer(in *openstack.RebootServerReq) (*openstack.RebootServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.RebootServerResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/servers/"+in.ServerId+"/action", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.RebootServerResp{}, nil
+}
diff --git a/internal/logic/shownetworkdetailslogic.go b/internal/logic/shownetworkdetailslogic.go
new file mode 100644
index 0000000..e4c0624
--- /dev/null
+++ b/internal/logic/shownetworkdetailslogic.go
@@ -0,0 +1,51 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ShowNetworkDetailsLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewShowNetworkDetailsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ShowNetworkDetailsLogic {
+ return &ShowNetworkDetailsLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+// network
+func (l *ShowNetworkDetailsLogic) ShowNetworkDetails(in *openstack.ShowNetworkDetailsReq) (*openstack.ShowNetworkDetailsResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ShowNetworkDetailsResp
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.GET, openstackUrl+"/v2.0/networks/"+in.NetworkId, strings.NewReader(``))
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.ShowNetworkDetailsResp{}, nil
+}
diff --git a/internal/logic/shownodedetailslogic.go b/internal/logic/shownodedetailslogic.go
new file mode 100644
index 0000000..aaf07c9
--- /dev/null
+++ b/internal/logic/shownodedetailslogic.go
@@ -0,0 +1,50 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type ShowNodeDetailsLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewShowNodeDetailsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ShowNodeDetailsLogic {
+ return &ShowNodeDetailsLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *ShowNodeDetailsLogic) ShowNodeDetails(in *openstack.ShowNodeDetailsReq) (*openstack.ShowNodeDetailsResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.ShowNodeDetailsResp
+ openstackUrl := ""
+ statusCode, body, err := tool.HttpClientWithScreen(tool.GET, openstackUrl+"/v1/nodes/"+in.NodeIdent, strings.NewReader(``))
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.ShowNodeDetailsResp{}, nil
+}
diff --git a/internal/logic/startserverlogic.go b/internal/logic/startserverlogic.go
new file mode 100644
index 0000000..1d7a00b
--- /dev/null
+++ b/internal/logic/startserverlogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type StartServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewStartServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StartServerLogic {
+ return &StartServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *StartServerLogic) StartServer(in *openstack.StartServerReq) (*openstack.StartServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.StartServerResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/servers/"+in.ServerId+"/action", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.StartServerResp{}, nil
+}
diff --git a/internal/logic/stopserverlogic.go b/internal/logic/stopserverlogic.go
new file mode 100644
index 0000000..794c853
--- /dev/null
+++ b/internal/logic/stopserverlogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type StopServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewStopServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *StopServerLogic {
+ return &StopServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *StopServerLogic) StopServer(in *openstack.StopServerReq) (*openstack.StopServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.StopServerResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/servers/"+in.ServerId+"/action", payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.StopServerResp{}, nil
+}
diff --git a/internal/logic/updatenetworklogic.go b/internal/logic/updatenetworklogic.go
new file mode 100644
index 0000000..b9a6ba9
--- /dev/null
+++ b/internal/logic/updatenetworklogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type UpdateNetworkLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewUpdateNetworkLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateNetworkLogic {
+ return &UpdateNetworkLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *UpdateNetworkLogic) UpdateNetwork(in *openstack.UpdateNetworkReq) (*openstack.UpdateNetworkResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.UpdateNetworkResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/v2.0/networks"+in.NetworkId, payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.UpdateNetworkResp{}, nil
+}
diff --git a/internal/logic/updateserverlogic.go b/internal/logic/updateserverlogic.go
new file mode 100644
index 0000000..1421c93
--- /dev/null
+++ b/internal/logic/updateserverlogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type UpdateServerLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewUpdateServerLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateServerLogic {
+ return &UpdateServerLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *UpdateServerLogic) UpdateServer(in *openstack.UpdateServerReq) (*openstack.UpdateServerResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.UpdateServerResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/servers/"+in.ServerId, payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.UpdateServerResp{}, nil
+}
diff --git a/internal/logic/updatevolumelogic.go b/internal/logic/updatevolumelogic.go
new file mode 100644
index 0000000..064caec
--- /dev/null
+++ b/internal/logic/updatevolumelogic.go
@@ -0,0 +1,55 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type UpdateVolumeLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewUpdateVolumeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateVolumeLogic {
+ return &UpdateVolumeLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *UpdateVolumeLogic) UpdateVolume(in *openstack.UpdateVolumeReq) (*openstack.UpdateVolumeResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.UpdateVolumeResp
+ reqByte, err := json.Marshal(in)
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackNetworkUrl
+ statusCode, body, err := tool.HttpClientWithScreen(tool.PUT, openstackUrl+"/v3/"+in.ProjectId+"types"+in.VolumeTypeId, payload)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 200 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 200 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &openstack.UpdateVolumeResp{}, nil
+}
diff --git a/internal/logic/uploadimagelogic.go b/internal/logic/uploadimagelogic.go
new file mode 100644
index 0000000..8f01150
--- /dev/null
+++ b/internal/logic/uploadimagelogic.go
@@ -0,0 +1,58 @@
+package logic
+
+import (
+ "context"
+ "fmt"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/common"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "strings"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/core/logx"
+)
+
+type UploadImageLogic struct {
+ ctx context.Context
+ svcCtx *svc.ServiceContext
+ logx.Logger
+}
+
+func NewUploadImageLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UploadImageLogic {
+ return &UploadImageLogic{
+ ctx: ctx,
+ svcCtx: svcCtx,
+ Logger: logx.WithContext(ctx),
+ }
+}
+
+func (l *UploadImageLogic) UploadImage(in *openstack.UploadOsImageReq) (*openstack.UploadOsImageResp, error) {
+ // todo: add your logic here and delete this line
+ var resp openstack.UploadOsImageResp
+ reqByte, err := json.Marshal(in)
+ token := common.GetToken()
+ if err != nil {
+ return nil, err
+ }
+ payload := strings.NewReader(string(reqByte))
+ openstackUrl := l.svcCtx.Config.OpenstackComputeUrl
+ statusCode, body, err := tool.HttpClientWithBodyAndCode(tool.POST, openstackUrl+"/servers", payload, token)
+ if err != nil {
+ return nil, err
+ }
+ if statusCode == 202 {
+ err := json.Unmarshal(body, &resp)
+ if err != nil {
+ fmt.Println(err)
+ }
+ resp.Code = 200
+ resp.Msg = "Success"
+ } else if statusCode != 202 {
+ json.Unmarshal(body, &resp)
+ resp.Code = 400
+ resp.Msg = "Failure"
+ }
+ return &resp, nil
+}
diff --git a/internal/pkg/cron/checkhealthcron.go b/internal/pkg/cron/checkhealthcron.go
new file mode 100644
index 0000000..64212f6
--- /dev/null
+++ b/internal/pkg/cron/checkhealthcron.go
@@ -0,0 +1,30 @@
+package cron
+
+import (
+ "context"
+ "github.com/zeromicro/go-zero/core/logx"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/config"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+)
+
+func ReportHeartbeat(participantRpc participantservice.ParticipantService) {
+ participantId, err := tool.GetParticipantId("etc/pcmopenstack.yaml")
+ if err != nil {
+ logx.Errorf("获取participant id失败! err:", err)
+ return
+ }
+ resp, err := participantRpc.ReportHeartbeat(context.Background(), &participantservice.ParticipantHeartbeatReq{
+ ParticipantId: participantId,
+ Host: config.HOST,
+ Port: config.PORT,
+ })
+ if err != nil {
+ logx.Error(err)
+ return
+ }
+ if resp.Code != 200 {
+ logx.Error(resp.Msg)
+ }
+ logx.Info("心跳推送成功!")
+}
diff --git a/internal/pkg/cron/cron.go b/internal/pkg/cron/cron.go
new file mode 100644
index 0000000..be93412
--- /dev/null
+++ b/internal/pkg/cron/cron.go
@@ -0,0 +1,21 @@
+package cron
+
+import (
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+)
+
+func AddCronGroup(svc *svc.ServiceContext) {
+ // 同步任务信息到core端
+ svc.Cron.AddFunc("*/5 * * * * ?", func() {
+ SyncTask(svc)
+ })
+
+ // 推送p端心跳
+ svc.Cron.AddFunc("*/5 * * * * ?", func() {
+ ReportHeartbeat(svc.ParticipantRpc)
+ })
+
+ // 推送节点动态信息
+ svc.Cron.AddFunc("*/59 * * * * ?", func() {
+ })
+}
diff --git a/internal/pkg/cron/taskcron.go b/internal/pkg/cron/taskcron.go
new file mode 100644
index 0000000..f3a4343
--- /dev/null
+++ b/internal/pkg/cron/taskcron.go
@@ -0,0 +1,32 @@
+package cron
+
+import (
+ "context"
+ "github.com/zeromicro/go-zero/core/logx"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/pcmCore"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+)
+
+func SyncTask(svc *svc.ServiceContext) {
+ participantId, err := tool.GetParticipantId("etc/kubernetes.yaml")
+ if err != nil {
+ return
+ }
+ // 查询core端分发下来的任务列表
+ infoReq := pcmCore.InfoListReq{
+ Kind: "cloud",
+ ParticipantId: participantId,
+ }
+ _, err = svc.PcmCoreRpc.InfoList(context.Background(), &infoReq)
+ if err != nil {
+ logx.Error(err)
+ return
+ }
+ // 提交任务
+
+ // 查询Deployment列表
+
+ // 遍历core端任务列表信息
+
+}
diff --git a/internal/pkg/tracker/metrics.go b/internal/pkg/tracker/metrics.go
new file mode 100644
index 0000000..894e1b8
--- /dev/null
+++ b/internal/pkg/tracker/metrics.go
@@ -0,0 +1,144 @@
+package tracker
+
+import (
+ "context"
+ "github.com/prometheus/client_golang/api"
+ v1 "github.com/prometheus/client_golang/api/prometheus/v1"
+ proModel "github.com/prometheus/common/model"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ "k8s.io/apimachinery/pkg/util/json"
+ "time"
+)
+
+const ADDRESS = "http://10.101.15.3:32585"
+const (
+ NODE_DISK_AVAIL = "node_filesystem_avail_bytes{fstype=~\"ext4|xfs\"}"
+ NODE_DISK_TOTAL = "node_filesystem_size_bytes{fstype=~\"ext4|xfs\"}"
+ NODE_MEMORY_AVAIL = "node_memory_MemAvailable_bytes"
+ NODE_MEMORY_TOTAL = "node_memory_MemTotal_bytes"
+ NODE_CPU_TOTAL_COUNT = "node:node_num_cpu:sum"
+ NODE_CPU_USAGE = "sum by (instance)(increase(node_cpu_seconds_total{mode=\"idle\"}[5m])) / sum by (instance)(increase(node_cpu_seconds_total[5m]))"
+)
+
+func MetricsQuery(statement string) (*proModel.Vector, error) {
+ client, err := api.NewClient(api.Config{
+ Address: ADDRESS,
+ })
+ if err != nil {
+ return nil, err
+ }
+
+ v1api := v1.NewAPI(client)
+ ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
+ defer cancel()
+ metrics, _, err := v1api.Query(ctx, statement, time.Now(), v1.WithTimeout(5*time.Second))
+ marshal, err := json.Marshal(metrics)
+ if err != nil {
+ return nil, err
+ }
+ vector := proModel.Vector{}
+ json.Unmarshal(marshal, &vector)
+ return &vector, nil
+}
+
+// NodeDiskAvail 查询磁盘可用空间
+func NodeDiskAvail(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_DISK_AVAIL)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName {
+ nodes[index].DiskAvail = tool.StringToInt64((*vectors)[index].Value.String())
+ }
+ }
+ }
+ return nodes, nil
+}
+
+// NodeDiskTotal 查询磁盘总空间
+func NodeDiskTotal(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_DISK_TOTAL)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName {
+ nodes[index].DiskTotal = tool.StringToInt64((*vectors)[index].Value.String())
+ }
+ }
+
+ }
+ return nodes, nil
+}
+
+// NodeMemoryTotal 查询内存总大小
+func NodeMemoryTotal(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_MEMORY_TOTAL)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName {
+ nodes[index].MemTotal = tool.StringToInt64((*vectors)[index].Value.String())
+ }
+ }
+
+ }
+ return nodes, nil
+}
+
+// NodeMemoryAvail 查询内存可用大小
+func NodeMemoryAvail(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_MEMORY_AVAIL)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName {
+ nodes[index].MemAvail = tool.StringToInt64((*vectors)[index].Value.String())
+ }
+ }
+
+ }
+ return nodes, nil
+}
+
+// NodeCpuTotalCount 查询cpu总核数
+func NodeCpuTotalCount(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_CPU_TOTAL_COUNT)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["node"]) == nodes[index].NodeName {
+ nodes[index].CpuTotal = tool.StringToInt64((*vectors)[index].Value.String())
+ }
+ }
+
+ }
+ return nodes, nil
+}
+
+// NodeCpuUsage 查询cpu使用率
+func NodeCpuUsage(nodes []*model.ScNodeAvailInfo) ([]*model.ScNodeAvailInfo, error) {
+ vectors, err := MetricsQuery(NODE_CPU_USAGE)
+ if err != nil {
+ return nil, err
+ }
+ for index := range nodes {
+ for i := 0; i < vectors.Len(); i++ {
+ if string((*vectors)[i].Metric["instance"]) == nodes[index].NodeName {
+ nodes[index].CpuUsable = tool.StringToFloat64((*vectors)[index].Value.String())
+ }
+ }
+
+ }
+ return nodes, nil
+}
diff --git a/internal/pkg/tracker/tracker.go b/internal/pkg/tracker/tracker.go
new file mode 100644
index 0000000..53e642a
--- /dev/null
+++ b/internal/pkg/tracker/tracker.go
@@ -0,0 +1,39 @@
+package tracker
+
+import (
+ "context"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/model"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice"
+ "gitlink.org.cn/jcce-pcm/utils/tool"
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+ "k8s.io/client-go/kubernetes"
+)
+
+func NodesDynamicInfo(participantRpc participantservice.ParticipantService, kubeClient *kubernetes.Clientset) ([]*model.ScNodeAvailInfo, error) {
+ var nodes []*model.ScNodeAvailInfo
+ nodeList, err := kubeClient.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{})
+ if err != nil {
+ return nil, err
+ }
+ for _, node := range nodeList.Items {
+ nodePhy := model.ScNodeAvailInfo{
+ NodeName: node.ObjectMeta.Name,
+ }
+ nodes = append(nodes, &nodePhy)
+ }
+ NodeDiskAvail(nodes)
+ NodeDiskTotal(nodes)
+ NodeMemoryTotal(nodes)
+ NodeMemoryAvail(nodes)
+ NodeCpuUsage(nodes)
+ NodeCpuTotalCount(nodes)
+
+ nodeAvailInfo := []*participantservice.NodeAvailInfo{}
+ tool.Convert(nodes, &nodeAvailInfo)
+ req := participantservice.ParticipantAvailReq{
+ NodeAvailInfo: nodeAvailInfo,
+ }
+ participantRpc.ReportAvailable(context.Background(), &req)
+ return nodes, nil
+
+}
diff --git a/internal/server/openstackserver.go b/internal/server/openstackserver.go
new file mode 100644
index 0000000..e7b2ab5
--- /dev/null
+++ b/internal/server/openstackserver.go
@@ -0,0 +1,209 @@
+// Code generated by goctl. DO NOT EDIT.
+// Source: pcm-openstack.proto
+
+package server
+
+import (
+ "context"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/logic"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+)
+
+type OpenstackServer struct {
+ svcCtx *svc.ServiceContext
+ openstack.UnimplementedOpenstackServer
+}
+
+func NewOpenstackServer(svcCtx *svc.ServiceContext) *OpenstackServer {
+ return &OpenstackServer{
+ svcCtx: svcCtx,
+ }
+}
+
+// Overview
+func (s *OpenstackServer) GetComputeLimits(ctx context.Context, in *openstack.GetComputeLimitsReq) (*openstack.GetComputeLimitsResp, error) {
+ l := logic.NewGetComputeLimitsLogic(ctx, s.svcCtx)
+ return l.GetComputeLimits(in)
+}
+
+func (s *OpenstackServer) GetVolumeLimits(ctx context.Context, in *openstack.GetVolumeLimitsReq) (*openstack.GetVolumeLimitsResp, error) {
+ l := logic.NewGetVolumeLimitsLogic(ctx, s.svcCtx)
+ return l.GetVolumeLimits(in)
+}
+
+// Servers
+func (s *OpenstackServer) ListServers(ctx context.Context, in *openstack.ListServersReq) (*openstack.ListServersResp, error) {
+ l := logic.NewListServersLogic(ctx, s.svcCtx)
+ return l.ListServers(in)
+}
+
+func (s *OpenstackServer) ListServersDetailed(ctx context.Context, in *openstack.ListServersDetailedReq) (*openstack.ListServersDetailedResp, error) {
+ l := logic.NewListServersDetailedLogic(ctx, s.svcCtx)
+ return l.ListServersDetailed(in)
+}
+
+func (s *OpenstackServer) CreateServer(ctx context.Context, in *openstack.CreateServerReq) (*openstack.CreateServerResp, error) {
+ l := logic.NewCreateServerLogic(ctx, s.svcCtx)
+ return l.CreateServer(in)
+}
+
+func (s *OpenstackServer) DeleteServer(ctx context.Context, in *openstack.DeleteServerReq) (*openstack.DeleteServerResp, error) {
+ l := logic.NewDeleteServerLogic(ctx, s.svcCtx)
+ return l.DeleteServer(in)
+}
+
+func (s *OpenstackServer) GetServersDetailedById(ctx context.Context, in *openstack.GetServersDetailedByIdReq) (*openstack.GetServersDetailedByIdResp, error) {
+ l := logic.NewGetServersDetailedByIdLogic(ctx, s.svcCtx)
+ return l.GetServersDetailedById(in)
+}
+
+func (s *OpenstackServer) UpdateServer(ctx context.Context, in *openstack.UpdateServerReq) (*openstack.UpdateServerResp, error) {
+ l := logic.NewUpdateServerLogic(ctx, s.svcCtx)
+ return l.UpdateServer(in)
+}
+
+func (s *OpenstackServer) StartServer(ctx context.Context, in *openstack.StartServerReq) (*openstack.StartServerResp, error) {
+ l := logic.NewStartServerLogic(ctx, s.svcCtx)
+ return l.StartServer(in)
+}
+
+func (s *OpenstackServer) StopServer(ctx context.Context, in *openstack.StopServerReq) (*openstack.StopServerResp, error) {
+ l := logic.NewStopServerLogic(ctx, s.svcCtx)
+ return l.StopServer(in)
+}
+
+func (s *OpenstackServer) RebootServer(ctx context.Context, in *openstack.RebootServerReq) (*openstack.RebootServerResp, error) {
+ l := logic.NewRebootServerLogic(ctx, s.svcCtx)
+ return l.RebootServer(in)
+}
+
+func (s *OpenstackServer) PauseServer(ctx context.Context, in *openstack.PauseServerReq) (*openstack.PauseServerResp, error) {
+ l := logic.NewPauseServerLogic(ctx, s.svcCtx)
+ return l.PauseServer(in)
+}
+
+func (s *OpenstackServer) ListFlavorsDetail(ctx context.Context, in *openstack.ListFlavorsDetailReq) (*openstack.ListFlavorsDetailResp, error) {
+ l := logic.NewListFlavorsDetailLogic(ctx, s.svcCtx)
+ return l.ListFlavorsDetail(in)
+}
+
+// network
+func (s *OpenstackServer) ShowNetworkDetails(ctx context.Context, in *openstack.ShowNetworkDetailsReq) (*openstack.ShowNetworkDetailsResp, error) {
+ l := logic.NewShowNetworkDetailsLogic(ctx, s.svcCtx)
+ return l.ShowNetworkDetails(in)
+}
+
+func (s *OpenstackServer) UpdateNetwork(ctx context.Context, in *openstack.UpdateNetworkReq) (*openstack.UpdateNetworkResp, error) {
+ l := logic.NewUpdateNetworkLogic(ctx, s.svcCtx)
+ return l.UpdateNetwork(in)
+}
+
+func (s *OpenstackServer) DeleteNetwork(ctx context.Context, in *openstack.DeleteNetworkReq) (*openstack.DeleteNetworkResp, error) {
+ l := logic.NewDeleteNetworkLogic(ctx, s.svcCtx)
+ return l.DeleteNetwork(in)
+}
+
+func (s *OpenstackServer) ListNetworks(ctx context.Context, in *openstack.ListNetworksReq) (*openstack.ListNetworksResp, error) {
+ l := logic.NewListNetworksLogic(ctx, s.svcCtx)
+ return l.ListNetworks(in)
+}
+
+func (s *OpenstackServer) CreateNetwork(ctx context.Context, in *openstack.CreateNetworkReq) (*openstack.CreateNetworkResp, error) {
+ l := logic.NewCreateNetworkLogic(ctx, s.svcCtx)
+ return l.CreateNetwork(in)
+}
+
+func (s *OpenstackServer) BulkCreateNetworks(ctx context.Context, in *openstack.BulkCreateNetworksReq) (*openstack.BulkCreateNetworksResp, error) {
+ l := logic.NewBulkCreateNetworksLogic(ctx, s.svcCtx)
+ return l.BulkCreateNetworks(in)
+}
+
+func (s *OpenstackServer) CreateSubnet(ctx context.Context, in *openstack.CreateSubnetReq) (*openstack.CreateSubnetResp, error) {
+ l := logic.NewCreateSubnetLogic(ctx, s.svcCtx)
+ return l.CreateSubnet(in)
+}
+
+// Images from glance
+func (s *OpenstackServer) CreateImage(ctx context.Context, in *openstack.CreateImageReq) (*openstack.CreateImageResp, error) {
+ l := logic.NewCreateImageLogic(ctx, s.svcCtx)
+ return l.CreateImage(in)
+}
+
+func (s *OpenstackServer) ListImages(ctx context.Context, in *openstack.ListImagesReq) (*openstack.ListImagesResp, error) {
+ l := logic.NewListImagesLogic(ctx, s.svcCtx)
+ return l.ListImages(in)
+}
+
+func (s *OpenstackServer) DeleteImage(ctx context.Context, in *openstack.DeleteImageReq) (*openstack.DeleteImageResp, error) {
+ l := logic.NewDeleteImageLogic(ctx, s.svcCtx)
+ return l.DeleteImage(in)
+}
+
+func (s *OpenstackServer) UploadImage(ctx context.Context, in *openstack.UploadOsImageReq) (*openstack.UploadOsImageResp, error) {
+ l := logic.NewUploadImageLogic(ctx, s.svcCtx)
+ return l.UploadImage(in)
+}
+
+// Bare Metal
+func (s *OpenstackServer) ListNodes(ctx context.Context, in *openstack.ListNodesReq) (*openstack.ListNodesResp, error) {
+ l := logic.NewListNodesLogic(ctx, s.svcCtx)
+ return l.ListNodes(in)
+}
+
+func (s *OpenstackServer) CreateNode(ctx context.Context, in *openstack.CreateNodeReq) (*openstack.CreateNodeResp, error) {
+ l := logic.NewCreateNodeLogic(ctx, s.svcCtx)
+ return l.CreateNode(in)
+}
+
+func (s *OpenstackServer) DeleteNode(ctx context.Context, in *openstack.DeleteNodeReq) (*openstack.DeleteNodeResp, error) {
+ l := logic.NewDeleteNodeLogic(ctx, s.svcCtx)
+ return l.DeleteNode(in)
+}
+
+func (s *OpenstackServer) ShowNodeDetails(ctx context.Context, in *openstack.ShowNodeDetailsReq) (*openstack.ShowNodeDetailsResp, error) {
+ l := logic.NewShowNodeDetailsLogic(ctx, s.svcCtx)
+ return l.ShowNodeDetails(in)
+}
+
+// cinder(block storage) volumes
+func (s *OpenstackServer) ListVolumes(ctx context.Context, in *openstack.ListVolumesReq) (*openstack.ListVolumesResp, error) {
+ l := logic.NewListVolumesLogic(ctx, s.svcCtx)
+ return l.ListVolumes(in)
+}
+
+func (s *OpenstackServer) ListVolumesDetail(ctx context.Context, in *openstack.ListVolumesDetailReq) (*openstack.ListVolumesDetailResp, error) {
+ l := logic.NewListVolumesDetailLogic(ctx, s.svcCtx)
+ return l.ListVolumesDetail(in)
+}
+
+func (s *OpenstackServer) CreateVolume(ctx context.Context, in *openstack.CreateVolumeReq) (*openstack.CreateVolumeResp, error) {
+ l := logic.NewCreateVolumeLogic(ctx, s.svcCtx)
+ return l.CreateVolume(in)
+}
+
+func (s *OpenstackServer) DeleteVolume(ctx context.Context, in *openstack.DeleteVolumeReq) (*openstack.DeleteVolumeResp, error) {
+ l := logic.NewDeleteVolumeLogic(ctx, s.svcCtx)
+ return l.DeleteVolume(in)
+}
+
+func (s *OpenstackServer) UpdateVolume(ctx context.Context, in *openstack.UpdateVolumeReq) (*openstack.UpdateVolumeResp, error) {
+ l := logic.NewUpdateVolumeLogic(ctx, s.svcCtx)
+ return l.UpdateVolume(in)
+}
+
+func (s *OpenstackServer) ListVolumeTypes(ctx context.Context, in *openstack.ListVolumeTypesReq) (*openstack.ListVolumeTypesResp, error) {
+ l := logic.NewListVolumeTypesLogic(ctx, s.svcCtx)
+ return l.ListVolumeTypes(in)
+}
+
+func (s *OpenstackServer) CreateVolumeTypes(ctx context.Context, in *openstack.CreateTypeReq) (*openstack.CreateTypeResp, error) {
+ l := logic.NewCreateVolumeTypesLogic(ctx, s.svcCtx)
+ return l.CreateVolumeTypes(in)
+}
+
+func (s *OpenstackServer) DeleteVolumeTypes(ctx context.Context, in *openstack.DeleteTypeReq) (*openstack.DeleteTypeResp, error) {
+ l := logic.NewDeleteVolumeTypesLogic(ctx, s.svcCtx)
+ return l.DeleteVolumeTypes(in)
+}
diff --git a/internal/svc/servicecontext.go b/internal/svc/servicecontext.go
new file mode 100644
index 0000000..5c3094e
--- /dev/null
+++ b/internal/svc/servicecontext.go
@@ -0,0 +1,25 @@
+package svc
+
+import (
+ "github.com/robfig/cron/v3"
+ "github.com/zeromicro/go-zero/zrpc"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/participantservice"
+ "gitlink.org.cn/jcce-pcm/pcm-coordinator/rpc/client/pcmcore"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/config"
+)
+
+type ServiceContext struct {
+ Config config.Config
+ Cron *cron.Cron
+ PcmCoreRpc pcmcore.PcmCore
+ ParticipantRpc participantservice.ParticipantService
+}
+
+func NewServiceContext(c config.Config) *ServiceContext {
+ return &ServiceContext{
+ Cron: cron.New(cron.WithSeconds()),
+ Config: c,
+ PcmCoreRpc: pcmcore.NewPcmCore(zrpc.MustNewClient(c.PcmCoreRpcConf)),
+ ParticipantRpc: participantservice.NewParticipantService(zrpc.MustNewClient(c.PcmCoreRpcConf)),
+ }
+}
diff --git a/openstack/pcm-openstack.pb.go b/openstack/pcm-openstack.pb.go
new file mode 100644
index 0000000..c729426
--- /dev/null
+++ b/openstack/pcm-openstack.pb.go
@@ -0,0 +1,22835 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.31.0
+// protoc v3.19.4
+// source: pcm-openstack.proto
+
+package openstack
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// *****************Overview Start************************
+type GetComputeLimitsReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetComputeLimitsReq) Reset() {
+ *x = GetComputeLimitsReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetComputeLimitsReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetComputeLimitsReq) ProtoMessage() {}
+
+func (x *GetComputeLimitsReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetComputeLimitsReq.ProtoReflect.Descriptor instead.
+func (*GetComputeLimitsReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{0}
+}
+
+type GetComputeLimitsResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Limits *GetComputeLimitsResp_Limits `protobuf:"bytes,1,opt,name=limits,proto3" json:"limits,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *GetComputeLimitsResp) Reset() {
+ *x = GetComputeLimitsResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetComputeLimitsResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetComputeLimitsResp) ProtoMessage() {}
+
+func (x *GetComputeLimitsResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetComputeLimitsResp.ProtoReflect.Descriptor instead.
+func (*GetComputeLimitsResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GetComputeLimitsResp) GetLimits() *GetComputeLimitsResp_Limits {
+ if x != nil {
+ return x.Limits
+ }
+ return nil
+}
+
+func (x *GetComputeLimitsResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *GetComputeLimitsResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type GetVolumeLimitsReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetVolumeLimitsReq) Reset() {
+ *x = GetVolumeLimitsReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetVolumeLimitsReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetVolumeLimitsReq) ProtoMessage() {}
+
+func (x *GetVolumeLimitsReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetVolumeLimitsReq.ProtoReflect.Descriptor instead.
+func (*GetVolumeLimitsReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{2}
+}
+
+type GetVolumeLimitsResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Limits *GetVolumeLimitsResp_Limits `protobuf:"bytes,1,opt,name=limits,proto3" json:"limits,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *GetVolumeLimitsResp) Reset() {
+ *x = GetVolumeLimitsResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetVolumeLimitsResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetVolumeLimitsResp) ProtoMessage() {}
+
+func (x *GetVolumeLimitsResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetVolumeLimitsResp.ProtoReflect.Descriptor instead.
+func (*GetVolumeLimitsResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *GetVolumeLimitsResp) GetLimits() *GetVolumeLimitsResp_Limits {
+ if x != nil {
+ return x.Limits
+ }
+ return nil
+}
+
+func (x *GetVolumeLimitsResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *GetVolumeLimitsResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************List servers Start************************
+type ListServersReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // @gotags: copier:"Limit"
+ Offset int32 `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"` // @gotags: copier:"Offset"
+}
+
+func (x *ListServersReq) Reset() {
+ *x = ListServersReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersReq) ProtoMessage() {}
+
+func (x *ListServersReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersReq.ProtoReflect.Descriptor instead.
+func (*ListServersReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *ListServersReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListServersReq) GetOffset() int32 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+
+type ListServersResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Servers []*ListServersResp_Servers `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` //对象列表。server
+ ServersLinks []*ListServersResp_ServersLinks `protobuf:"bytes,2,rep,name=servers_links,json=serversLinks,proto3" json:"servers_links,omitempty"` //链接到下一个服务器
+ Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,4,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,5,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListServersResp) Reset() {
+ *x = ListServersResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersResp) ProtoMessage() {}
+
+func (x *ListServersResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersResp.ProtoReflect.Descriptor instead.
+func (*ListServersResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *ListServersResp) GetServers() []*ListServersResp_Servers {
+ if x != nil {
+ return x.Servers
+ }
+ return nil
+}
+
+func (x *ListServersResp) GetServersLinks() []*ListServersResp_ServersLinks {
+ if x != nil {
+ return x.ServersLinks
+ }
+ return nil
+}
+
+func (x *ListServersResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListServersResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListServersResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type ListServersDetailedReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListServersDetailedReq) Reset() {
+ *x = ListServersDetailedReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedReq) ProtoMessage() {}
+
+func (x *ListServersDetailedReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedReq.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{6}
+}
+
+type ListServersDetailedResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Servers []*ListServersDetailedResp_Servers `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` // @gotags: copier:"ServersDetailed"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListServersDetailedResp) Reset() {
+ *x = ListServersDetailedResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp) ProtoMessage() {}
+
+func (x *ListServersDetailedResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *ListServersDetailedResp) GetServers() []*ListServersDetailedResp_Servers {
+ if x != nil {
+ return x.Servers
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListServersDetailedResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// req
+type CreateServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Server *CreateServerReq_Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` // @gotags: copier:"Server"
+}
+
+func (x *CreateServerReq) Reset() {
+ *x = CreateServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq) ProtoMessage() {}
+
+func (x *CreateServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq.ProtoReflect.Descriptor instead.
+func (*CreateServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *CreateServerReq) GetServer() *CreateServerReq_Server {
+ if x != nil {
+ return x.Server
+ }
+ return nil
+}
+
+// resp
+type CreateServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Server *CreateServerResp_Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` // @gotags: copier:"Server"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateServerResp) Reset() {
+ *x = CreateServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerResp) ProtoMessage() {}
+
+func (x *CreateServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerResp.ProtoReflect.Descriptor instead.
+func (*CreateServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *CreateServerResp) GetServer() *CreateServerResp_Server {
+ if x != nil {
+ return x.Server
+ }
+ return nil
+}
+
+func (x *CreateServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// Req
+type DeleteServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"` // @gotags: copier:"ServerId"
+}
+
+func (x *DeleteServerReq) Reset() {
+ *x = DeleteServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteServerReq) ProtoMessage() {}
+
+func (x *DeleteServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteServerReq.ProtoReflect.Descriptor instead.
+func (*DeleteServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *DeleteServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+// Resp
+type DeleteServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteServerResp) Reset() {
+ *x = DeleteServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteServerResp) ProtoMessage() {}
+
+func (x *DeleteServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteServerResp.ProtoReflect.Descriptor instead.
+func (*DeleteServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *DeleteServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// Req
+type GetServersDetailedByIdReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+}
+
+func (x *GetServersDetailedByIdReq) Reset() {
+ *x = GetServersDetailedByIdReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdReq) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdReq.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *GetServersDetailedByIdReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+// Resp
+type GetServersDetailedByIdResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Server *GetServersDetailedByIdResp_Servers `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *GetServersDetailedByIdResp) Reset() {
+ *x = GetServersDetailedByIdResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *GetServersDetailedByIdResp) GetServer() *GetServersDetailedByIdResp_Servers {
+ if x != nil {
+ return x.Server
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************update server Start************************
+type UpdateServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ Server *UpdateServerReq_Server `protobuf:"bytes,2,opt,name=server,proto3" json:"server,omitempty"`
+}
+
+func (x *UpdateServerReq) Reset() {
+ *x = UpdateServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerReq) ProtoMessage() {}
+
+func (x *UpdateServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerReq.ProtoReflect.Descriptor instead.
+func (*UpdateServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *UpdateServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *UpdateServerReq) GetServer() *UpdateServerReq_Server {
+ if x != nil {
+ return x.Server
+ }
+ return nil
+}
+
+type UpdateServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Server *UpdateServerResp_Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *UpdateServerResp) Reset() {
+ *x = UpdateServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp) ProtoMessage() {}
+
+func (x *UpdateServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *UpdateServerResp) GetServer() *UpdateServerResp_Server {
+ if x != nil {
+ return x.Server
+ }
+ return nil
+}
+
+func (x *UpdateServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *UpdateServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *UpdateServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type StartServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ OsStart *StartServerReq_OsStart `protobuf:"bytes,2,opt,name=osStart,proto3" json:"osStart,omitempty"`
+}
+
+func (x *StartServerReq) Reset() {
+ *x = StartServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartServerReq) ProtoMessage() {}
+
+func (x *StartServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartServerReq.ProtoReflect.Descriptor instead.
+func (*StartServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *StartServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *StartServerReq) GetOsStart() *StartServerReq_OsStart {
+ if x != nil {
+ return x.OsStart
+ }
+ return nil
+}
+
+type StartServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *StartServerResp) Reset() {
+ *x = StartServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartServerResp) ProtoMessage() {}
+
+func (x *StartServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartServerResp.ProtoReflect.Descriptor instead.
+func (*StartServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *StartServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *StartServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *StartServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type StopServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ OsStop *StopServerReq_OsStop `protobuf:"bytes,2,opt,name=osStop,proto3" json:"osStop,omitempty"`
+}
+
+func (x *StopServerReq) Reset() {
+ *x = StopServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopServerReq) ProtoMessage() {}
+
+func (x *StopServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[18]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopServerReq.ProtoReflect.Descriptor instead.
+func (*StopServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *StopServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *StopServerReq) GetOsStop() *StopServerReq_OsStop {
+ if x != nil {
+ return x.OsStop
+ }
+ return nil
+}
+
+type StopServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *StopServerResp) Reset() {
+ *x = StopServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopServerResp) ProtoMessage() {}
+
+func (x *StopServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[19]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopServerResp.ProtoReflect.Descriptor instead.
+func (*StopServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *StopServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *StopServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *StopServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type RebootServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ Reboot *RebootServerReq_Reboot `protobuf:"bytes,2,opt,name=reboot,proto3" json:"reboot,omitempty"`
+}
+
+func (x *RebootServerReq) Reset() {
+ *x = RebootServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RebootServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RebootServerReq) ProtoMessage() {}
+
+func (x *RebootServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[20]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RebootServerReq.ProtoReflect.Descriptor instead.
+func (*RebootServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *RebootServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *RebootServerReq) GetReboot() *RebootServerReq_Reboot {
+ if x != nil {
+ return x.Reboot
+ }
+ return nil
+}
+
+type RebootServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *RebootServerResp) Reset() {
+ *x = RebootServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RebootServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RebootServerResp) ProtoMessage() {}
+
+func (x *RebootServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[21]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RebootServerResp.ProtoReflect.Descriptor instead.
+func (*RebootServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *RebootServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *RebootServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *RebootServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type PauseServerReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ OsPause *PauseServerReq_OsPause `protobuf:"bytes,2,opt,name=osPause,proto3" json:"osPause,omitempty"`
+}
+
+func (x *PauseServerReq) Reset() {
+ *x = PauseServerReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PauseServerReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PauseServerReq) ProtoMessage() {}
+
+func (x *PauseServerReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[22]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PauseServerReq.ProtoReflect.Descriptor instead.
+func (*PauseServerReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *PauseServerReq) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *PauseServerReq) GetOsPause() *PauseServerReq_OsPause {
+ if x != nil {
+ return x.OsPause
+ }
+ return nil
+}
+
+type PauseServerResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *PauseServerResp) Reset() {
+ *x = PauseServerResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PauseServerResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PauseServerResp) ProtoMessage() {}
+
+func (x *PauseServerResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[23]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PauseServerResp.ProtoReflect.Descriptor instead.
+func (*PauseServerResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *PauseServerResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *PauseServerResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *PauseServerResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type ListFlavorsDetailReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SortKey string `protobuf:"bytes,1,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
+ SortDir string `protobuf:"bytes,2,opt,name=sort_dir,json=sortDir,proto3" json:"sort_dir,omitempty"`
+ Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
+ Marker string `protobuf:"bytes,4,opt,name=marker,proto3" json:"marker,omitempty"`
+ MinDisk int32 `protobuf:"varint,5,opt,name=minDisk,proto3" json:"minDisk,omitempty"`
+ MinRam int32 `protobuf:"varint,6,opt,name=minRam,proto3" json:"minRam,omitempty"`
+ IsPublic string `protobuf:"bytes,7,opt,name=is_public,json=isPublic,proto3" json:"is_public,omitempty"`
+}
+
+func (x *ListFlavorsDetailReq) Reset() {
+ *x = ListFlavorsDetailReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListFlavorsDetailReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListFlavorsDetailReq) ProtoMessage() {}
+
+func (x *ListFlavorsDetailReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[24]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListFlavorsDetailReq.ProtoReflect.Descriptor instead.
+func (*ListFlavorsDetailReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *ListFlavorsDetailReq) GetSortKey() string {
+ if x != nil {
+ return x.SortKey
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailReq) GetSortDir() string {
+ if x != nil {
+ return x.SortDir
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailReq) GetMarker() string {
+ if x != nil {
+ return x.Marker
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailReq) GetMinDisk() int32 {
+ if x != nil {
+ return x.MinDisk
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailReq) GetMinRam() int32 {
+ if x != nil {
+ return x.MinRam
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailReq) GetIsPublic() string {
+ if x != nil {
+ return x.IsPublic
+ }
+ return ""
+}
+
+type ListFlavorsDetailResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Flavors []*ListFlavorsDetailResp_Flavor `protobuf:"bytes,1,rep,name=flavors,proto3" json:"flavors,omitempty"` // @gotags: copier:"Flavor"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,3,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListFlavorsDetailResp) Reset() {
+ *x = ListFlavorsDetailResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListFlavorsDetailResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListFlavorsDetailResp) ProtoMessage() {}
+
+func (x *ListFlavorsDetailResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[25]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListFlavorsDetailResp.ProtoReflect.Descriptor instead.
+func (*ListFlavorsDetailResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *ListFlavorsDetailResp) GetFlavors() []*ListFlavorsDetailResp_Flavor {
+ if x != nil {
+ return x.Flavors
+ }
+ return nil
+}
+
+func (x *ListFlavorsDetailResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************Show network details Start************************
+type ShowNetworkDetailsReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NetworkId string `protobuf:"bytes,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"` //网络ID
+ Fields string `protobuf:"bytes,2,opt,name=fields,proto3" json:"fields,omitempty"` //可选,希望服务器返回的字段
+}
+
+func (x *ShowNetworkDetailsReq) Reset() {
+ *x = ShowNetworkDetailsReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNetworkDetailsReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNetworkDetailsReq) ProtoMessage() {}
+
+func (x *ShowNetworkDetailsReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[26]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNetworkDetailsReq.ProtoReflect.Descriptor instead.
+func (*ShowNetworkDetailsReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *ShowNetworkDetailsReq) GetNetworkId() string {
+ if x != nil {
+ return x.NetworkId
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsReq) GetFields() string {
+ if x != nil {
+ return x.Fields
+ }
+ return ""
+}
+
+type Network struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AdminStateUp bool `protobuf:"varint,1,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"` // @gotags: copier:"AdminStateUp"
+ AvailabilityZoneHints []string `protobuf:"bytes,2,rep,name=availability_zone_hints,json=availabilityZoneHints,proto3" json:"availability_zone_hints,omitempty"` // @gotags: copier:"AvailabilityZoneHints"
+ AvailabilityZones []string `protobuf:"bytes,3,rep,name=availability_zones,json=availabilityZones,proto3" json:"availability_zones,omitempty"` // @gotags: copier:"AvailabilityZones"
+ CreatedAt string `protobuf:"bytes,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // @gotags: copier:"CreatedAt"
+ DnsDomain string `protobuf:"bytes,5,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"` // @gotags: copier:"DnsDomain"
+ Id string `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"Id"
+ Ipv4AddressScope string `protobuf:"bytes,7,opt,name=ipv4_address_scope,json=ipv4AddressScope,proto3" json:"ipv4_address_scope,omitempty"` // @gotags: copier:"Ipv4AddressScope"
+ Ipv6AddressScope string `protobuf:"bytes,8,opt,name=ipv6_address_scope,json=ipv6AddressScope,proto3" json:"ipv6_address_scope,omitempty"` // @gotags: copier:"Ipv6AddressScope"
+ L2Adjacency bool `protobuf:"varint,9,opt,name=l2_adjacency,json=l2Adjacency,proto3" json:"l2_adjacency,omitempty"` // @gotags: copier:"L2Adjacency"
+ Mtu int64 `protobuf:"varint,10,opt,name=mtu,proto3" json:"mtu,omitempty"` // @gotags: copier:"Mtu"
+ Name string `protobuf:"bytes,11,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name"
+ PortSecurityEnabled bool `protobuf:"varint,12,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"` // @gotags: copier:"PortSecurityEnabled"
+ ProjectId string `protobuf:"bytes,13,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // @gotags: copier:"ProjectId"
+ QosPolicyId string `protobuf:"bytes,14,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"` // @gotags: copier:"QosPolicyId"
+ RevisionNumber int64 `protobuf:"varint,15,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"` // @gotags: copier:"RevisionNumber"
+ RouterExternal bool `protobuf:"varint,16,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"` // @gotags: copier:"RouterExternal"
+ Shared bool `protobuf:"varint,17,opt,name=shared,proto3" json:"shared,omitempty"` // @gotags: copier:"Shared"
+ Status string `protobuf:"bytes,18,opt,name=status,proto3" json:"status,omitempty"` // @gotags: copier:"Status"
+ Subnets []string `protobuf:"bytes,19,rep,name=subnets,proto3" json:"subnets,omitempty"` // @gotags: copier:"Subnets"
+ Tags []string `protobuf:"bytes,20,rep,name=tags,proto3" json:"tags,omitempty"` // @gotags: copier:"Tags"
+ TenantId string `protobuf:"bytes,21,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` // @gotags: copier:"TenantId"
+ UpdatedAt string `protobuf:"bytes,22,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` // @gotags: copier:"UpdatedAt"
+ VlanTransparent bool `protobuf:"varint,23,opt,name=vlan_transparent,json=vlanTransparent,proto3" json:"vlan_transparent,omitempty"` // @gotags: copier:"VlanTransparent"
+ Description string `protobuf:"bytes,24,opt,name=description,proto3" json:"description,omitempty"` // @gotags: copier:"Description"
+ IsDefault bool `protobuf:"varint,25,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` // @gotags: copier:"IsDefault"
+}
+
+func (x *Network) Reset() {
+ *x = Network{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Network) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Network) ProtoMessage() {}
+
+func (x *Network) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[27]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Network.ProtoReflect.Descriptor instead.
+func (*Network) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *Network) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *Network) GetAvailabilityZoneHints() []string {
+ if x != nil {
+ return x.AvailabilityZoneHints
+ }
+ return nil
+}
+
+func (x *Network) GetAvailabilityZones() []string {
+ if x != nil {
+ return x.AvailabilityZones
+ }
+ return nil
+}
+
+func (x *Network) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *Network) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *Network) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *Network) GetIpv4AddressScope() string {
+ if x != nil {
+ return x.Ipv4AddressScope
+ }
+ return ""
+}
+
+func (x *Network) GetIpv6AddressScope() string {
+ if x != nil {
+ return x.Ipv6AddressScope
+ }
+ return ""
+}
+
+func (x *Network) GetL2Adjacency() bool {
+ if x != nil {
+ return x.L2Adjacency
+ }
+ return false
+}
+
+func (x *Network) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *Network) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Network) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *Network) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *Network) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *Network) GetRevisionNumber() int64 {
+ if x != nil {
+ return x.RevisionNumber
+ }
+ return 0
+}
+
+func (x *Network) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *Network) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *Network) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *Network) GetSubnets() []string {
+ if x != nil {
+ return x.Subnets
+ }
+ return nil
+}
+
+func (x *Network) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *Network) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *Network) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *Network) GetVlanTransparent() bool {
+ if x != nil {
+ return x.VlanTransparent
+ }
+ return false
+}
+
+func (x *Network) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *Network) GetIsDefault() bool {
+ if x != nil {
+ return x.IsDefault
+ }
+ return false
+}
+
+type Segment struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProviderNetworkType string `protobuf:"bytes,1,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"` //此网络映射到的物理网络的类型
+ ProviderPhysicalNetwork string `protobuf:"bytes,2,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"` //实现该网络/分段的物理网络
+ ProviderSegmentationId int64 `protobuf:"varint,3,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"` //物理网络上隔离段的ID,network_type属性定义分段模型
+}
+
+func (x *Segment) Reset() {
+ *x = Segment{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Segment) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Segment) ProtoMessage() {}
+
+func (x *Segment) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[28]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Segment.ProtoReflect.Descriptor instead.
+func (*Segment) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *Segment) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *Segment) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *Segment) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+type ShowNetworkDetailsResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Network *Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` //一个网络对象
+ AdminStateUp bool `protobuf:"varint,2,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"` //网络的管理状态,是向上(true)还是向下(false)
+ AvailabilityZoneHints []string `protobuf:"bytes,3,rep,name=availability_zone_hints,json=availabilityZoneHints,proto3" json:"availability_zone_hints,omitempty"` //网络的可用性区域候选者
+ AvailabilityZones []string `protobuf:"bytes,4,rep,name=availability_zones,json=availabilityZones,proto3" json:"availability_zones,omitempty"` //网络的可用性区域
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` //创建资源的时间
+ DnsDomain string `protobuf:"bytes,6,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"` //有效的DNS域
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"` //网络ID
+ Ipv4AddressScope string `protobuf:"bytes,8,opt,name=ipv4_address_scope,json=ipv4AddressScope,proto3" json:"ipv4_address_scope,omitempty"` //与网络关联的IPv4地址作用域的ID
+ Ipv6AddressScope string `protobuf:"bytes,9,opt,name=ipv6_address_scope,json=ipv6AddressScope,proto3" json:"ipv6_address_scope,omitempty"` //与网络关联的IPv6地址作用域的ID
+ L2Adjacency bool `protobuf:"varint,10,opt,name=l2_adjacency,json=l2Adjacency,proto3" json:"l2_adjacency,omitempty"` //指示L2连接是否在整个网络中可用
+ Mtu int64 `protobuf:"varint,11,opt,name=mtu,proto3" json:"mtu,omitempty"` //要寻址分段的最大传输单元(MTU)值,IPv4最小值为68,IPv6最小值为1280
+ Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"` //人类可读的网络名称
+ PortSecurityEnabled bool `protobuf:"varint,13,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"` //网络的端口安全状态。有效值为启用(true)和禁用(false)
+ ProjectId string `protobuf:"bytes,14,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` //项目ID
+ ProviderNetworkType string `protobuf:"bytes,15,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"` //此网络映射到的物理网络的类型,例如flat、vlan、vxlan或gre。有效值取决于网络后端
+ ProviderPhysicalNetwork string `protobuf:"bytes,16,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"` //实现该网络/分段的物理网络
+ ProviderSegmentationId int64 `protobuf:"varint,17,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"` //物理网络上隔离段的ID,network_type属性定义分段模型
+ QosPolicyId string `protobuf:"bytes,18,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"` //与网络关联的QoS策略的ID
+ RevisionNumber int64 `protobuf:"varint,19,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"` //资源的修订号
+ RouterExternal bool `protobuf:"varint,20,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"` //定义网络是否可用于创建浮动IP,只有具有此标志的网络才能作为路由器的外部网关
+ Segments []*Segment `protobuf:"bytes,21,rep,name=segments,proto3" json:"segments,omitempty"` //提供程序段对象的列表
+ Shared bool `protobuf:"varint,22,opt,name=shared,proto3" json:"shared,omitempty"` //指示是否在所有租户之间共享此网络,默认情况下,只有管理用户才能更改此值
+ Status string `protobuf:"bytes,23,opt,name=status,proto3" json:"status,omitempty"` //网络状态,值为ACTIVE、DOWN、BUILD或ERROR
+ Subnets []string `protobuf:"bytes,24,rep,name=subnets,proto3" json:"subnets,omitempty"` //关联的子网
+ TenantId string `protobuf:"bytes,25,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` //项目的ID
+ UpdatedAt string `protobuf:"bytes,26,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` //资源更新的时间
+ VlanTransparent bool `protobuf:"varint,27,opt,name=vlan_transparent,json=vlanTransparent,proto3" json:"vlan_transparent,omitempty"` //指示网络的VLAN透明模式,为VLAN透明(true)或非VLAN透明(false)
+ Description string `protobuf:"bytes,28,opt,name=description,proto3" json:"description,omitempty"` //人类可读的资源描述
+ IsDefault bool `protobuf:"varint,29,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"` //网络是否为默认池
+ Tags []string `protobuf:"bytes,30,rep,name=tags,proto3" json:"tags,omitempty"` //资源上的标记列表
+ Msg string `protobuf:"bytes,31,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,32,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,33,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ShowNetworkDetailsResp) Reset() {
+ *x = ShowNetworkDetailsResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNetworkDetailsResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNetworkDetailsResp) ProtoMessage() {}
+
+func (x *ShowNetworkDetailsResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[29]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNetworkDetailsResp.ProtoReflect.Descriptor instead.
+func (*ShowNetworkDetailsResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *ShowNetworkDetailsResp) GetNetwork() *Network {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetAvailabilityZoneHints() []string {
+ if x != nil {
+ return x.AvailabilityZoneHints
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetAvailabilityZones() []string {
+ if x != nil {
+ return x.AvailabilityZones
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetIpv4AddressScope() string {
+ if x != nil {
+ return x.Ipv4AddressScope
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetIpv6AddressScope() string {
+ if x != nil {
+ return x.Ipv6AddressScope
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetL2Adjacency() bool {
+ if x != nil {
+ return x.L2Adjacency
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *ShowNetworkDetailsResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+func (x *ShowNetworkDetailsResp) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetRevisionNumber() int64 {
+ if x != nil {
+ return x.RevisionNumber
+ }
+ return 0
+}
+
+func (x *ShowNetworkDetailsResp) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetSegments() []*Segment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetSubnets() []string {
+ if x != nil {
+ return x.Subnets
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetVlanTransparent() bool {
+ if x != nil {
+ return x.VlanTransparent
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetIsDefault() bool {
+ if x != nil {
+ return x.IsDefault
+ }
+ return false
+}
+
+func (x *ShowNetworkDetailsResp) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *ShowNetworkDetailsResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ShowNetworkDetailsResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ShowNetworkDetailsResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************Update network Start************************
+type UpdateNetworkReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NetworkId string `protobuf:"bytes,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"`
+ Network *Network `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"`
+ AdminStateUp bool `protobuf:"varint,3,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"`
+ DnsDomain string `protobuf:"bytes,4,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"`
+ Mtu int64 `protobuf:"varint,5,opt,name=mtu,proto3" json:"mtu,omitempty"`
+ Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
+ PortSecurityEnabled bool `protobuf:"varint,7,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"`
+ ProviderNetworkType string `protobuf:"bytes,8,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"`
+ ProviderPhysicalNetwork string `protobuf:"bytes,9,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"`
+ ProviderSegmentationId int64 `protobuf:"varint,10,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"`
+ QosPolicyId string `protobuf:"bytes,11,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"`
+ RouterExternal bool `protobuf:"varint,12,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"`
+ Segments []*Segment `protobuf:"bytes,13,rep,name=segments,proto3" json:"segments,omitempty"`
+ Shared bool `protobuf:"varint,14,opt,name=shared,proto3" json:"shared,omitempty"`
+ Description string `protobuf:"bytes,15,opt,name=description,proto3" json:"description,omitempty"`
+ IsDefault bool `protobuf:"varint,16,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"`
+}
+
+func (x *UpdateNetworkReq) Reset() {
+ *x = UpdateNetworkReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateNetworkReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateNetworkReq) ProtoMessage() {}
+
+func (x *UpdateNetworkReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[30]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateNetworkReq.ProtoReflect.Descriptor instead.
+func (*UpdateNetworkReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *UpdateNetworkReq) GetNetworkId() string {
+ if x != nil {
+ return x.NetworkId
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetNetwork() *Network {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *UpdateNetworkReq) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *UpdateNetworkReq) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *UpdateNetworkReq) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *UpdateNetworkReq) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+func (x *UpdateNetworkReq) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *UpdateNetworkReq) GetSegments() []*Segment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *UpdateNetworkReq) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *UpdateNetworkReq) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *UpdateNetworkReq) GetIsDefault() bool {
+ if x != nil {
+ return x.IsDefault
+ }
+ return false
+}
+
+type UpdateNetworkResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Network *Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
+ AdminStateUp bool `protobuf:"varint,2,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"`
+ AvailabilityZoneHints []string `protobuf:"bytes,3,rep,name=availability_zone_hints,json=availabilityZoneHints,proto3" json:"availability_zone_hints,omitempty"`
+ AvailabilityZones []string `protobuf:"bytes,4,rep,name=availability_zones,json=availabilityZones,proto3" json:"availability_zones,omitempty"`
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ DnsDomain string `protobuf:"bytes,6,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"`
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+ Ipv4AddressScope string `protobuf:"bytes,8,opt,name=ipv4_address_scope,json=ipv4AddressScope,proto3" json:"ipv4_address_scope,omitempty"`
+ Ipv6AddressScope string `protobuf:"bytes,9,opt,name=ipv6_address_scope,json=ipv6AddressScope,proto3" json:"ipv6_address_scope,omitempty"`
+ L2Adjacency bool `protobuf:"varint,10,opt,name=l2_adjacency,json=l2Adjacency,proto3" json:"l2_adjacency,omitempty"`
+ Mtu int64 `protobuf:"varint,11,opt,name=mtu,proto3" json:"mtu,omitempty"`
+ Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
+ PortSecurityEnabled bool `protobuf:"varint,13,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"`
+ ProjectId string `protobuf:"bytes,14,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ ProviderNetworkType string `protobuf:"bytes,15,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"`
+ ProviderPhysicalNetwork string `protobuf:"bytes,16,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"`
+ ProviderSegmentationId int64 `protobuf:"varint,17,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"`
+ QosPolicyId string `protobuf:"bytes,18,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"`
+ RevisionNumber int64 `protobuf:"varint,19,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"`
+ RouterExternal bool `protobuf:"varint,20,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"`
+ Segments []*Segment `protobuf:"bytes,21,rep,name=segments,proto3" json:"segments,omitempty"`
+ Shared bool `protobuf:"varint,22,opt,name=shared,proto3" json:"shared,omitempty"`
+ Status string `protobuf:"bytes,23,opt,name=status,proto3" json:"status,omitempty"`
+ Subnets []string `protobuf:"bytes,24,rep,name=subnets,proto3" json:"subnets,omitempty"`
+ TenantId string `protobuf:"bytes,25,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ UpdatedAt string `protobuf:"bytes,26,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ Description string `protobuf:"bytes,27,opt,name=description,proto3" json:"description,omitempty"`
+ IsDefault bool `protobuf:"varint,28,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"`
+ Tags []string `protobuf:"bytes,29,rep,name=tags,proto3" json:"tags,omitempty"`
+ Msg string `protobuf:"bytes,30,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,31,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,32,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *UpdateNetworkResp) Reset() {
+ *x = UpdateNetworkResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateNetworkResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateNetworkResp) ProtoMessage() {}
+
+func (x *UpdateNetworkResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[31]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateNetworkResp.ProtoReflect.Descriptor instead.
+func (*UpdateNetworkResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *UpdateNetworkResp) GetNetwork() *Network {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetAvailabilityZoneHints() []string {
+ if x != nil {
+ return x.AvailabilityZoneHints
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetAvailabilityZones() []string {
+ if x != nil {
+ return x.AvailabilityZones
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetIpv4AddressScope() string {
+ if x != nil {
+ return x.Ipv4AddressScope
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetIpv6AddressScope() string {
+ if x != nil {
+ return x.Ipv6AddressScope
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetL2Adjacency() bool {
+ if x != nil {
+ return x.L2Adjacency
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *UpdateNetworkResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+func (x *UpdateNetworkResp) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetRevisionNumber() int64 {
+ if x != nil {
+ return x.RevisionNumber
+ }
+ return 0
+}
+
+func (x *UpdateNetworkResp) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetSegments() []*Segment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetSubnets() []string {
+ if x != nil {
+ return x.Subnets
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetIsDefault() bool {
+ if x != nil {
+ return x.IsDefault
+ }
+ return false
+}
+
+func (x *UpdateNetworkResp) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *UpdateNetworkResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *UpdateNetworkResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *UpdateNetworkResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************Delete network Start************************
+type DeleteNetworkReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NetworkId string `protobuf:"bytes,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"` // @gotags: copier:"NetworkId"
+}
+
+func (x *DeleteNetworkReq) Reset() {
+ *x = DeleteNetworkReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteNetworkReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteNetworkReq) ProtoMessage() {}
+
+func (x *DeleteNetworkReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[32]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteNetworkReq.ProtoReflect.Descriptor instead.
+func (*DeleteNetworkReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *DeleteNetworkReq) GetNetworkId() string {
+ if x != nil {
+ return x.NetworkId
+ }
+ return ""
+}
+
+type DeleteNetworkResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteNetworkResp) Reset() {
+ *x = DeleteNetworkResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteNetworkResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteNetworkResp) ProtoMessage() {}
+
+func (x *DeleteNetworkResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[33]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteNetworkResp.ProtoReflect.Descriptor instead.
+func (*DeleteNetworkResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *DeleteNetworkResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteNetworkResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteNetworkResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************List networks Start************************
+type ListNetworksReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListNetworksReq) Reset() {
+ *x = ListNetworksReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNetworksReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNetworksReq) ProtoMessage() {}
+
+func (x *ListNetworksReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[34]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNetworksReq.ProtoReflect.Descriptor instead.
+func (*ListNetworksReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{34}
+}
+
+type ListNetworksResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Networks []*Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"` // @gotags: copier:"Networks"
+ // bool admin_state_up = 2;
+ //
+ // repeated string availability_zone_hints = 3;
+ // repeated string availability_zones = 4;
+ // string created_at = 5;
+ // string dns_domain = 6;
+ // string id = 7;
+ // string ipv4_address_scope = 8;
+ // string ipv6_address_scope = 9;
+ // bool l2_adjacency = 10;
+ // int64 mtu = 11;
+ // string name = 12;
+ // bool port_security_enabled = 13;
+ // string project_id = 14;
+ // string provider_network_type = 15 [json_name = "provider:network_type"];
+ // string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ // int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ // string qos_policy_id = 18;
+ // int64 revision_number = 19;
+ // bool router_external = 20 [json_name = "router:external"];
+ // repeated Segment segments = 21;
+ // bool shared = 22;
+ // string status = 23;
+ // repeated string subnets = 24;
+ // string tenant_id = 25;
+ // string updated_at = 26;
+ // bool vlan_transparent = 27;
+ // string description = 28;
+ // bool is_default = 29;
+ // repeated string tags = 30;
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListNetworksResp) Reset() {
+ *x = ListNetworksResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNetworksResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNetworksResp) ProtoMessage() {}
+
+func (x *ListNetworksResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[35]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNetworksResp.ProtoReflect.Descriptor instead.
+func (*ListNetworksResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *ListNetworksResp) GetNetworks() []*Network {
+ if x != nil {
+ return x.Networks
+ }
+ return nil
+}
+
+func (x *ListNetworksResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListNetworksResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListNetworksResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************Create network Start************************
+type CreateNetworkReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Network *Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"Network"
+}
+
+func (x *CreateNetworkReq) Reset() {
+ *x = CreateNetworkReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNetworkReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNetworkReq) ProtoMessage() {}
+
+func (x *CreateNetworkReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[36]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNetworkReq.ProtoReflect.Descriptor instead.
+func (*CreateNetworkReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *CreateNetworkReq) GetNetwork() *Network {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+type CreateNetworkResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Network *Network `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"Network"
+ // bool admin_state_up = 2;
+ //
+ // repeated string availability_zone_hints = 3;
+ // repeated string availability_zones = 4;
+ // string created_at = 5;
+ // string dns_domain = 6;
+ // string id = 7;
+ // string ipv4_address_scope = 8;
+ // string ipv6_address_scope = 9;
+ // bool l2_adjacency = 10;
+ // int64 mtu = 11;
+ // string name = 12;
+ // bool port_security_enabled = 13;
+ // string project_id = 14;
+ // string provider_network_type = 15 [json_name = "provider:network_type"];
+ // string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ // int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ // string qos_policy_id = 18;
+ // int64 revision_number = 19;
+ // bool router_external = 20 [json_name = "router:external"];
+ // repeated Segment segments = 21;
+ // bool shared = 22;
+ // string status = 23;
+ // repeated string subnets = 24;
+ // string updated_at = 25;
+ // bool vlan_transparent = 26;
+ // string description = 27;
+ // bool is_default = 28;
+ // repeated string tags = 29;
+ Code int32 `protobuf:"varint,30,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,31,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,32,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateNetworkResp) Reset() {
+ *x = CreateNetworkResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNetworkResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNetworkResp) ProtoMessage() {}
+
+func (x *CreateNetworkResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[37]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNetworkResp.ProtoReflect.Descriptor instead.
+func (*CreateNetworkResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{37}
+}
+
+func (x *CreateNetworkResp) GetNetwork() *Network {
+ if x != nil {
+ return x.Network
+ }
+ return nil
+}
+
+func (x *CreateNetworkResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateNetworkResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateNetworkResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************Create network End************************
+type CreateSubnetReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Subnet *Subnet `protobuf:"bytes,1,opt,name=subnet,proto3" json:"subnet,omitempty"` // @gotags: copier:"Subnet"
+}
+
+func (x *CreateSubnetReq) Reset() {
+ *x = CreateSubnetReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateSubnetReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateSubnetReq) ProtoMessage() {}
+
+func (x *CreateSubnetReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[38]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateSubnetReq.ProtoReflect.Descriptor instead.
+func (*CreateSubnetReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *CreateSubnetReq) GetSubnet() *Subnet {
+ if x != nil {
+ return x.Subnet
+ }
+ return nil
+}
+
+type CreateSubnetResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Subnet *SubnetResp `protobuf:"bytes,1,opt,name=subnet,proto3" json:"subnet,omitempty"` // @gotags: copier:"SubnetResp"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateSubnetResp) Reset() {
+ *x = CreateSubnetResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateSubnetResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateSubnetResp) ProtoMessage() {}
+
+func (x *CreateSubnetResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[39]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateSubnetResp.ProtoReflect.Descriptor instead.
+func (*CreateSubnetResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *CreateSubnetResp) GetSubnet() *SubnetResp {
+ if x != nil {
+ return x.Subnet
+ }
+ return nil
+}
+
+func (x *CreateSubnetResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateSubnetResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateSubnetResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type Subnet struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NetworkId string `protobuf:"bytes,1,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"` //@gotags: copier:"NetworkId"
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` //@gotags: copier:"Name"
+ Cidr string `protobuf:"bytes,3,opt,name=cidr,proto3" json:"cidr,omitempty"` //@gotags: copier:"Cidr"
+ IpVersion int32 `protobuf:"varint,4,opt,name=ip_version,json=ipVersion,proto3" json:"ip_version,omitempty"` //@gotags: copier:"IpVersion"
+ GatewayIp string `protobuf:"bytes,5,opt,name=gateway_ip,json=gatewayIp,proto3" json:"gateway_ip,omitempty"` //@gotags: copier:"GatewayIp"
+ EnableDhcp bool `protobuf:"varint,6,opt,name=enable_dhcp,json=enableDhcp,proto3" json:"enable_dhcp,omitempty"` //@gotags: copier:"EnableDhcp"
+ AllocationPools []*AllocationPools `protobuf:"bytes,7,rep,name=allocation_pools,json=allocationPools,proto3" json:"allocation_pools,omitempty"` //@gotags: copier:"AllocationPools"
+ DnsNameservers []string `protobuf:"bytes,8,rep,name=dns_nameservers,json=dnsNameservers,proto3" json:"dns_nameservers,omitempty"` //@gotags: copier:"DnsNameservers"
+ HostRoutes []string `protobuf:"bytes,9,rep,name=host_routes,json=hostRoutes,proto3" json:"host_routes,omitempty"` //@gotags: copier:"HostRoutes"
+}
+
+func (x *Subnet) Reset() {
+ *x = Subnet{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Subnet) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Subnet) ProtoMessage() {}
+
+func (x *Subnet) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[40]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Subnet.ProtoReflect.Descriptor instead.
+func (*Subnet) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *Subnet) GetNetworkId() string {
+ if x != nil {
+ return x.NetworkId
+ }
+ return ""
+}
+
+func (x *Subnet) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *Subnet) GetCidr() string {
+ if x != nil {
+ return x.Cidr
+ }
+ return ""
+}
+
+func (x *Subnet) GetIpVersion() int32 {
+ if x != nil {
+ return x.IpVersion
+ }
+ return 0
+}
+
+func (x *Subnet) GetGatewayIp() string {
+ if x != nil {
+ return x.GatewayIp
+ }
+ return ""
+}
+
+func (x *Subnet) GetEnableDhcp() bool {
+ if x != nil {
+ return x.EnableDhcp
+ }
+ return false
+}
+
+func (x *Subnet) GetAllocationPools() []*AllocationPools {
+ if x != nil {
+ return x.AllocationPools
+ }
+ return nil
+}
+
+func (x *Subnet) GetDnsNameservers() []string {
+ if x != nil {
+ return x.DnsNameservers
+ }
+ return nil
+}
+
+func (x *Subnet) GetHostRoutes() []string {
+ if x != nil {
+ return x.HostRoutes
+ }
+ return nil
+}
+
+type SubnetResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Cidr string `protobuf:"bytes,2,opt,name=cidr,proto3" json:"cidr,omitempty"`
+ IpVersion int32 `protobuf:"varint,3,opt,name=ip_version,json=ipVersion,proto3" json:"ip_version,omitempty"`
+ GatewayIp string `protobuf:"bytes,4,opt,name=gateway_ip,json=gatewayIp,proto3" json:"gateway_ip,omitempty"`
+ EnableDhcp bool `protobuf:"varint,5,opt,name=enable_dhcp,json=enableDhcp,proto3" json:"enable_dhcp,omitempty"`
+ AllocationPools []*AllocationPools `protobuf:"bytes,6,rep,name=allocation_pools,json=allocationPools,proto3" json:"allocation_pools,omitempty"` //@gotags: copier:"Allocation_pools"
+ DnsNameservers []string `protobuf:"bytes,7,rep,name=dns_nameservers,json=dnsNameservers,proto3" json:"dns_nameservers,omitempty"`
+ HostRoutes []string `protobuf:"bytes,8,rep,name=host_routes,json=hostRoutes,proto3" json:"host_routes,omitempty"`
+ NetworkId string `protobuf:"bytes,9,opt,name=network_id,json=networkId,proto3" json:"network_id,omitempty"`
+ SegmentId string `protobuf:"bytes,10,opt,name=segment_id,json=segmentId,proto3" json:"segment_id,omitempty"`
+ ProjectId string `protobuf:"bytes,11,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ TenantId string `protobuf:"bytes,12,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ DnsPublishFixedIp string `protobuf:"bytes,13,opt,name=dns_publish_fixed_ip,json=dnsPublishFixedIp,proto3" json:"dns_publish_fixed_ip,omitempty"`
+ Id string `protobuf:"bytes,14,opt,name=id,proto3" json:"id,omitempty"`
+ CreatedAt string `protobuf:"bytes,15,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ Description string `protobuf:"bytes,16,opt,name=description,proto3" json:"description,omitempty"`
+ Ipv6AddressMode string `protobuf:"bytes,17,opt,name=ipv6_address_mode,json=ipv6AddressMode,proto3" json:"ipv6_address_mode,omitempty"`
+ Ipv6RaMode string `protobuf:"bytes,18,opt,name=ipv6_ra_mode,json=ipv6RaMode,proto3" json:"ipv6_ra_mode,omitempty"`
+ RevisionNumber string `protobuf:"bytes,19,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"`
+ ServiceTypes []string `protobuf:"bytes,20,rep,name=service_types,json=serviceTypes,proto3" json:"service_types,omitempty"`
+ SubnetpoolId string `protobuf:"bytes,21,opt,name=subnetpool_id,json=subnetpoolId,proto3" json:"subnetpool_id,omitempty"`
+ Tags []string `protobuf:"bytes,22,rep,name=tags,proto3" json:"tags,omitempty"`
+ UpdatedAt string `protobuf:"bytes,23,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+}
+
+func (x *SubnetResp) Reset() {
+ *x = SubnetResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SubnetResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SubnetResp) ProtoMessage() {}
+
+func (x *SubnetResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[41]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SubnetResp.ProtoReflect.Descriptor instead.
+func (*SubnetResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *SubnetResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetCidr() string {
+ if x != nil {
+ return x.Cidr
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetIpVersion() int32 {
+ if x != nil {
+ return x.IpVersion
+ }
+ return 0
+}
+
+func (x *SubnetResp) GetGatewayIp() string {
+ if x != nil {
+ return x.GatewayIp
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetEnableDhcp() bool {
+ if x != nil {
+ return x.EnableDhcp
+ }
+ return false
+}
+
+func (x *SubnetResp) GetAllocationPools() []*AllocationPools {
+ if x != nil {
+ return x.AllocationPools
+ }
+ return nil
+}
+
+func (x *SubnetResp) GetDnsNameservers() []string {
+ if x != nil {
+ return x.DnsNameservers
+ }
+ return nil
+}
+
+func (x *SubnetResp) GetHostRoutes() []string {
+ if x != nil {
+ return x.HostRoutes
+ }
+ return nil
+}
+
+func (x *SubnetResp) GetNetworkId() string {
+ if x != nil {
+ return x.NetworkId
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetSegmentId() string {
+ if x != nil {
+ return x.SegmentId
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetDnsPublishFixedIp() string {
+ if x != nil {
+ return x.DnsPublishFixedIp
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetIpv6AddressMode() string {
+ if x != nil {
+ return x.Ipv6AddressMode
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetIpv6RaMode() string {
+ if x != nil {
+ return x.Ipv6RaMode
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetRevisionNumber() string {
+ if x != nil {
+ return x.RevisionNumber
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetServiceTypes() []string {
+ if x != nil {
+ return x.ServiceTypes
+ }
+ return nil
+}
+
+func (x *SubnetResp) GetSubnetpoolId() string {
+ if x != nil {
+ return x.SubnetpoolId
+ }
+ return ""
+}
+
+func (x *SubnetResp) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *SubnetResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+type AllocationPools struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Start string `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` // @gotags: copier:"Start"
+ End string `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` // @gotags: copier:"End"
+}
+
+func (x *AllocationPools) Reset() {
+ *x = AllocationPools{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AllocationPools) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AllocationPools) ProtoMessage() {}
+
+func (x *AllocationPools) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[42]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AllocationPools.ProtoReflect.Descriptor instead.
+func (*AllocationPools) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{42}
+}
+
+func (x *AllocationPools) GetStart() string {
+ if x != nil {
+ return x.Start
+ }
+ return ""
+}
+
+func (x *AllocationPools) GetEnd() string {
+ if x != nil {
+ return x.End
+ }
+ return ""
+}
+
+// *****************Bulk create networks Start************************
+type BulkCreateNetworksReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Networks []*Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"`
+ AdminStateUp bool `protobuf:"varint,2,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"`
+ DnsDomain string `protobuf:"bytes,3,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"`
+ Mtu int64 `protobuf:"varint,4,opt,name=mtu,proto3" json:"mtu,omitempty"`
+ Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
+ PortSecurityEnabled bool `protobuf:"varint,6,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"`
+ ProjectId string `protobuf:"bytes,7,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ ProviderNetworkType string `protobuf:"bytes,8,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"`
+ ProviderPhysicalNetwork string `protobuf:"bytes,9,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"`
+ ProviderSegmentationId int64 `protobuf:"varint,10,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"`
+ QosPolicyId string `protobuf:"bytes,11,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"`
+ RouterExternal bool `protobuf:"varint,12,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"`
+ Segments []*Segment `protobuf:"bytes,13,rep,name=segments,proto3" json:"segments,omitempty"`
+ Shared bool `protobuf:"varint,14,opt,name=shared,proto3" json:"shared,omitempty"`
+ TenantId string `protobuf:"bytes,15,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ VlanTransparent bool `protobuf:"varint,16,opt,name=vlan_transparent,json=vlanTransparent,proto3" json:"vlan_transparent,omitempty"`
+ Description string `protobuf:"bytes,17,opt,name=description,proto3" json:"description,omitempty"`
+ AvailabilityZoneHints []string `protobuf:"bytes,18,rep,name=availability_zone_hints,json=availabilityZoneHints,proto3" json:"availability_zone_hints,omitempty"`
+}
+
+func (x *BulkCreateNetworksReq) Reset() {
+ *x = BulkCreateNetworksReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BulkCreateNetworksReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BulkCreateNetworksReq) ProtoMessage() {}
+
+func (x *BulkCreateNetworksReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[43]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BulkCreateNetworksReq.ProtoReflect.Descriptor instead.
+func (*BulkCreateNetworksReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{43}
+}
+
+func (x *BulkCreateNetworksReq) GetNetworks() []*Network {
+ if x != nil {
+ return x.Networks
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksReq) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksReq) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksReq) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksReq) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksReq) GetSegments() []*Segment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksReq) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksReq) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetVlanTransparent() bool {
+ if x != nil {
+ return x.VlanTransparent
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksReq) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksReq) GetAvailabilityZoneHints() []string {
+ if x != nil {
+ return x.AvailabilityZoneHints
+ }
+ return nil
+}
+
+type BulkCreateNetworksResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Networks []*Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"`
+ AdminStateUp bool `protobuf:"varint,2,opt,name=admin_state_up,json=adminStateUp,proto3" json:"admin_state_up,omitempty"`
+ AvailabilityZoneHints []string `protobuf:"bytes,3,rep,name=availability_zone_hints,json=availabilityZoneHints,proto3" json:"availability_zone_hints,omitempty"`
+ AvailabilityZones []string `protobuf:"bytes,4,rep,name=availability_zones,json=availabilityZones,proto3" json:"availability_zones,omitempty"`
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ DnsDomain string `protobuf:"bytes,6,opt,name=dns_domain,json=dnsDomain,proto3" json:"dns_domain,omitempty"`
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+ Ipv4AddressScope string `protobuf:"bytes,8,opt,name=ipv4_address_scope,json=ipv4AddressScope,proto3" json:"ipv4_address_scope,omitempty"`
+ Ipv6AddressScope string `protobuf:"bytes,9,opt,name=ipv6_address_scope,json=ipv6AddressScope,proto3" json:"ipv6_address_scope,omitempty"`
+ L2Adjacency bool `protobuf:"varint,10,opt,name=l2_adjacency,json=l2Adjacency,proto3" json:"l2_adjacency,omitempty"`
+ Mtu int64 `protobuf:"varint,11,opt,name=mtu,proto3" json:"mtu,omitempty"`
+ Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
+ PortSecurityEnabled bool `protobuf:"varint,13,opt,name=port_security_enabled,json=portSecurityEnabled,proto3" json:"port_security_enabled,omitempty"`
+ ProjectId string `protobuf:"bytes,14,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ ProviderNetworkType string `protobuf:"bytes,15,opt,name=provider_network_type,json=provider:network_type,proto3" json:"provider_network_type,omitempty"`
+ ProviderPhysicalNetwork string `protobuf:"bytes,16,opt,name=provider_physical_network,json=provider:physical_network,proto3" json:"provider_physical_network,omitempty"`
+ ProviderSegmentationId int64 `protobuf:"varint,17,opt,name=provider_segmentation_id,json=provider:segmentation_id,proto3" json:"provider_segmentation_id,omitempty"`
+ QosPolicyId string `protobuf:"bytes,18,opt,name=qos_policy_id,json=qosPolicyId,proto3" json:"qos_policy_id,omitempty"`
+ RevisionNumber int64 `protobuf:"varint,19,opt,name=revision_number,json=revisionNumber,proto3" json:"revision_number,omitempty"`
+ RouterExternal bool `protobuf:"varint,20,opt,name=router_external,json=router:external,proto3" json:"router_external,omitempty"`
+ Segments []*Segment `protobuf:"bytes,21,rep,name=segments,proto3" json:"segments,omitempty"`
+ Shared bool `protobuf:"varint,22,opt,name=shared,proto3" json:"shared,omitempty"`
+ Status string `protobuf:"bytes,23,opt,name=status,proto3" json:"status,omitempty"`
+ Subnets []string `protobuf:"bytes,24,rep,name=subnets,proto3" json:"subnets,omitempty"`
+ TenantId string `protobuf:"bytes,25,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ UpdatedAt string `protobuf:"bytes,26,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ VlanTransparent bool `protobuf:"varint,27,opt,name=vlan_transparent,json=vlanTransparent,proto3" json:"vlan_transparent,omitempty"`
+ Description string `protobuf:"bytes,28,opt,name=description,proto3" json:"description,omitempty"`
+ IsDefault bool `protobuf:"varint,29,opt,name=is_default,json=isDefault,proto3" json:"is_default,omitempty"`
+ Tags []string `protobuf:"bytes,30,rep,name=tags,proto3" json:"tags,omitempty"`
+ Code int32 `protobuf:"varint,31,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,32,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,33,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *BulkCreateNetworksResp) Reset() {
+ *x = BulkCreateNetworksResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *BulkCreateNetworksResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*BulkCreateNetworksResp) ProtoMessage() {}
+
+func (x *BulkCreateNetworksResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[44]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use BulkCreateNetworksResp.ProtoReflect.Descriptor instead.
+func (*BulkCreateNetworksResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{44}
+}
+
+func (x *BulkCreateNetworksResp) GetNetworks() []*Network {
+ if x != nil {
+ return x.Networks
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetAdminStateUp() bool {
+ if x != nil {
+ return x.AdminStateUp
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetAvailabilityZoneHints() []string {
+ if x != nil {
+ return x.AvailabilityZoneHints
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetAvailabilityZones() []string {
+ if x != nil {
+ return x.AvailabilityZones
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetDnsDomain() string {
+ if x != nil {
+ return x.DnsDomain
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetIpv4AddressScope() string {
+ if x != nil {
+ return x.Ipv4AddressScope
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetIpv6AddressScope() string {
+ if x != nil {
+ return x.Ipv6AddressScope
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetL2Adjacency() bool {
+ if x != nil {
+ return x.L2Adjacency
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetMtu() int64 {
+ if x != nil {
+ return x.Mtu
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetPortSecurityEnabled() bool {
+ if x != nil {
+ return x.PortSecurityEnabled
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetProviderNetworkType() string {
+ if x != nil {
+ return x.ProviderNetworkType
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetProviderPhysicalNetwork() string {
+ if x != nil {
+ return x.ProviderPhysicalNetwork
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetProviderSegmentationId() int64 {
+ if x != nil {
+ return x.ProviderSegmentationId
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksResp) GetQosPolicyId() string {
+ if x != nil {
+ return x.QosPolicyId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetRevisionNumber() int64 {
+ if x != nil {
+ return x.RevisionNumber
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksResp) GetRouterExternal() bool {
+ if x != nil {
+ return x.RouterExternal
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetSegments() []*Segment {
+ if x != nil {
+ return x.Segments
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetShared() bool {
+ if x != nil {
+ return x.Shared
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetSubnets() []string {
+ if x != nil {
+ return x.Subnets
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetVlanTransparent() bool {
+ if x != nil {
+ return x.VlanTransparent
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetIsDefault() bool {
+ if x != nil {
+ return x.IsDefault
+ }
+ return false
+}
+
+func (x *BulkCreateNetworksResp) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *BulkCreateNetworksResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *BulkCreateNetworksResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *BulkCreateNetworksResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// ***************** Bare Metal ListNodes Start************************
+type ListNodesReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ InstanceUuid string `protobuf:"bytes,1,opt,name=instance_uuid,json=instanceUuid,proto3" json:"instance_uuid,omitempty"`
+ Maintenance bool `protobuf:"varint,2,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
+ Associated bool `protobuf:"varint,3,opt,name=associated,proto3" json:"associated,omitempty"`
+ ProvisionState string `protobuf:"bytes,4,opt,name=provision_state,json=provisionState,proto3" json:"provision_state,omitempty"`
+ Sharded bool `protobuf:"varint,5,opt,name=sharded,proto3" json:"sharded,omitempty"`
+ Driver string `protobuf:"bytes,6,opt,name=driver,proto3" json:"driver,omitempty"`
+ ResourceClass string `protobuf:"bytes,7,opt,name=resource_class,json=resourceClass,proto3" json:"resource_class,omitempty"`
+ ConductorGroup string `protobuf:"bytes,8,opt,name=conductor_group,json=conductorGroup,proto3" json:"conductor_group,omitempty"`
+ Conductor string `protobuf:"bytes,9,opt,name=conductor,proto3" json:"conductor,omitempty"`
+ Fault string `protobuf:"bytes,10,opt,name=fault,proto3" json:"fault,omitempty"`
+ Owner string `protobuf:"bytes,11,opt,name=owner,proto3" json:"owner,omitempty"`
+ Lessee string `protobuf:"bytes,12,opt,name=lessee,proto3" json:"lessee,omitempty"`
+ Shard []string `protobuf:"bytes,13,rep,name=shard,proto3" json:"shard,omitempty"`
+ Limit int64 `protobuf:"varint,14,opt,name=limit,proto3" json:"limit,omitempty"`
+ Marker string `protobuf:"bytes,15,opt,name=marker,proto3" json:"marker,omitempty"`
+ SortDir string `protobuf:"bytes,16,opt,name=sort_dir,json=sortDir,proto3" json:"sort_dir,omitempty"`
+ SortKey string `protobuf:"bytes,17,opt,name=sort_key,json=sortKey,proto3" json:"sort_key,omitempty"`
+ Detail bool `protobuf:"varint,18,opt,name=detail,proto3" json:"detail,omitempty"`
+ ParentNode string `protobuf:"bytes,19,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"`
+ IncludeChildren string `protobuf:"bytes,20,opt,name=include_children,json=includeChildren,proto3" json:"include_children,omitempty"`
+}
+
+func (x *ListNodesReq) Reset() {
+ *x = ListNodesReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNodesReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNodesReq) ProtoMessage() {}
+
+func (x *ListNodesReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[45]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNodesReq.ProtoReflect.Descriptor instead.
+func (*ListNodesReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{45}
+}
+
+func (x *ListNodesReq) GetInstanceUuid() string {
+ if x != nil {
+ return x.InstanceUuid
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetMaintenance() bool {
+ if x != nil {
+ return x.Maintenance
+ }
+ return false
+}
+
+func (x *ListNodesReq) GetAssociated() bool {
+ if x != nil {
+ return x.Associated
+ }
+ return false
+}
+
+func (x *ListNodesReq) GetProvisionState() string {
+ if x != nil {
+ return x.ProvisionState
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetSharded() bool {
+ if x != nil {
+ return x.Sharded
+ }
+ return false
+}
+
+func (x *ListNodesReq) GetDriver() string {
+ if x != nil {
+ return x.Driver
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetResourceClass() string {
+ if x != nil {
+ return x.ResourceClass
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetConductorGroup() string {
+ if x != nil {
+ return x.ConductorGroup
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetConductor() string {
+ if x != nil {
+ return x.Conductor
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetFault() string {
+ if x != nil {
+ return x.Fault
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetLessee() string {
+ if x != nil {
+ return x.Lessee
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetShard() []string {
+ if x != nil {
+ return x.Shard
+ }
+ return nil
+}
+
+func (x *ListNodesReq) GetLimit() int64 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListNodesReq) GetMarker() string {
+ if x != nil {
+ return x.Marker
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetSortDir() string {
+ if x != nil {
+ return x.SortDir
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetSortKey() string {
+ if x != nil {
+ return x.SortKey
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetDetail() bool {
+ if x != nil {
+ return x.Detail
+ }
+ return false
+}
+
+func (x *ListNodesReq) GetParentNode() string {
+ if x != nil {
+ return x.ParentNode
+ }
+ return ""
+}
+
+func (x *ListNodesReq) GetIncludeChildren() string {
+ if x != nil {
+ return x.IncludeChildren
+ }
+ return ""
+}
+
+type ListNodesResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Nodes []*ListNodesResp_Nodes `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListNodesResp) Reset() {
+ *x = ListNodesResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNodesResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNodesResp) ProtoMessage() {}
+
+func (x *ListNodesResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[46]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNodesResp.ProtoReflect.Descriptor instead.
+func (*ListNodesResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *ListNodesResp) GetNodes() []*ListNodesResp_Nodes {
+ if x != nil {
+ return x.Nodes
+ }
+ return nil
+}
+
+func (x *ListNodesResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListNodesResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListNodesResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// ***************** Bare Metal createNode Start************************
+type CreateNodeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Driver string `protobuf:"bytes,2,opt,name=driver,proto3" json:"driver,omitempty"`
+ DriverInfo *CreateNodeReq_DriverInfo `protobuf:"bytes,3,opt,name=driver_info,json=driverInfo,proto3" json:"driver_info,omitempty"`
+ PowerInterface string `protobuf:"bytes,4,opt,name=power_interface,json=powerInterface,proto3" json:"power_interface,omitempty"`
+ ResourceClass string `protobuf:"bytes,5,opt,name=resource_class,json=resourceClass,proto3" json:"resource_class,omitempty"`
+ BootInterface string `protobuf:"bytes,6,opt,name=boot_interface,json=bootInterface,proto3" json:"boot_interface,omitempty"`
+ ConductorGroup string `protobuf:"bytes,7,opt,name=conductor_group,json=conductorGroup,proto3" json:"conductor_group,omitempty"`
+ ConsoleInterface string `protobuf:"bytes,8,opt,name=console_interface,json=consoleInterface,proto3" json:"console_interface,omitempty"`
+ DeployInterface string `protobuf:"bytes,9,opt,name=deploy_interface,json=deployInterface,proto3" json:"deploy_interface,omitempty"`
+ InspectInterface string `protobuf:"bytes,10,opt,name=inspect_interface,json=inspectInterface,proto3" json:"inspect_interface,omitempty"`
+ ManagementInterface string `protobuf:"bytes,11,opt,name=management_interface,json=managementInterface,proto3" json:"management_interface,omitempty"`
+ NetworkInterface string `protobuf:"bytes,12,opt,name=network_interface,json=networkInterface,proto3" json:"network_interface,omitempty"`
+ RescueInterface string `protobuf:"bytes,13,opt,name=rescue_interface,json=rescueInterface,proto3" json:"rescue_interface,omitempty"`
+ StorageInterface string `protobuf:"bytes,14,opt,name=storage_interface,json=storageInterface,proto3" json:"storage_interface,omitempty"`
+ Uuid string `protobuf:"bytes,15,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ VendorInterface string `protobuf:"bytes,16,opt,name=vendor_interface,json=vendorInterface,proto3" json:"vendor_interface,omitempty"`
+ Owner string `protobuf:"bytes,17,opt,name=owner,proto3" json:"owner,omitempty"`
+ Description string `protobuf:"bytes,18,opt,name=description,proto3" json:"description,omitempty"`
+ Lessee string `protobuf:"bytes,19,opt,name=lessee,proto3" json:"lessee,omitempty"`
+ Shard string `protobuf:"bytes,20,opt,name=shard,proto3" json:"shard,omitempty"`
+ Properties *CreateNodeReq_Properties `protobuf:"bytes,21,opt,name=properties,proto3" json:"properties,omitempty"`
+ AutomatedClean bool `protobuf:"varint,22,opt,name=automated_clean,json=automatedClean,proto3" json:"automated_clean,omitempty"`
+ BiosInterface string `protobuf:"bytes,23,opt,name=bios_interface,json=biosInterface,proto3" json:"bios_interface,omitempty"`
+ ChassisUuid string `protobuf:"bytes,24,opt,name=chassis_uuid,json=chassisUuid,proto3" json:"chassis_uuid,omitempty"`
+ InstanceInfo *CreateNodeReq_InstanceInfo `protobuf:"bytes,25,opt,name=instance_info,json=instanceInfo,proto3" json:"instance_info,omitempty"`
+ InstanceUuid string `protobuf:"bytes,26,opt,name=instance_uuid,json=instanceUuid,proto3" json:"instance_uuid,omitempty"`
+ Maintenance bool `protobuf:"varint,27,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
+ MaintenanceReason bool `protobuf:"varint,28,opt,name=maintenance_reason,json=maintenanceReason,proto3" json:"maintenance_reason,omitempty"`
+ NetworkData *CreateNodeReq_NetworkData `protobuf:"bytes,29,opt,name=network_data,json=networkData,proto3" json:"network_data,omitempty"`
+ ParentNode string `protobuf:"bytes,30,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"`
+ Protected bool `protobuf:"varint,31,opt,name=protected,proto3" json:"protected,omitempty"`
+ ProtectedReason string `protobuf:"bytes,32,opt,name=protected_reason,json=protectedReason,proto3" json:"protected_reason,omitempty"`
+ Retired bool `protobuf:"varint,33,opt,name=retired,proto3" json:"retired,omitempty"`
+ RetiredReason string `protobuf:"bytes,34,opt,name=retired_reason,json=retiredReason,proto3" json:"retired_reason,omitempty"`
+ Code int32 `protobuf:"varint,35,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,36,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,37,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateNodeReq) Reset() {
+ *x = CreateNodeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeReq) ProtoMessage() {}
+
+func (x *CreateNodeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[47]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeReq.ProtoReflect.Descriptor instead.
+func (*CreateNodeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{47}
+}
+
+func (x *CreateNodeReq) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetDriver() string {
+ if x != nil {
+ return x.Driver
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetDriverInfo() *CreateNodeReq_DriverInfo {
+ if x != nil {
+ return x.DriverInfo
+ }
+ return nil
+}
+
+func (x *CreateNodeReq) GetPowerInterface() string {
+ if x != nil {
+ return x.PowerInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetResourceClass() string {
+ if x != nil {
+ return x.ResourceClass
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetBootInterface() string {
+ if x != nil {
+ return x.BootInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetConductorGroup() string {
+ if x != nil {
+ return x.ConductorGroup
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetConsoleInterface() string {
+ if x != nil {
+ return x.ConsoleInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetDeployInterface() string {
+ if x != nil {
+ return x.DeployInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetInspectInterface() string {
+ if x != nil {
+ return x.InspectInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetManagementInterface() string {
+ if x != nil {
+ return x.ManagementInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetNetworkInterface() string {
+ if x != nil {
+ return x.NetworkInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetRescueInterface() string {
+ if x != nil {
+ return x.RescueInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetStorageInterface() string {
+ if x != nil {
+ return x.StorageInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetVendorInterface() string {
+ if x != nil {
+ return x.VendorInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetLessee() string {
+ if x != nil {
+ return x.Lessee
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetShard() string {
+ if x != nil {
+ return x.Shard
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetProperties() *CreateNodeReq_Properties {
+ if x != nil {
+ return x.Properties
+ }
+ return nil
+}
+
+func (x *CreateNodeReq) GetAutomatedClean() bool {
+ if x != nil {
+ return x.AutomatedClean
+ }
+ return false
+}
+
+func (x *CreateNodeReq) GetBiosInterface() string {
+ if x != nil {
+ return x.BiosInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetChassisUuid() string {
+ if x != nil {
+ return x.ChassisUuid
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetInstanceInfo() *CreateNodeReq_InstanceInfo {
+ if x != nil {
+ return x.InstanceInfo
+ }
+ return nil
+}
+
+func (x *CreateNodeReq) GetInstanceUuid() string {
+ if x != nil {
+ return x.InstanceUuid
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetMaintenance() bool {
+ if x != nil {
+ return x.Maintenance
+ }
+ return false
+}
+
+func (x *CreateNodeReq) GetMaintenanceReason() bool {
+ if x != nil {
+ return x.MaintenanceReason
+ }
+ return false
+}
+
+func (x *CreateNodeReq) GetNetworkData() *CreateNodeReq_NetworkData {
+ if x != nil {
+ return x.NetworkData
+ }
+ return nil
+}
+
+func (x *CreateNodeReq) GetParentNode() string {
+ if x != nil {
+ return x.ParentNode
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *CreateNodeReq) GetProtectedReason() string {
+ if x != nil {
+ return x.ProtectedReason
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetRetired() bool {
+ if x != nil {
+ return x.Retired
+ }
+ return false
+}
+
+func (x *CreateNodeReq) GetRetiredReason() string {
+ if x != nil {
+ return x.RetiredReason
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateNodeReq) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateNodeReq) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type CreateNodeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AllocationUuid string `protobuf:"bytes,1,opt,name=allocation_uuid,json=allocationUuid,proto3" json:"allocation_uuid,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ PowerState string `protobuf:"bytes,3,opt,name=power_state,json=powerState,proto3" json:"power_state,omitempty"`
+ TargetPowerState string `protobuf:"bytes,4,opt,name=target_power_state,json=targetPowerState,proto3" json:"target_power_state,omitempty"`
+ ProvisionState string `protobuf:"bytes,5,opt,name=provision_state,json=provisionState,proto3" json:"provision_state,omitempty"`
+ TargetProvisionState string `protobuf:"bytes,6,opt,name=target_provision_state,json=targetProvisionState,proto3" json:"target_provision_state,omitempty"`
+ Maintenance bool `protobuf:"varint,7,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
+ MaintenanceReason string `protobuf:"bytes,8,opt,name=maintenance_reason,json=maintenanceReason,proto3" json:"maintenance_reason,omitempty"`
+ Fault string `protobuf:"bytes,9,opt,name=fault,proto3" json:"fault,omitempty"`
+ LastError string `protobuf:"bytes,10,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
+ Reservation string `protobuf:"bytes,11,opt,name=reservation,proto3" json:"reservation,omitempty"`
+ Driver string `protobuf:"bytes,12,opt,name=driver,proto3" json:"driver,omitempty"`
+ DriverInfo *CreateNodeResp_DriverInfo `protobuf:"bytes,13,opt,name=driver_info,json=driverInfo,proto3" json:"driver_info,omitempty"`
+ DriverInternalInfo *CreateNodeResp_DriverInternalInfo `protobuf:"bytes,14,opt,name=driver_internal_info,json=driverInternalInfo,proto3" json:"driver_internal_info,omitempty"`
+ Properties *CreateNodeResp_Properties `protobuf:"bytes,15,opt,name=properties,proto3" json:"properties,omitempty"`
+ InstanceInfo *CreateNodeResp_InstanceInfo `protobuf:"bytes,16,opt,name=instance_info,json=instanceInfo,proto3" json:"instance_info,omitempty"`
+ InstanceUuid string `protobuf:"bytes,17,opt,name=instance_uuid,json=instanceUuid,proto3" json:"instance_uuid,omitempty"`
+ ChassisUuid string `protobuf:"bytes,18,opt,name=chassis_uuid,json=chassisUuid,proto3" json:"chassis_uuid,omitempty"`
+ Extra *CreateNodeResp_Extra `protobuf:"bytes,19,opt,name=extra,proto3" json:"extra,omitempty"`
+ ConsoleEnabled bool `protobuf:"varint,20,opt,name=console_enabled,json=consoleEnabled,proto3" json:"console_enabled,omitempty"`
+ RaidConfig *CreateNodeResp_RaidConfig `protobuf:"bytes,21,opt,name=raid_config,json=raidConfig,proto3" json:"raid_config,omitempty"`
+ TargetRaidConfig *CreateNodeResp_TargetRaidConfig `protobuf:"bytes,22,opt,name=target_raid_config,json=targetRaidConfig,proto3" json:"target_raid_config,omitempty"`
+ CleanStep *CreateNodeResp_CleanStep `protobuf:"bytes,23,opt,name=clean_step,json=cleanStep,proto3" json:"clean_step,omitempty"`
+ DeployStep *CreateNodeResp_DeployStep `protobuf:"bytes,24,opt,name=deploy_step,json=deployStep,proto3" json:"deploy_step,omitempty"`
+ Links []*CreateNodeResp_Links `protobuf:"bytes,25,rep,name=links,proto3" json:"links,omitempty"`
+ Ports []*CreateNodeResp_Ports `protobuf:"bytes,26,rep,name=ports,proto3" json:"ports,omitempty"`
+ Portgroups []*CreateNodeResp_Portgroups `protobuf:"bytes,27,rep,name=portgroups,proto3" json:"portgroups,omitempty"`
+ States []*CreateNodeResp_States `protobuf:"bytes,28,rep,name=states,proto3" json:"states,omitempty"`
+ ResourceClass string `protobuf:"bytes,29,opt,name=resource_class,json=resourceClass,proto3" json:"resource_class,omitempty"`
+ BootInterface string `protobuf:"bytes,30,opt,name=boot_interface,json=bootInterface,proto3" json:"boot_interface,omitempty"`
+ ConsoleInterface string `protobuf:"bytes,31,opt,name=console_interface,json=consoleInterface,proto3" json:"console_interface,omitempty"`
+ DeployInterface string `protobuf:"bytes,32,opt,name=deploy_interface,json=deployInterface,proto3" json:"deploy_interface,omitempty"`
+ ConductorGroup string `protobuf:"bytes,33,opt,name=conductor_group,json=conductorGroup,proto3" json:"conductor_group,omitempty"`
+ InspectInterface string `protobuf:"bytes,34,opt,name=inspect_interface,json=inspectInterface,proto3" json:"inspect_interface,omitempty"`
+ ManagementInterface string `protobuf:"bytes,35,opt,name=management_interface,json=managementInterface,proto3" json:"management_interface,omitempty"`
+ NetworkInterface string `protobuf:"bytes,36,opt,name=network_interface,json=networkInterface,proto3" json:"network_interface,omitempty"`
+ PowerInterface string `protobuf:"bytes,37,opt,name=power_interface,json=powerInterface,proto3" json:"power_interface,omitempty"`
+ RaidInterface string `protobuf:"bytes,38,opt,name=raid_interface,json=raidInterface,proto3" json:"raid_interface,omitempty"`
+ RescueInterface string `protobuf:"bytes,39,opt,name=rescue_interface,json=rescueInterface,proto3" json:"rescue_interface,omitempty"`
+ StorageInterface string `protobuf:"bytes,40,opt,name=storage_interface,json=storageInterface,proto3" json:"storage_interface,omitempty"`
+ Traits []string `protobuf:"bytes,41,rep,name=traits,proto3" json:"traits,omitempty"`
+ VendorInterface string `protobuf:"bytes,42,opt,name=vendor_interface,json=vendorInterface,proto3" json:"vendor_interface,omitempty"`
+ Volume []*CreateNodeResp_Volume `protobuf:"bytes,43,rep,name=volume,proto3" json:"volume,omitempty"`
+ Protected bool `protobuf:"varint,44,opt,name=protected,proto3" json:"protected,omitempty"`
+ ProtectedReason string `protobuf:"bytes,45,opt,name=protected_reason,json=protectedReason,proto3" json:"protected_reason,omitempty"`
+ Conductor string `protobuf:"bytes,46,opt,name=conductor,proto3" json:"conductor,omitempty"`
+ Owner string `protobuf:"bytes,47,opt,name=owner,proto3" json:"owner,omitempty"`
+ Lessee string `protobuf:"bytes,48,opt,name=lessee,proto3" json:"lessee,omitempty"`
+ Shard string `protobuf:"bytes,49,opt,name=shard,proto3" json:"shard,omitempty"`
+ Description string `protobuf:"bytes,50,opt,name=description,proto3" json:"description,omitempty"`
+ AutomatedClean string `protobuf:"bytes,51,opt,name=automated_clean,json=automatedClean,proto3" json:"automated_clean,omitempty"`
+ BiosInterface string `protobuf:"bytes,52,opt,name=bios_interface,json=biosInterface,proto3" json:"bios_interface,omitempty"`
+ NetworkData *CreateNodeResp_NetworkData `protobuf:"bytes,53,opt,name=network_data,json=networkData,proto3" json:"network_data,omitempty"`
+ Retired bool `protobuf:"varint,54,opt,name=retired,proto3" json:"retired,omitempty"`
+ RetiredReason string `protobuf:"bytes,55,opt,name=retired_reason,json=retiredReason,proto3" json:"retired_reason,omitempty"`
+ CreatedAt string `protobuf:"bytes,56,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ InspectionFinishedAt string `protobuf:"bytes,57,opt,name=inspection_finished_at,json=inspectionFinishedAt,proto3" json:"inspection_finished_at,omitempty"`
+ InspectionStartedAt string `protobuf:"bytes,58,opt,name=inspection_started_at,json=inspectionStartedAt,proto3" json:"inspection_started_at,omitempty"`
+ UpdatedAt string `protobuf:"bytes,59,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ Uuid string `protobuf:"bytes,60,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ ProvisionUpdatedAt string `protobuf:"bytes,61,opt,name=provision_updated_at,json=provisionUpdatedAt,proto3" json:"provision_updated_at,omitempty"`
+ Code int32 `protobuf:"varint,62,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,63,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,65,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateNodeResp) Reset() {
+ *x = CreateNodeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp) ProtoMessage() {}
+
+func (x *CreateNodeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[48]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48}
+}
+
+func (x *CreateNodeResp) GetAllocationUuid() string {
+ if x != nil {
+ return x.AllocationUuid
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetPowerState() string {
+ if x != nil {
+ return x.PowerState
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetTargetPowerState() string {
+ if x != nil {
+ return x.TargetPowerState
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetProvisionState() string {
+ if x != nil {
+ return x.ProvisionState
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetTargetProvisionState() string {
+ if x != nil {
+ return x.TargetProvisionState
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetMaintenance() bool {
+ if x != nil {
+ return x.Maintenance
+ }
+ return false
+}
+
+func (x *CreateNodeResp) GetMaintenanceReason() string {
+ if x != nil {
+ return x.MaintenanceReason
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetFault() string {
+ if x != nil {
+ return x.Fault
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetLastError() string {
+ if x != nil {
+ return x.LastError
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetReservation() string {
+ if x != nil {
+ return x.Reservation
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetDriver() string {
+ if x != nil {
+ return x.Driver
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetDriverInfo() *CreateNodeResp_DriverInfo {
+ if x != nil {
+ return x.DriverInfo
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetDriverInternalInfo() *CreateNodeResp_DriverInternalInfo {
+ if x != nil {
+ return x.DriverInternalInfo
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetProperties() *CreateNodeResp_Properties {
+ if x != nil {
+ return x.Properties
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetInstanceInfo() *CreateNodeResp_InstanceInfo {
+ if x != nil {
+ return x.InstanceInfo
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetInstanceUuid() string {
+ if x != nil {
+ return x.InstanceUuid
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetChassisUuid() string {
+ if x != nil {
+ return x.ChassisUuid
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetExtra() *CreateNodeResp_Extra {
+ if x != nil {
+ return x.Extra
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetConsoleEnabled() bool {
+ if x != nil {
+ return x.ConsoleEnabled
+ }
+ return false
+}
+
+func (x *CreateNodeResp) GetRaidConfig() *CreateNodeResp_RaidConfig {
+ if x != nil {
+ return x.RaidConfig
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetTargetRaidConfig() *CreateNodeResp_TargetRaidConfig {
+ if x != nil {
+ return x.TargetRaidConfig
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetCleanStep() *CreateNodeResp_CleanStep {
+ if x != nil {
+ return x.CleanStep
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetDeployStep() *CreateNodeResp_DeployStep {
+ if x != nil {
+ return x.DeployStep
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetLinks() []*CreateNodeResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetPorts() []*CreateNodeResp_Ports {
+ if x != nil {
+ return x.Ports
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetPortgroups() []*CreateNodeResp_Portgroups {
+ if x != nil {
+ return x.Portgroups
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetStates() []*CreateNodeResp_States {
+ if x != nil {
+ return x.States
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetResourceClass() string {
+ if x != nil {
+ return x.ResourceClass
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetBootInterface() string {
+ if x != nil {
+ return x.BootInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetConsoleInterface() string {
+ if x != nil {
+ return x.ConsoleInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetDeployInterface() string {
+ if x != nil {
+ return x.DeployInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetConductorGroup() string {
+ if x != nil {
+ return x.ConductorGroup
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetInspectInterface() string {
+ if x != nil {
+ return x.InspectInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetManagementInterface() string {
+ if x != nil {
+ return x.ManagementInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetNetworkInterface() string {
+ if x != nil {
+ return x.NetworkInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetPowerInterface() string {
+ if x != nil {
+ return x.PowerInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetRaidInterface() string {
+ if x != nil {
+ return x.RaidInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetRescueInterface() string {
+ if x != nil {
+ return x.RescueInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetStorageInterface() string {
+ if x != nil {
+ return x.StorageInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetTraits() []string {
+ if x != nil {
+ return x.Traits
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetVendorInterface() string {
+ if x != nil {
+ return x.VendorInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetVolume() []*CreateNodeResp_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *CreateNodeResp) GetProtectedReason() string {
+ if x != nil {
+ return x.ProtectedReason
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetConductor() string {
+ if x != nil {
+ return x.Conductor
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetLessee() string {
+ if x != nil {
+ return x.Lessee
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetShard() string {
+ if x != nil {
+ return x.Shard
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetAutomatedClean() string {
+ if x != nil {
+ return x.AutomatedClean
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetBiosInterface() string {
+ if x != nil {
+ return x.BiosInterface
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetNetworkData() *CreateNodeResp_NetworkData {
+ if x != nil {
+ return x.NetworkData
+ }
+ return nil
+}
+
+func (x *CreateNodeResp) GetRetired() bool {
+ if x != nil {
+ return x.Retired
+ }
+ return false
+}
+
+func (x *CreateNodeResp) GetRetiredReason() string {
+ if x != nil {
+ return x.RetiredReason
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetInspectionFinishedAt() string {
+ if x != nil {
+ return x.InspectionFinishedAt
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetInspectionStartedAt() string {
+ if x != nil {
+ return x.InspectionStartedAt
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetProvisionUpdatedAt() string {
+ if x != nil {
+ return x.ProvisionUpdatedAt
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateNodeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateNodeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// ***************** Bare Metal DeleteNode Start************************
+type DeleteNodeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NodeIdent string `protobuf:"bytes,1,opt,name=node_ident,json=nodeIdent,proto3" json:"node_ident,omitempty"`
+}
+
+func (x *DeleteNodeReq) Reset() {
+ *x = DeleteNodeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteNodeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteNodeReq) ProtoMessage() {}
+
+func (x *DeleteNodeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[49]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteNodeReq.ProtoReflect.Descriptor instead.
+func (*DeleteNodeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{49}
+}
+
+func (x *DeleteNodeReq) GetNodeIdent() string {
+ if x != nil {
+ return x.NodeIdent
+ }
+ return ""
+}
+
+type DeleteNodeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteNodeResp) Reset() {
+ *x = DeleteNodeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteNodeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteNodeResp) ProtoMessage() {}
+
+func (x *DeleteNodeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[50]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteNodeResp.ProtoReflect.Descriptor instead.
+func (*DeleteNodeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{50}
+}
+
+func (x *DeleteNodeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteNodeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteNodeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// ***************** Bare Metal ShowNodeDetailsReq Start*****************
+type ShowNodeDetailsReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NodeIdent string `protobuf:"bytes,1,opt,name=node_ident,json=nodeIdent,proto3" json:"node_ident,omitempty"`
+ Fields []*ShowNodeDetailsReq_Fields `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
+}
+
+func (x *ShowNodeDetailsReq) Reset() {
+ *x = ShowNodeDetailsReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsReq) ProtoMessage() {}
+
+func (x *ShowNodeDetailsReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[51]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsReq.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *ShowNodeDetailsReq) GetNodeIdent() string {
+ if x != nil {
+ return x.NodeIdent
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsReq) GetFields() []*ShowNodeDetailsReq_Fields {
+ if x != nil {
+ return x.Fields
+ }
+ return nil
+}
+
+type ShowNodeDetailsResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ PowerState string `protobuf:"bytes,3,opt,name=power_state,json=powerState,proto3" json:"power_state,omitempty"`
+ TargetPowerState string `protobuf:"bytes,4,opt,name=target_power_state,json=targetPowerState,proto3" json:"target_power_state,omitempty"`
+ ProvisionState string `protobuf:"bytes,5,opt,name=provision_state,json=provisionState,proto3" json:"provision_state,omitempty"`
+ TargetProvisionState string `protobuf:"bytes,6,opt,name=target_provision_state,json=targetProvisionState,proto3" json:"target_provision_state,omitempty"`
+ Maintenance bool `protobuf:"varint,7,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
+ MaintenanceReason string `protobuf:"bytes,8,opt,name=maintenance_reason,json=maintenanceReason,proto3" json:"maintenance_reason,omitempty"`
+ Fault string `protobuf:"bytes,9,opt,name=fault,proto3" json:"fault,omitempty"`
+ LastError string `protobuf:"bytes,10,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"`
+ Reservation string `protobuf:"bytes,11,opt,name=reservation,proto3" json:"reservation,omitempty"`
+ Driver string `protobuf:"bytes,12,opt,name=driver,proto3" json:"driver,omitempty"`
+ DriverInfo *ShowNodeDetailsResp_DriverInfo `protobuf:"bytes,13,opt,name=driver_info,json=driverInfo,proto3" json:"driver_info,omitempty"`
+ DriverInternalInfo *ShowNodeDetailsResp_DriverInternalInfo `protobuf:"bytes,14,opt,name=driver_internal_info,json=driverInternalInfo,proto3" json:"driver_internal_info,omitempty"`
+ Properties *ShowNodeDetailsResp_Properties `protobuf:"bytes,15,opt,name=properties,proto3" json:"properties,omitempty"`
+ InstanceInfo *ShowNodeDetailsResp_InstanceInfo `protobuf:"bytes,16,opt,name=instance_info,json=instanceInfo,proto3" json:"instance_info,omitempty"`
+ InstanceUuid string `protobuf:"bytes,17,opt,name=instance_uuid,json=instanceUuid,proto3" json:"instance_uuid,omitempty"`
+ ChassisUuid string `protobuf:"bytes,18,opt,name=chassis_uuid,json=chassisUuid,proto3" json:"chassis_uuid,omitempty"`
+ Extra *ShowNodeDetailsResp_Extra `protobuf:"bytes,19,opt,name=extra,proto3" json:"extra,omitempty"`
+ ConsoleEnabled bool `protobuf:"varint,20,opt,name=console_enabled,json=consoleEnabled,proto3" json:"console_enabled,omitempty"`
+ RaidConfig *ShowNodeDetailsResp_RaidConfig `protobuf:"bytes,21,opt,name=raid_config,json=raidConfig,proto3" json:"raid_config,omitempty"`
+ TargetRaidConfig *ShowNodeDetailsResp_TargetRaidConfig `protobuf:"bytes,22,opt,name=target_raid_config,json=targetRaidConfig,proto3" json:"target_raid_config,omitempty"`
+ CleanStep *ShowNodeDetailsResp_CleanStep `protobuf:"bytes,23,opt,name=clean_step,json=cleanStep,proto3" json:"clean_step,omitempty"`
+ DeployStep *ShowNodeDetailsResp_DeployStep `protobuf:"bytes,24,opt,name=deploy_step,json=deployStep,proto3" json:"deploy_step,omitempty"`
+ Links []*ShowNodeDetailsResp_Links `protobuf:"bytes,25,rep,name=links,proto3" json:"links,omitempty"`
+ Ports []*ShowNodeDetailsResp_Ports `protobuf:"bytes,26,rep,name=ports,proto3" json:"ports,omitempty"`
+ Portgroups []*ShowNodeDetailsResp_Portgroups `protobuf:"bytes,27,rep,name=portgroups,proto3" json:"portgroups,omitempty"`
+ States []*ShowNodeDetailsResp_States `protobuf:"bytes,28,rep,name=states,proto3" json:"states,omitempty"`
+ ResourceClass string `protobuf:"bytes,29,opt,name=resource_class,json=resourceClass,proto3" json:"resource_class,omitempty"`
+ BiosInterface string `protobuf:"bytes,30,opt,name=bios_interface,json=biosInterface,proto3" json:"bios_interface,omitempty"`
+ BootInterface string `protobuf:"bytes,31,opt,name=boot_interface,json=bootInterface,proto3" json:"boot_interface,omitempty"`
+ ConsoleInterface string `protobuf:"bytes,32,opt,name=console_interface,json=consoleInterface,proto3" json:"console_interface,omitempty"`
+ DeployInterface string `protobuf:"bytes,33,opt,name=deploy_interface,json=deployInterface,proto3" json:"deploy_interface,omitempty"`
+ InspectInterface string `protobuf:"bytes,34,opt,name=inspect_interface,json=inspectInterface,proto3" json:"inspect_interface,omitempty"`
+ ManagementInterface string `protobuf:"bytes,35,opt,name=management_interface,json=managementInterface,proto3" json:"management_interface,omitempty"`
+ NetworkInterface string `protobuf:"bytes,36,opt,name=network_interface,json=networkInterface,proto3" json:"network_interface,omitempty"`
+ PowerInterface string `protobuf:"bytes,37,opt,name=power_interface,json=powerInterface,proto3" json:"power_interface,omitempty"`
+ RaidInterface string `protobuf:"bytes,38,opt,name=raid_interface,json=raidInterface,proto3" json:"raid_interface,omitempty"`
+ RescueInterface string `protobuf:"bytes,39,opt,name=rescue_interface,json=rescueInterface,proto3" json:"rescue_interface,omitempty"`
+ StorageInterface string `protobuf:"bytes,40,opt,name=storage_interface,json=storageInterface,proto3" json:"storage_interface,omitempty"`
+ Traits []*ShowNodeDetailsResp_Traits `protobuf:"bytes,41,rep,name=traits,proto3" json:"traits,omitempty"`
+ VendorInterface string `protobuf:"bytes,42,opt,name=vendor_interface,json=vendorInterface,proto3" json:"vendor_interface,omitempty"`
+ Volume []*ShowNodeDetailsResp_Volume `protobuf:"bytes,43,rep,name=volume,proto3" json:"volume,omitempty"`
+ ConductorGroup string `protobuf:"bytes,44,opt,name=conductor_group,json=conductorGroup,proto3" json:"conductor_group,omitempty"`
+ Protected bool `protobuf:"varint,45,opt,name=protected,proto3" json:"protected,omitempty"`
+ ProtectedReason string `protobuf:"bytes,46,opt,name=protected_reason,json=protectedReason,proto3" json:"protected_reason,omitempty"`
+ Owner string `protobuf:"bytes,47,opt,name=owner,proto3" json:"owner,omitempty"`
+ Lessee string `protobuf:"bytes,48,opt,name=lessee,proto3" json:"lessee,omitempty"`
+ Shard string `protobuf:"bytes,49,opt,name=shard,proto3" json:"shard,omitempty"`
+ Description string `protobuf:"bytes,50,opt,name=description,proto3" json:"description,omitempty"`
+ Conductor string `protobuf:"bytes,51,opt,name=conductor,proto3" json:"conductor,omitempty"`
+ AllocationUuid string `protobuf:"bytes,52,opt,name=allocation_uuid,json=allocationUuid,proto3" json:"allocation_uuid,omitempty"`
+ CreatedAt string `protobuf:"bytes,53,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ InspectionFinishedAt string `protobuf:"bytes,54,opt,name=inspection_finished_at,json=inspectionFinishedAt,proto3" json:"inspection_finished_at,omitempty"`
+ InspectionStartedAt string `protobuf:"bytes,55,opt,name=inspection_started_at,json=inspectionStartedAt,proto3" json:"inspection_started_at,omitempty"`
+ NetworkData *ShowNodeDetailsResp_NetworkData `protobuf:"bytes,57,opt,name=network_data,json=networkData,proto3" json:"network_data,omitempty"`
+ ProvisionUpdatedAt string `protobuf:"bytes,58,opt,name=provision_updated_at,json=provisionUpdatedAt,proto3" json:"provision_updated_at,omitempty"`
+ Retired bool `protobuf:"varint,59,opt,name=retired,proto3" json:"retired,omitempty"`
+ RetiredReason string `protobuf:"bytes,60,opt,name=retired_reason,json=retiredReason,proto3" json:"retired_reason,omitempty"`
+ UpdatedAt string `protobuf:"bytes,61,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ Code int32 `protobuf:"varint,62,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,63,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,64,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ShowNodeDetailsResp) Reset() {
+ *x = ShowNodeDetailsResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[52]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *ShowNodeDetailsResp) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetPowerState() string {
+ if x != nil {
+ return x.PowerState
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetTargetPowerState() string {
+ if x != nil {
+ return x.TargetPowerState
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetProvisionState() string {
+ if x != nil {
+ return x.ProvisionState
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetTargetProvisionState() string {
+ if x != nil {
+ return x.TargetProvisionState
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetMaintenance() bool {
+ if x != nil {
+ return x.Maintenance
+ }
+ return false
+}
+
+func (x *ShowNodeDetailsResp) GetMaintenanceReason() string {
+ if x != nil {
+ return x.MaintenanceReason
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetFault() string {
+ if x != nil {
+ return x.Fault
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetLastError() string {
+ if x != nil {
+ return x.LastError
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetReservation() string {
+ if x != nil {
+ return x.Reservation
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetDriver() string {
+ if x != nil {
+ return x.Driver
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetDriverInfo() *ShowNodeDetailsResp_DriverInfo {
+ if x != nil {
+ return x.DriverInfo
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetDriverInternalInfo() *ShowNodeDetailsResp_DriverInternalInfo {
+ if x != nil {
+ return x.DriverInternalInfo
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetProperties() *ShowNodeDetailsResp_Properties {
+ if x != nil {
+ return x.Properties
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetInstanceInfo() *ShowNodeDetailsResp_InstanceInfo {
+ if x != nil {
+ return x.InstanceInfo
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetInstanceUuid() string {
+ if x != nil {
+ return x.InstanceUuid
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetChassisUuid() string {
+ if x != nil {
+ return x.ChassisUuid
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetExtra() *ShowNodeDetailsResp_Extra {
+ if x != nil {
+ return x.Extra
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetConsoleEnabled() bool {
+ if x != nil {
+ return x.ConsoleEnabled
+ }
+ return false
+}
+
+func (x *ShowNodeDetailsResp) GetRaidConfig() *ShowNodeDetailsResp_RaidConfig {
+ if x != nil {
+ return x.RaidConfig
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetTargetRaidConfig() *ShowNodeDetailsResp_TargetRaidConfig {
+ if x != nil {
+ return x.TargetRaidConfig
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetCleanStep() *ShowNodeDetailsResp_CleanStep {
+ if x != nil {
+ return x.CleanStep
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetDeployStep() *ShowNodeDetailsResp_DeployStep {
+ if x != nil {
+ return x.DeployStep
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetLinks() []*ShowNodeDetailsResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetPorts() []*ShowNodeDetailsResp_Ports {
+ if x != nil {
+ return x.Ports
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetPortgroups() []*ShowNodeDetailsResp_Portgroups {
+ if x != nil {
+ return x.Portgroups
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetStates() []*ShowNodeDetailsResp_States {
+ if x != nil {
+ return x.States
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetResourceClass() string {
+ if x != nil {
+ return x.ResourceClass
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetBiosInterface() string {
+ if x != nil {
+ return x.BiosInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetBootInterface() string {
+ if x != nil {
+ return x.BootInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetConsoleInterface() string {
+ if x != nil {
+ return x.ConsoleInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetDeployInterface() string {
+ if x != nil {
+ return x.DeployInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetInspectInterface() string {
+ if x != nil {
+ return x.InspectInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetManagementInterface() string {
+ if x != nil {
+ return x.ManagementInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetNetworkInterface() string {
+ if x != nil {
+ return x.NetworkInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetPowerInterface() string {
+ if x != nil {
+ return x.PowerInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetRaidInterface() string {
+ if x != nil {
+ return x.RaidInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetRescueInterface() string {
+ if x != nil {
+ return x.RescueInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetStorageInterface() string {
+ if x != nil {
+ return x.StorageInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetTraits() []*ShowNodeDetailsResp_Traits {
+ if x != nil {
+ return x.Traits
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetVendorInterface() string {
+ if x != nil {
+ return x.VendorInterface
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetVolume() []*ShowNodeDetailsResp_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetConductorGroup() string {
+ if x != nil {
+ return x.ConductorGroup
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *ShowNodeDetailsResp) GetProtectedReason() string {
+ if x != nil {
+ return x.ProtectedReason
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetLessee() string {
+ if x != nil {
+ return x.Lessee
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetShard() string {
+ if x != nil {
+ return x.Shard
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetConductor() string {
+ if x != nil {
+ return x.Conductor
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetAllocationUuid() string {
+ if x != nil {
+ return x.AllocationUuid
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetInspectionFinishedAt() string {
+ if x != nil {
+ return x.InspectionFinishedAt
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetInspectionStartedAt() string {
+ if x != nil {
+ return x.InspectionStartedAt
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetNetworkData() *ShowNodeDetailsResp_NetworkData {
+ if x != nil {
+ return x.NetworkData
+ }
+ return nil
+}
+
+func (x *ShowNodeDetailsResp) GetProvisionUpdatedAt() string {
+ if x != nil {
+ return x.ProvisionUpdatedAt
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetRetired() bool {
+ if x != nil {
+ return x.Retired
+ }
+ return false
+}
+
+func (x *ShowNodeDetailsResp) GetRetiredReason() string {
+ if x != nil {
+ return x.RetiredReason
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ShowNodeDetailsResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************WangQi Images API start************************
+type CreateImageReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContainerFormat string `protobuf:"bytes,1,opt,name=container_format,json=containerFormat,proto3" json:"container_format,omitempty"`
+ DiskFormat string `protobuf:"bytes,2,opt,name=disk_format,json=diskFormat,proto3" json:"disk_format,omitempty"`
+ Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
+ MinDisk int64 `protobuf:"varint,4,opt,name=min_disk,json=minDisk,proto3" json:"min_disk,omitempty"`
+ MinRam int64 `protobuf:"varint,5,opt,name=min_ram,json=minRam,proto3" json:"min_ram,omitempty"`
+ Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
+ Protected bool `protobuf:"varint,7,opt,name=protected,proto3" json:"protected,omitempty"`
+ Tags []*Tags `protobuf:"bytes,43,rep,name=tags,proto3" json:"tags,omitempty"`
+ Visibility string `protobuf:"bytes,44,opt,name=visibility,proto3" json:"visibility,omitempty"`
+}
+
+func (x *CreateImageReq) Reset() {
+ *x = CreateImageReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateImageReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateImageReq) ProtoMessage() {}
+
+func (x *CreateImageReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[53]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateImageReq.ProtoReflect.Descriptor instead.
+func (*CreateImageReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *CreateImageReq) GetContainerFormat() string {
+ if x != nil {
+ return x.ContainerFormat
+ }
+ return ""
+}
+
+func (x *CreateImageReq) GetDiskFormat() string {
+ if x != nil {
+ return x.DiskFormat
+ }
+ return ""
+}
+
+func (x *CreateImageReq) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *CreateImageReq) GetMinDisk() int64 {
+ if x != nil {
+ return x.MinDisk
+ }
+ return 0
+}
+
+func (x *CreateImageReq) GetMinRam() int64 {
+ if x != nil {
+ return x.MinRam
+ }
+ return 0
+}
+
+func (x *CreateImageReq) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateImageReq) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *CreateImageReq) GetTags() []*Tags {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *CreateImageReq) GetVisibility() string {
+ if x != nil {
+ return x.Visibility
+ }
+ return ""
+}
+
+type Tags struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *Tags) Reset() {
+ *x = Tags{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Tags) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Tags) ProtoMessage() {}
+
+func (x *Tags) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[54]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Tags.ProtoReflect.Descriptor instead.
+func (*Tags) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{54}
+}
+
+type CreateImageResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Location string `protobuf:"bytes,1,opt,name=Location,proto3" json:"Location,omitempty"`
+ OpenStackImageImportMethods string `protobuf:"bytes,2,opt,name=OpenStack_image_import_methods,json=OpenStack-image-import-methods,proto3" json:"OpenStack_image_import_methods,omitempty"`
+ OpenStackImageStoreIds string `protobuf:"bytes,3,opt,name=OpenStack_image_store_ids,json=OpenStack-image-store-ids,proto3" json:"OpenStack_image_store_ids,omitempty"`
+ Checksum string `protobuf:"bytes,4,opt,name=checksum,proto3" json:"checksum,omitempty"`
+ ContainerFormat string `protobuf:"bytes,5,opt,name=container_format,json=containerFormat,proto3" json:"container_format,omitempty"`
+ CreatedAt string `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ DiskFormat string `protobuf:"bytes,7,opt,name=disk_format,json=diskFormat,proto3" json:"disk_format,omitempty"`
+ File string `protobuf:"bytes,8,opt,name=file,proto3" json:"file,omitempty"`
+ Id string `protobuf:"bytes,9,opt,name=id,proto3" json:"id,omitempty"`
+ MinDisk uint32 `protobuf:"varint,10,opt,name=min_disk,json=minDisk,proto3" json:"min_disk,omitempty"`
+ MinRam uint32 `protobuf:"varint,11,opt,name=min_ram,json=minRam,proto3" json:"min_ram,omitempty"`
+ Name string `protobuf:"bytes,12,opt,name=name,proto3" json:"name,omitempty"`
+ OsHashAlgo string `protobuf:"bytes,13,opt,name=os_hash_algo,json=osHashAlgo,proto3" json:"os_hash_algo,omitempty"`
+ OsHashValue string `protobuf:"bytes,14,opt,name=os_hash_value,json=osHashValue,proto3" json:"os_hash_value,omitempty"`
+ OsHidden bool `protobuf:"varint,15,opt,name=os_hidden,json=osHidden,proto3" json:"os_hidden,omitempty"`
+ Protected bool `protobuf:"varint,16,opt,name=protected,proto3" json:"protected,omitempty"`
+ Owner string `protobuf:"bytes,17,opt,name=owner,proto3" json:"owner,omitempty"`
+ Schema string `protobuf:"bytes,18,opt,name=schema,proto3" json:"schema,omitempty"`
+ Self string `protobuf:"bytes,19,opt,name=self,proto3" json:"self,omitempty"`
+ Size int64 `protobuf:"varint,20,opt,name=size,proto3" json:"size,omitempty"`
+ Status string `protobuf:"bytes,21,opt,name=status,proto3" json:"status,omitempty"`
+ UpdatedAt string `protobuf:"bytes,22,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ Visibility string `protobuf:"bytes,23,opt,name=visibility,proto3" json:"visibility,omitempty"`
+ VirtualSize int64 `protobuf:"varint,24,opt,name=virtual_size,json=virtualSize,proto3" json:"virtual_size,omitempty"`
+ DirectUrl string `protobuf:"bytes,25,opt,name=direct_url,json=directUrl,proto3" json:"direct_url,omitempty"`
+ Tags []*CreateImageResp_Tags `protobuf:"bytes,26,rep,name=tags,proto3" json:"tags,omitempty"`
+ Locations []*CreateImageResp_Locations `protobuf:"bytes,27,rep,name=locations,proto3" json:"locations,omitempty"`
+ Code int32 `protobuf:"varint,28,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,29,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,30,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateImageResp) Reset() {
+ *x = CreateImageResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateImageResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateImageResp) ProtoMessage() {}
+
+func (x *CreateImageResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[55]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateImageResp.ProtoReflect.Descriptor instead.
+func (*CreateImageResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{55}
+}
+
+func (x *CreateImageResp) GetLocation() string {
+ if x != nil {
+ return x.Location
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetOpenStackImageImportMethods() string {
+ if x != nil {
+ return x.OpenStackImageImportMethods
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetOpenStackImageStoreIds() string {
+ if x != nil {
+ return x.OpenStackImageStoreIds
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetChecksum() string {
+ if x != nil {
+ return x.Checksum
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetContainerFormat() string {
+ if x != nil {
+ return x.ContainerFormat
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetDiskFormat() string {
+ if x != nil {
+ return x.DiskFormat
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetFile() string {
+ if x != nil {
+ return x.File
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetMinDisk() uint32 {
+ if x != nil {
+ return x.MinDisk
+ }
+ return 0
+}
+
+func (x *CreateImageResp) GetMinRam() uint32 {
+ if x != nil {
+ return x.MinRam
+ }
+ return 0
+}
+
+func (x *CreateImageResp) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetOsHashAlgo() string {
+ if x != nil {
+ return x.OsHashAlgo
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetOsHashValue() string {
+ if x != nil {
+ return x.OsHashValue
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetOsHidden() bool {
+ if x != nil {
+ return x.OsHidden
+ }
+ return false
+}
+
+func (x *CreateImageResp) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *CreateImageResp) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetSchema() string {
+ if x != nil {
+ return x.Schema
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetSelf() string {
+ if x != nil {
+ return x.Self
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetSize() int64 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *CreateImageResp) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetVisibility() string {
+ if x != nil {
+ return x.Visibility
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetVirtualSize() int64 {
+ if x != nil {
+ return x.VirtualSize
+ }
+ return 0
+}
+
+func (x *CreateImageResp) GetDirectUrl() string {
+ if x != nil {
+ return x.DirectUrl
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetTags() []*CreateImageResp_Tags {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *CreateImageResp) GetLocations() []*CreateImageResp_Locations {
+ if x != nil {
+ return x.Locations
+ }
+ return nil
+}
+
+func (x *CreateImageResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateImageResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateImageResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type ListImagesReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // @gotags: copier:"Limit"
+}
+
+func (x *ListImagesReq) Reset() {
+ *x = ListImagesReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListImagesReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListImagesReq) ProtoMessage() {}
+
+func (x *ListImagesReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[56]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListImagesReq.ProtoReflect.Descriptor instead.
+func (*ListImagesReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{56}
+}
+
+func (x *ListImagesReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+type ListImagesResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ First string `protobuf:"bytes,1,opt,name=first,proto3" json:"first,omitempty"`
+ Next string `protobuf:"bytes,2,opt,name=next,proto3" json:"next,omitempty"`
+ Schema string `protobuf:"bytes,3,opt,name=schema,proto3" json:"schema,omitempty"`
+ Images []*ListImagesResp_Images `protobuf:"bytes,4,rep,name=images,proto3" json:"images,omitempty"`
+ Code int32 `protobuf:"varint,5,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,6,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,7,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListImagesResp) Reset() {
+ *x = ListImagesResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListImagesResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListImagesResp) ProtoMessage() {}
+
+func (x *ListImagesResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[57]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListImagesResp.ProtoReflect.Descriptor instead.
+func (*ListImagesResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{57}
+}
+
+func (x *ListImagesResp) GetFirst() string {
+ if x != nil {
+ return x.First
+ }
+ return ""
+}
+
+func (x *ListImagesResp) GetNext() string {
+ if x != nil {
+ return x.Next
+ }
+ return ""
+}
+
+func (x *ListImagesResp) GetSchema() string {
+ if x != nil {
+ return x.Schema
+ }
+ return ""
+}
+
+func (x *ListImagesResp) GetImages() []*ListImagesResp_Images {
+ if x != nil {
+ return x.Images
+ }
+ return nil
+}
+
+func (x *ListImagesResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListImagesResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListImagesResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type DeleteImageReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ImageId string `protobuf:"bytes,1,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"` // @gotags: copier:"imageId"
+}
+
+func (x *DeleteImageReq) Reset() {
+ *x = DeleteImageReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteImageReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteImageReq) ProtoMessage() {}
+
+func (x *DeleteImageReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[58]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteImageReq.ProtoReflect.Descriptor instead.
+func (*DeleteImageReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{58}
+}
+
+func (x *DeleteImageReq) GetImageId() string {
+ if x != nil {
+ return x.ImageId
+ }
+ return ""
+}
+
+type DeleteImageResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteImageResp) Reset() {
+ *x = DeleteImageResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteImageResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteImageResp) ProtoMessage() {}
+
+func (x *DeleteImageResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[59]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteImageResp.ProtoReflect.Descriptor instead.
+func (*DeleteImageResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{59}
+}
+
+func (x *DeleteImageResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteImageResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteImageResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type UploadOsImageReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ImageId string `protobuf:"bytes,1,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"` // @gotags: copier:"ImageId"
+}
+
+func (x *UploadOsImageReq) Reset() {
+ *x = UploadOsImageReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UploadOsImageReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UploadOsImageReq) ProtoMessage() {}
+
+func (x *UploadOsImageReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[60]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UploadOsImageReq.ProtoReflect.Descriptor instead.
+func (*UploadOsImageReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{60}
+}
+
+func (x *UploadOsImageReq) GetImageId() string {
+ if x != nil {
+ return x.ImageId
+ }
+ return ""
+}
+
+type UploadOsImageResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *UploadOsImageResp) Reset() {
+ *x = UploadOsImageResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UploadOsImageResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UploadOsImageResp) ProtoMessage() {}
+
+func (x *UploadOsImageResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[61]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UploadOsImageResp.ProtoReflect.Descriptor instead.
+func (*UploadOsImageResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{61}
+}
+
+func (x *UploadOsImageResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *UploadOsImageResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *UploadOsImageResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+// *****************WangQi volumes API start************************
+type ListVolumesReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // @gotags: copier:"ProjectId"
+ AllTenants string `protobuf:"bytes,2,opt,name=all_tenants,json=allTenants,proto3" json:"all_tenants,omitempty"`
+ Sort string `protobuf:"bytes,3,opt,name=sort,proto3" json:"sort,omitempty"`
+ Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
+ Offset int32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
+ Marker string `protobuf:"bytes,6,opt,name=marker,proto3" json:"marker,omitempty"`
+ WithCount bool `protobuf:"varint,7,opt,name=with_count,json=withCount,proto3" json:"with_count,omitempty"`
+ CreatedAt string `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ ConsumesQuota bool `protobuf:"varint,9,opt,name=consumes_quota,json=consumesQuota,proto3" json:"consumes_quota,omitempty"`
+ UpdatedAt string `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+}
+
+func (x *ListVolumesReq) Reset() {
+ *x = ListVolumesReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesReq) ProtoMessage() {}
+
+func (x *ListVolumesReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[62]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesReq.ProtoReflect.Descriptor instead.
+func (*ListVolumesReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{62}
+}
+
+func (x *ListVolumesReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *ListVolumesReq) GetAllTenants() string {
+ if x != nil {
+ return x.AllTenants
+ }
+ return ""
+}
+
+func (x *ListVolumesReq) GetSort() string {
+ if x != nil {
+ return x.Sort
+ }
+ return ""
+}
+
+func (x *ListVolumesReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListVolumesReq) GetOffset() int32 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+
+func (x *ListVolumesReq) GetMarker() string {
+ if x != nil {
+ return x.Marker
+ }
+ return ""
+}
+
+func (x *ListVolumesReq) GetWithCount() bool {
+ if x != nil {
+ return x.WithCount
+ }
+ return false
+}
+
+func (x *ListVolumesReq) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ListVolumesReq) GetConsumesQuota() bool {
+ if x != nil {
+ return x.ConsumesQuota
+ }
+ return false
+}
+
+func (x *ListVolumesReq) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+type ListVolumesResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Volumes []*ListVolumesResp_Volumes `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListVolumesResp) Reset() {
+ *x = ListVolumesResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesResp) ProtoMessage() {}
+
+func (x *ListVolumesResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[63]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesResp.ProtoReflect.Descriptor instead.
+func (*ListVolumesResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{63}
+}
+
+func (x *ListVolumesResp) GetVolumes() []*ListVolumesResp_Volumes {
+ if x != nil {
+ return x.Volumes
+ }
+ return nil
+}
+
+func (x *ListVolumesResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListVolumesResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListVolumesResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type ListVolumesDetailReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AllTenants string `protobuf:"bytes,2,opt,name=all_tenants,json=allTenants,proto3" json:"all_tenants,omitempty"`
+ Sort string `protobuf:"bytes,3,opt,name=sort,proto3" json:"sort,omitempty"`
+ Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
+ Offset int32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
+ Marker string `protobuf:"bytes,6,opt,name=marker,proto3" json:"marker,omitempty"`
+ WithCount bool `protobuf:"varint,7,opt,name=with_count,json=withCount,proto3" json:"with_count,omitempty"`
+ CreatedAt string `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ ConsumesQuota bool `protobuf:"varint,9,opt,name=consumes_quota,json=consumesQuota,proto3" json:"consumes_quota,omitempty"`
+ UpdatedAt string `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+}
+
+func (x *ListVolumesDetailReq) Reset() {
+ *x = ListVolumesDetailReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailReq) ProtoMessage() {}
+
+func (x *ListVolumesDetailReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[64]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailReq.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{64}
+}
+
+func (x *ListVolumesDetailReq) GetAllTenants() string {
+ if x != nil {
+ return x.AllTenants
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailReq) GetSort() string {
+ if x != nil {
+ return x.Sort
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListVolumesDetailReq) GetOffset() int32 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+
+func (x *ListVolumesDetailReq) GetMarker() string {
+ if x != nil {
+ return x.Marker
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailReq) GetWithCount() bool {
+ if x != nil {
+ return x.WithCount
+ }
+ return false
+}
+
+func (x *ListVolumesDetailReq) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailReq) GetConsumesQuota() bool {
+ if x != nil {
+ return x.ConsumesQuota
+ }
+ return false
+}
+
+func (x *ListVolumesDetailReq) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+type ListVolumesDetailResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Volumes []*ListVolumesDetailResp_VolumeDetail `protobuf:"bytes,1,rep,name=volumes,proto3" json:"volumes,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListVolumesDetailResp) Reset() {
+ *x = ListVolumesDetailResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailResp) ProtoMessage() {}
+
+func (x *ListVolumesDetailResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[65]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailResp.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{65}
+}
+
+func (x *ListVolumesDetailResp) GetVolumes() []*ListVolumesDetailResp_VolumeDetail {
+ if x != nil {
+ return x.Volumes
+ }
+ return nil
+}
+
+func (x *ListVolumesDetailResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListVolumesDetailResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type CreateVolumeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // @gotags: copier:"ProjectId"
+ Volume *CreateVolumeReq_Volume `protobuf:"bytes,2,opt,name=volume,proto3" json:"volume,omitempty"`
+}
+
+func (x *CreateVolumeReq) Reset() {
+ *x = CreateVolumeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeReq) ProtoMessage() {}
+
+func (x *CreateVolumeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[66]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeReq.ProtoReflect.Descriptor instead.
+func (*CreateVolumeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{66}
+}
+
+func (x *CreateVolumeReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *CreateVolumeReq) GetVolume() *CreateVolumeReq_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+type CreateVolumeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Volume *CreateVolumeResp_Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` // @gotags: copier:"Volume"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateVolumeResp) Reset() {
+ *x = CreateVolumeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[67]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeResp) ProtoMessage() {}
+
+func (x *CreateVolumeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[67]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeResp.ProtoReflect.Descriptor instead.
+func (*CreateVolumeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{67}
+}
+
+func (x *CreateVolumeResp) GetVolume() *CreateVolumeResp_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+func (x *CreateVolumeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateVolumeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type DeleteVolumeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // string project_id =1;
+ VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
+ Cascade bool `protobuf:"varint,3,opt,name=cascade,proto3" json:"cascade,omitempty"`
+ Force bool `protobuf:"varint,4,opt,name=force,proto3" json:"force,omitempty"`
+}
+
+func (x *DeleteVolumeReq) Reset() {
+ *x = DeleteVolumeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteVolumeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteVolumeReq) ProtoMessage() {}
+
+func (x *DeleteVolumeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[68]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteVolumeReq.ProtoReflect.Descriptor instead.
+func (*DeleteVolumeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{68}
+}
+
+func (x *DeleteVolumeReq) GetVolumeId() string {
+ if x != nil {
+ return x.VolumeId
+ }
+ return ""
+}
+
+func (x *DeleteVolumeReq) GetCascade() bool {
+ if x != nil {
+ return x.Cascade
+ }
+ return false
+}
+
+func (x *DeleteVolumeReq) GetForce() bool {
+ if x != nil {
+ return x.Force
+ }
+ return false
+}
+
+type DeleteVolumeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteVolumeResp) Reset() {
+ *x = DeleteVolumeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[69]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteVolumeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteVolumeResp) ProtoMessage() {}
+
+func (x *DeleteVolumeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[69]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteVolumeResp.ProtoReflect.Descriptor instead.
+func (*DeleteVolumeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{69}
+}
+
+func (x *DeleteVolumeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteVolumeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteVolumeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type UpdateVolumeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ VolumeTypeId string `protobuf:"bytes,2,opt,name=volume_type_id,json=volumeTypeId,proto3" json:"volume_type_id,omitempty"`
+ Volume *UpdateVolumeReq_Volume `protobuf:"bytes,3,opt,name=volume,proto3" json:"volume,omitempty"`
+}
+
+func (x *UpdateVolumeReq) Reset() {
+ *x = UpdateVolumeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[70]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeReq) ProtoMessage() {}
+
+func (x *UpdateVolumeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[70]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeReq.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{70}
+}
+
+func (x *UpdateVolumeReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeReq) GetVolumeTypeId() string {
+ if x != nil {
+ return x.VolumeTypeId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeReq) GetVolume() *UpdateVolumeReq_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+type UpdateVolumeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Volume *UpdateVolumeResp_Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"`
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *UpdateVolumeResp) Reset() {
+ *x = UpdateVolumeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[71]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeResp) ProtoMessage() {}
+
+func (x *UpdateVolumeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[71]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeResp.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{71}
+}
+
+func (x *UpdateVolumeResp) GetVolume() *UpdateVolumeResp_Volume {
+ if x != nil {
+ return x.Volume
+ }
+ return nil
+}
+
+func (x *UpdateVolumeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *UpdateVolumeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type ListVolumeTypesReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ Sort string `protobuf:"bytes,2,opt,name=sort,proto3" json:"sort,omitempty"`
+ IsPublic bool `protobuf:"varint,3,opt,name=is_public,json=isPublic,proto3" json:"is_public,omitempty"`
+ Limit int32 `protobuf:"varint,4,opt,name=limit,proto3" json:"limit,omitempty"`
+ Offset int32 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
+ Marker string `protobuf:"bytes,6,opt,name=marker,proto3" json:"marker,omitempty"`
+}
+
+func (x *ListVolumeTypesReq) Reset() {
+ *x = ListVolumeTypesReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[72]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumeTypesReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumeTypesReq) ProtoMessage() {}
+
+func (x *ListVolumeTypesReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[72]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumeTypesReq.ProtoReflect.Descriptor instead.
+func (*ListVolumeTypesReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{72}
+}
+
+func (x *ListVolumeTypesReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesReq) GetSort() string {
+ if x != nil {
+ return x.Sort
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesReq) GetIsPublic() bool {
+ if x != nil {
+ return x.IsPublic
+ }
+ return false
+}
+
+func (x *ListVolumeTypesReq) GetLimit() int32 {
+ if x != nil {
+ return x.Limit
+ }
+ return 0
+}
+
+func (x *ListVolumeTypesReq) GetOffset() int32 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+
+func (x *ListVolumeTypesReq) GetMarker() string {
+ if x != nil {
+ return x.Marker
+ }
+ return ""
+}
+
+type ListVolumeTypesResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ VolumeTypes []*ListVolumeTypesResp_VolumeTypes `protobuf:"bytes,1,rep,name=volume_types,json=volumeTypes,proto3" json:"volume_types,omitempty"` // @gotags: copier:"VolumeTypes"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *ListVolumeTypesResp) Reset() {
+ *x = ListVolumeTypesResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[73]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumeTypesResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumeTypesResp) ProtoMessage() {}
+
+func (x *ListVolumeTypesResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[73]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumeTypesResp.ProtoReflect.Descriptor instead.
+func (*ListVolumeTypesResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{73}
+}
+
+func (x *ListVolumeTypesResp) GetVolumeTypes() []*ListVolumeTypesResp_VolumeTypes {
+ if x != nil {
+ return x.VolumeTypes
+ }
+ return nil
+}
+
+func (x *ListVolumeTypesResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *ListVolumeTypesResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type CreateTypeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ VolumeType *CreateTypeReq_VolumeType `protobuf:"bytes,2,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"`
+}
+
+func (x *CreateTypeReq) Reset() {
+ *x = CreateTypeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[74]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeReq) ProtoMessage() {}
+
+func (x *CreateTypeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[74]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeReq.ProtoReflect.Descriptor instead.
+func (*CreateTypeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{74}
+}
+
+func (x *CreateTypeReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *CreateTypeReq) GetVolumeType() *CreateTypeReq_VolumeType {
+ if x != nil {
+ return x.VolumeType
+ }
+ return nil
+}
+
+type CreateTypeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ VolumeType *CreateTypeResp_VolumeType `protobuf:"bytes,1,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"` // @gotags: copier:"VolumeTypes"
+ Code int32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,4,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *CreateTypeResp) Reset() {
+ *x = CreateTypeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[75]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeResp) ProtoMessage() {}
+
+func (x *CreateTypeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[75]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeResp.ProtoReflect.Descriptor instead.
+func (*CreateTypeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{75}
+}
+
+func (x *CreateTypeResp) GetVolumeType() *CreateTypeResp_VolumeType {
+ if x != nil {
+ return x.VolumeType
+ }
+ return nil
+}
+
+func (x *CreateTypeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *CreateTypeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *CreateTypeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type DeleteTypeReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
+ VolumeTypeId string `protobuf:"bytes,2,opt,name=volume_type_id,json=volumeTypeId,proto3" json:"volume_type_id,omitempty"`
+}
+
+func (x *DeleteTypeReq) Reset() {
+ *x = DeleteTypeReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[76]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteTypeReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteTypeReq) ProtoMessage() {}
+
+func (x *DeleteTypeReq) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[76]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteTypeReq.ProtoReflect.Descriptor instead.
+func (*DeleteTypeReq) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{76}
+}
+
+func (x *DeleteTypeReq) GetProjectId() string {
+ if x != nil {
+ return x.ProjectId
+ }
+ return ""
+}
+
+func (x *DeleteTypeReq) GetVolumeTypeId() string {
+ if x != nil {
+ return x.VolumeTypeId
+ }
+ return ""
+}
+
+type DeleteTypeResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code"
+ Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg"
+ ErrorMsg string `protobuf:"bytes,3,opt,name=error_msg,json=errorMsg,proto3" json:"error_msg,omitempty"` // @gotags: copier:"ErrorMsg"
+}
+
+func (x *DeleteTypeResp) Reset() {
+ *x = DeleteTypeResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[77]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteTypeResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteTypeResp) ProtoMessage() {}
+
+func (x *DeleteTypeResp) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[77]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteTypeResp.ProtoReflect.Descriptor instead.
+func (*DeleteTypeResp) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{77}
+}
+
+func (x *DeleteTypeResp) GetCode() int32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *DeleteTypeResp) GetMsg() string {
+ if x != nil {
+ return x.Msg
+ }
+ return ""
+}
+
+func (x *DeleteTypeResp) GetErrorMsg() string {
+ if x != nil {
+ return x.ErrorMsg
+ }
+ return ""
+}
+
+type GetComputeLimitsResp_Rate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetComputeLimitsResp_Rate) Reset() {
+ *x = GetComputeLimitsResp_Rate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[78]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetComputeLimitsResp_Rate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetComputeLimitsResp_Rate) ProtoMessage() {}
+
+func (x *GetComputeLimitsResp_Rate) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[78]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetComputeLimitsResp_Rate.ProtoReflect.Descriptor instead.
+func (*GetComputeLimitsResp_Rate) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{1, 0}
+}
+
+type GetComputeLimitsResp_Absolute struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ MaxServerMeta int64 `protobuf:"varint,1,opt,name=maxServerMeta,proto3" json:"maxServerMeta,omitempty"`
+ MaxPersonality int64 `protobuf:"varint,2,opt,name=maxPersonality,proto3" json:"maxPersonality,omitempty"`
+ TotalServerGroupsUsed int64 `protobuf:"varint,3,opt,name=totalServerGroupsUsed,proto3" json:"totalServerGroupsUsed,omitempty"`
+ MaxImageMeta int64 `protobuf:"varint,4,opt,name=maxImageMeta,proto3" json:"maxImageMeta,omitempty"`
+ MaxPersonalitySize int64 `protobuf:"varint,5,opt,name=maxPersonalitySize,proto3" json:"maxPersonalitySize,omitempty"`
+ MaxTotalKeypairs int64 `protobuf:"varint,6,opt,name=maxTotalKeypairs,proto3" json:"maxTotalKeypairs,omitempty"`
+ MaxSecurityGroupRules int64 `protobuf:"varint,7,opt,name=maxSecurityGroupRules,proto3" json:"maxSecurityGroupRules,omitempty"`
+ MaxServerGroups int64 `protobuf:"varint,8,opt,name=maxServerGroups,proto3" json:"maxServerGroups,omitempty"`
+ TotalCoresUsed int64 `protobuf:"varint,9,opt,name=totalCoresUsed,proto3" json:"totalCoresUsed,omitempty"`
+ TotalRAMUsed int64 `protobuf:"varint,10,opt,name=totalRAMUsed,proto3" json:"totalRAMUsed,omitempty"`
+ TotalInstancesUsed int64 `protobuf:"varint,11,opt,name=totalInstancesUsed,proto3" json:"totalInstancesUsed,omitempty"`
+ MaxSecurityGroups int64 `protobuf:"varint,12,opt,name=maxSecurityGroups,proto3" json:"maxSecurityGroups,omitempty"`
+ TotalFloatingIpsUsed int64 `protobuf:"varint,13,opt,name=totalFloatingIpsUsed,proto3" json:"totalFloatingIpsUsed,omitempty"`
+ MaxTotalCores int64 `protobuf:"varint,14,opt,name=maxTotalCores,proto3" json:"maxTotalCores,omitempty"`
+ MaxServerGroupMembers int64 `protobuf:"varint,15,opt,name=maxServerGroupMembers,proto3" json:"maxServerGroupMembers,omitempty"`
+ MaxTotalFloatingIps int64 `protobuf:"varint,16,opt,name=maxTotalFloatingIps,proto3" json:"maxTotalFloatingIps,omitempty"`
+ TotalSecurityGroupsUsed int64 `protobuf:"varint,17,opt,name=totalSecurityGroupsUsed,proto3" json:"totalSecurityGroupsUsed,omitempty"`
+ MaxTotalInstances int64 `protobuf:"varint,18,opt,name=maxTotalInstances,proto3" json:"maxTotalInstances,omitempty"`
+ MaxTotalRAMSize int64 `protobuf:"varint,19,opt,name=maxTotalRAMSize,proto3" json:"maxTotalRAMSize,omitempty"`
+}
+
+func (x *GetComputeLimitsResp_Absolute) Reset() {
+ *x = GetComputeLimitsResp_Absolute{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[79]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetComputeLimitsResp_Absolute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetComputeLimitsResp_Absolute) ProtoMessage() {}
+
+func (x *GetComputeLimitsResp_Absolute) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[79]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetComputeLimitsResp_Absolute.ProtoReflect.Descriptor instead.
+func (*GetComputeLimitsResp_Absolute) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{1, 1}
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxServerMeta() int64 {
+ if x != nil {
+ return x.MaxServerMeta
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxPersonality() int64 {
+ if x != nil {
+ return x.MaxPersonality
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalServerGroupsUsed() int64 {
+ if x != nil {
+ return x.TotalServerGroupsUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxImageMeta() int64 {
+ if x != nil {
+ return x.MaxImageMeta
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxPersonalitySize() int64 {
+ if x != nil {
+ return x.MaxPersonalitySize
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxTotalKeypairs() int64 {
+ if x != nil {
+ return x.MaxTotalKeypairs
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxSecurityGroupRules() int64 {
+ if x != nil {
+ return x.MaxSecurityGroupRules
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxServerGroups() int64 {
+ if x != nil {
+ return x.MaxServerGroups
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalCoresUsed() int64 {
+ if x != nil {
+ return x.TotalCoresUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalRAMUsed() int64 {
+ if x != nil {
+ return x.TotalRAMUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalInstancesUsed() int64 {
+ if x != nil {
+ return x.TotalInstancesUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxSecurityGroups() int64 {
+ if x != nil {
+ return x.MaxSecurityGroups
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalFloatingIpsUsed() int64 {
+ if x != nil {
+ return x.TotalFloatingIpsUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxTotalCores() int64 {
+ if x != nil {
+ return x.MaxTotalCores
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxServerGroupMembers() int64 {
+ if x != nil {
+ return x.MaxServerGroupMembers
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxTotalFloatingIps() int64 {
+ if x != nil {
+ return x.MaxTotalFloatingIps
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetTotalSecurityGroupsUsed() int64 {
+ if x != nil {
+ return x.TotalSecurityGroupsUsed
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxTotalInstances() int64 {
+ if x != nil {
+ return x.MaxTotalInstances
+ }
+ return 0
+}
+
+func (x *GetComputeLimitsResp_Absolute) GetMaxTotalRAMSize() int64 {
+ if x != nil {
+ return x.MaxTotalRAMSize
+ }
+ return 0
+}
+
+type GetComputeLimitsResp_Limits struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Rate []*GetComputeLimitsResp_Rate `protobuf:"bytes,1,rep,name=rate,proto3" json:"rate,omitempty"`
+ Absolute *GetComputeLimitsResp_Absolute `protobuf:"bytes,2,opt,name=absolute,proto3" json:"absolute,omitempty"`
+}
+
+func (x *GetComputeLimitsResp_Limits) Reset() {
+ *x = GetComputeLimitsResp_Limits{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[80]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetComputeLimitsResp_Limits) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetComputeLimitsResp_Limits) ProtoMessage() {}
+
+func (x *GetComputeLimitsResp_Limits) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[80]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetComputeLimitsResp_Limits.ProtoReflect.Descriptor instead.
+func (*GetComputeLimitsResp_Limits) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{1, 2}
+}
+
+func (x *GetComputeLimitsResp_Limits) GetRate() []*GetComputeLimitsResp_Rate {
+ if x != nil {
+ return x.Rate
+ }
+ return nil
+}
+
+func (x *GetComputeLimitsResp_Limits) GetAbsolute() *GetComputeLimitsResp_Absolute {
+ if x != nil {
+ return x.Absolute
+ }
+ return nil
+}
+
+type GetVolumeLimitsResp_Rate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetVolumeLimitsResp_Rate) Reset() {
+ *x = GetVolumeLimitsResp_Rate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[81]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetVolumeLimitsResp_Rate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetVolumeLimitsResp_Rate) ProtoMessage() {}
+
+func (x *GetVolumeLimitsResp_Rate) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[81]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetVolumeLimitsResp_Rate.ProtoReflect.Descriptor instead.
+func (*GetVolumeLimitsResp_Rate) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{3, 0}
+}
+
+type GetVolumeLimitsResp_Absolute struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TotalSnapshotsUsed int32 `protobuf:"varint,1,opt,name=totalSnapshotsUsed,proto3" json:"totalSnapshotsUsed,omitempty"`
+ MaxTotalBackups int32 `protobuf:"varint,2,opt,name=maxTotalBackups,proto3" json:"maxTotalBackups,omitempty"`
+ MaxTotalVolumeGigabytes int32 `protobuf:"varint,3,opt,name=maxTotalVolumeGigabytes,proto3" json:"maxTotalVolumeGigabytes,omitempty"`
+ MaxTotalSnapshots int32 `protobuf:"varint,4,opt,name=maxTotalSnapshots,proto3" json:"maxTotalSnapshots,omitempty"`
+ MaxTotalBackupGigabytes int32 `protobuf:"varint,5,opt,name=maxTotalBackupGigabytes,proto3" json:"maxTotalBackupGigabytes,omitempty"`
+ TotalBackupGigabytesUsed int32 `protobuf:"varint,6,opt,name=totalBackupGigabytesUsed,proto3" json:"totalBackupGigabytesUsed,omitempty"`
+ MaxTotalVolumes int32 `protobuf:"varint,7,opt,name=maxTotalVolumes,proto3" json:"maxTotalVolumes,omitempty"`
+ TotalVolumesUsed int32 `protobuf:"varint,8,opt,name=totalVolumesUsed,proto3" json:"totalVolumesUsed,omitempty"`
+ TotalBackupsUsed int32 `protobuf:"varint,9,opt,name=totalBackupsUsed,proto3" json:"totalBackupsUsed,omitempty"`
+ TotalGigabytesUsed int32 `protobuf:"varint,10,opt,name=totalGigabytesUsed,proto3" json:"totalGigabytesUsed,omitempty"`
+}
+
+func (x *GetVolumeLimitsResp_Absolute) Reset() {
+ *x = GetVolumeLimitsResp_Absolute{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[82]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetVolumeLimitsResp_Absolute) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetVolumeLimitsResp_Absolute) ProtoMessage() {}
+
+func (x *GetVolumeLimitsResp_Absolute) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[82]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetVolumeLimitsResp_Absolute.ProtoReflect.Descriptor instead.
+func (*GetVolumeLimitsResp_Absolute) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{3, 1}
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetTotalSnapshotsUsed() int32 {
+ if x != nil {
+ return x.TotalSnapshotsUsed
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetMaxTotalBackups() int32 {
+ if x != nil {
+ return x.MaxTotalBackups
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetMaxTotalVolumeGigabytes() int32 {
+ if x != nil {
+ return x.MaxTotalVolumeGigabytes
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetMaxTotalSnapshots() int32 {
+ if x != nil {
+ return x.MaxTotalSnapshots
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetMaxTotalBackupGigabytes() int32 {
+ if x != nil {
+ return x.MaxTotalBackupGigabytes
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetTotalBackupGigabytesUsed() int32 {
+ if x != nil {
+ return x.TotalBackupGigabytesUsed
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetMaxTotalVolumes() int32 {
+ if x != nil {
+ return x.MaxTotalVolumes
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetTotalVolumesUsed() int32 {
+ if x != nil {
+ return x.TotalVolumesUsed
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetTotalBackupsUsed() int32 {
+ if x != nil {
+ return x.TotalBackupsUsed
+ }
+ return 0
+}
+
+func (x *GetVolumeLimitsResp_Absolute) GetTotalGigabytesUsed() int32 {
+ if x != nil {
+ return x.TotalGigabytesUsed
+ }
+ return 0
+}
+
+type GetVolumeLimitsResp_Limits struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Rate []*GetVolumeLimitsResp_Rate `protobuf:"bytes,1,rep,name=rate,proto3" json:"rate,omitempty"`
+ Absolute *GetVolumeLimitsResp_Absolute `protobuf:"bytes,2,opt,name=absolute,proto3" json:"absolute,omitempty"`
+}
+
+func (x *GetVolumeLimitsResp_Limits) Reset() {
+ *x = GetVolumeLimitsResp_Limits{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[83]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetVolumeLimitsResp_Limits) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetVolumeLimitsResp_Limits) ProtoMessage() {}
+
+func (x *GetVolumeLimitsResp_Limits) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[83]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetVolumeLimitsResp_Limits.ProtoReflect.Descriptor instead.
+func (*GetVolumeLimitsResp_Limits) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{3, 2}
+}
+
+func (x *GetVolumeLimitsResp_Limits) GetRate() []*GetVolumeLimitsResp_Rate {
+ if x != nil {
+ return x.Rate
+ }
+ return nil
+}
+
+func (x *GetVolumeLimitsResp_Limits) GetAbsolute() *GetVolumeLimitsResp_Absolute {
+ if x != nil {
+ return x.Absolute
+ }
+ return nil
+}
+
+type ListServersResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListServersResp_Links) Reset() {
+ *x = ListServersResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[84]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersResp_Links) ProtoMessage() {}
+
+func (x *ListServersResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[84]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersResp_Links.ProtoReflect.Descriptor instead.
+func (*ListServersResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{5, 0}
+}
+
+func (x *ListServersResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListServersResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListServersResp_Servers struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` //The UUID of the server
+ Links []*ListServersResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"` //有关资源的链接。
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` //The server name
+}
+
+func (x *ListServersResp_Servers) Reset() {
+ *x = ListServersResp_Servers{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[85]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersResp_Servers) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersResp_Servers) ProtoMessage() {}
+
+func (x *ListServersResp_Servers) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[85]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersResp_Servers.ProtoReflect.Descriptor instead.
+func (*ListServersResp_Servers) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{5, 1}
+}
+
+func (x *ListServersResp_Servers) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListServersResp_Servers) GetLinks() []*ListServersResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListServersResp_Servers) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type ListServersResp_ServersLinks struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListServersResp_ServersLinks) Reset() {
+ *x = ListServersResp_ServersLinks{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[86]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersResp_ServersLinks) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersResp_ServersLinks) ProtoMessage() {}
+
+func (x *ListServersResp_ServersLinks) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[86]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersResp_ServersLinks.ProtoReflect.Descriptor instead.
+func (*ListServersResp_ServersLinks) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{5, 2}
+}
+
+func (x *ListServersResp_ServersLinks) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListServersResp_ServersLinks) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListServersDetailedResp_Private struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OS_EXT_IPS_MACMacAddr string `protobuf:"bytes,1,opt,name=OS_EXT_IPS_MAC_mac_addr,json=OS-EXT-IPS-MAC:mac_addr,proto3" json:"OS_EXT_IPS_MAC_mac_addr,omitempty"`
+ OS_EXT_IPSType string `protobuf:"bytes,2,opt,name=OS_EXT_IPS_type,json=OS-EXT-IPS:type,proto3" json:"OS_EXT_IPS_type,omitempty"`
+ Addr string `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"`
+ Version uint32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Private) Reset() {
+ *x = ListServersDetailedResp_Private{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[87]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Private) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Private) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Private) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[87]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Private.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Private) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 0}
+}
+
+func (x *ListServersDetailedResp_Private) GetOS_EXT_IPS_MACMacAddr() string {
+ if x != nil {
+ return x.OS_EXT_IPS_MACMacAddr
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Private) GetOS_EXT_IPSType() string {
+ if x != nil {
+ return x.OS_EXT_IPSType
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Private) GetAddr() string {
+ if x != nil {
+ return x.Addr
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Private) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+type ListServersDetailedResp_Addresses struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Private []*ListServersDetailedResp_Private `protobuf:"bytes,1,rep,name=private,proto3" json:"private,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Addresses) Reset() {
+ *x = ListServersDetailedResp_Addresses{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[88]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Addresses) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Addresses) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Addresses) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[88]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Addresses.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Addresses) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 1}
+}
+
+func (x *ListServersDetailedResp_Addresses) GetPrivate() []*ListServersDetailedResp_Private {
+ if x != nil {
+ return x.Private
+ }
+ return nil
+}
+
+type ListServersDetailedResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListServersDetailedResp_ExtraSpecs) Reset() {
+ *x = ListServersDetailedResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[89]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[89]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 2}
+}
+
+type ListServersDetailedResp_Flavor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // uint32 disk = 1;
+ //
+ // uint32 ephemeral = 2;
+ // Extra_specs extra_specs = 3;
+ // string original_name = 4;
+ // uint32 ram = 5;
+ // uint32 swap = 6;
+ // uint32 vcpus = 7;
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*ListServersDetailedResp_Links1 `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Flavor) Reset() {
+ *x = ListServersDetailedResp_Flavor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[90]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Flavor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Flavor) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Flavor) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[90]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Flavor.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Flavor) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 3}
+}
+
+func (x *ListServersDetailedResp_Flavor) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Flavor) GetLinks() []*ListServersDetailedResp_Links1 {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+type ListServersDetailedResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Links) Reset() {
+ *x = ListServersDetailedResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[91]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Links) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[91]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Links.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 4}
+}
+
+func (x *ListServersDetailedResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListServersDetailedResp_Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*ListServersDetailedResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Image) Reset() {
+ *x = ListServersDetailedResp_Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[92]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Image) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Image) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[92]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Image.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Image) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 5}
+}
+
+func (x *ListServersDetailedResp_Image) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Image) GetLinks() []*ListServersDetailedResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+type ListServersDetailedResp_Links1 struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Links1) Reset() {
+ *x = ListServersDetailedResp_Links1{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[93]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Links1) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Links1) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Links1) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[93]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Links1.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Links1) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 6}
+}
+
+func (x *ListServersDetailedResp_Links1) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Links1) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListServersDetailedResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListServersDetailedResp_Metadata) Reset() {
+ *x = ListServersDetailedResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[94]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Metadata) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[94]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Metadata.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 7}
+}
+
+type ListServersDetailedResp_SecurityGroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *ListServersDetailedResp_SecurityGroups) Reset() {
+ *x = ListServersDetailedResp_SecurityGroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[95]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_SecurityGroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_SecurityGroups) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_SecurityGroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[95]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_SecurityGroups.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_SecurityGroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 8}
+}
+
+func (x *ListServersDetailedResp_SecurityGroups) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type ListServersDetailedResp_Servers struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ TaskState string `protobuf:"bytes,1,opt,name=TaskState,json=OS-EXT-STS:task_state,omitempty,proto3" json:"TaskState,omitempty"`
+ VmState string `protobuf:"bytes,15,opt,name=VmState,json=OS-EXT-STS:vm_state,omitempty,proto3" json:"VmState,omitempty"`
+ OS_EXT_SRV_ATTR_Instance_Name string `protobuf:"bytes,6,opt,name=OS_EXT_SRV_ATTR_Instance_Name,json=OS-EXT-SRV-ATTR:instance_name,proto3" json:"OS_EXT_SRV_ATTR_Instance_Name,omitempty"`
+ OS_SRV_USG_Launched_At string `protobuf:"bytes,16,opt,name=OS_SRV_USG_Launched_At,json=OS-SRV-USG:launched_at,proto3" json:"OS_SRV_USG_Launched_At,omitempty"`
+ OS_DCF_DiskConfig string `protobuf:"bytes,44,opt,name=OS_DCF_DiskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_DiskConfig,omitempty"`
+ OS_EXT_STS_Power_State int32 `protobuf:"varint,13,opt,name=OS_EXT_STS_Power_State,json=OS-EXT-SRV-ATTR:power_state,proto3" json:"OS_EXT_STS_Power_State,omitempty"`
+ OS_EXT_AZAvailabilityZone string `protobuf:"bytes,2,opt,name=OS_EXT_AZ_availability_zone,json=OS-EXT-AZ:availability_zone,proto3" json:"OS_EXT_AZ_availability_zone,omitempty"`
+ OS_EXT_SRV_ATTR_Host string `protobuf:"bytes,3,opt,name=OS_EXT_SRV_ATTR_Host,json=OS-EXT-SRV-ATTR:host,proto3" json:"OS_EXT_SRV_ATTR_Host,omitempty"`
+ OS_SRV_USG_Terminated_At string `protobuf:"bytes,17,opt,name=OS_SRV_USG_Terminated_At,json=OS-SRV-USG:terminated_at,proto3" json:"OS_SRV_USG_Terminated_At,omitempty"`
+ OsExtendedVolumesVolumesAttached []string `protobuf:"bytes,35,rep,name=os_extended_volumes_volumes_attached,json=os-extended-volumes:volumes_attached,proto3" json:"os_extended_volumes_volumes_attached,omitempty"`
+ OS_EXT_SRV_ATTR_Hypervisor_Hostname string `protobuf:"bytes,5,opt,name=OS_EXT_SRV_ATTR_Hypervisor_Hostname,json=OS-EXT-SRV-ATTR:hypervisor_hostname,proto3" json:"OS_EXT_SRV_ATTR_Hypervisor_Hostname,omitempty"`
+ AccessIPv4 string `protobuf:"bytes,18,opt,name=accessIPv4,proto3" json:"accessIPv4,omitempty"`
+ AccessIPv6 string `protobuf:"bytes,19,opt,name=accessIPv6,proto3" json:"accessIPv6,omitempty"`
+ Addresses *ListServersDetailedResp_Addresses `protobuf:"bytes,20,opt,name=addresses,proto3" json:"addresses,omitempty"`
+ ConfigDrive string `protobuf:"bytes,21,opt,name=config_drive,json=configDrive,proto3" json:"config_drive,omitempty"`
+ Description string `protobuf:"bytes,23,opt,name=description,proto3" json:"description,omitempty"`
+ Flavor *ListServersDetailedResp_Flavor `protobuf:"bytes,24,opt,name=flavor,proto3" json:"flavor,omitempty"`
+ HostId string `protobuf:"bytes,25,opt,name=hostId,proto3" json:"hostId,omitempty"`
+ HostStatus string `protobuf:"bytes,26,opt,name=host_status,json=hostStatus,proto3" json:"host_status,omitempty"`
+ Id string `protobuf:"bytes,27,opt,name=id,proto3" json:"id,omitempty"`
+ Image *ListServersDetailedResp_Image `protobuf:"bytes,28,opt,name=image,proto3" json:"image,omitempty"`
+ KeyName string `protobuf:"bytes,29,opt,name=key_name,json=keyName,proto3" json:"key_name,omitempty"`
+ Links []*ListServersDetailedResp_Links1 `protobuf:"bytes,30,rep,name=links,proto3" json:"links,omitempty"`
+ Locked bool `protobuf:"varint,31,opt,name=locked,proto3" json:"locked,omitempty"`
+ LockedReason string `protobuf:"bytes,32,opt,name=locked_reason,json=lockedReason,proto3" json:"locked_reason,omitempty"`
+ Metadata *ListServersDetailedResp_Metadata `protobuf:"bytes,33,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ Name string `protobuf:"bytes,34,opt,name=name,proto3" json:"name,omitempty"`
+ Progress uint32 `protobuf:"varint,36,opt,name=progress,proto3" json:"progress,omitempty"`
+ SecurityGroups []*ListServersDetailedResp_SecurityGroups `protobuf:"bytes,37,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
+ Status string `protobuf:"bytes,38,opt,name=status,proto3" json:"status,omitempty"`
+ Tags []string `protobuf:"bytes,39,rep,name=tags,proto3" json:"tags,omitempty"`
+ TenantId string `protobuf:"bytes,40,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ TrustedImageCertificates string `protobuf:"bytes,41,opt,name=trusted_image_certificates,json=trustedImageCertificates,proto3" json:"trusted_image_certificates,omitempty"`
+ Updated string `protobuf:"bytes,42,opt,name=updated,proto3" json:"updated,omitempty"`
+ UserId string `protobuf:"bytes,43,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+}
+
+func (x *ListServersDetailedResp_Servers) Reset() {
+ *x = ListServersDetailedResp_Servers{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[96]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListServersDetailedResp_Servers) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListServersDetailedResp_Servers) ProtoMessage() {}
+
+func (x *ListServersDetailedResp_Servers) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[96]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListServersDetailedResp_Servers.ProtoReflect.Descriptor instead.
+func (*ListServersDetailedResp_Servers) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{7, 9}
+}
+
+func (x *ListServersDetailedResp_Servers) GetTaskState() string {
+ if x != nil {
+ return x.TaskState
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetVmState() string {
+ if x != nil {
+ return x.VmState
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_EXT_SRV_ATTR_Instance_Name() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTR_Instance_Name
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_SRV_USG_Launched_At() string {
+ if x != nil {
+ return x.OS_SRV_USG_Launched_At
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_DCF_DiskConfig() string {
+ if x != nil {
+ return x.OS_DCF_DiskConfig
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_EXT_STS_Power_State() int32 {
+ if x != nil {
+ return x.OS_EXT_STS_Power_State
+ }
+ return 0
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_EXT_AZAvailabilityZone() string {
+ if x != nil {
+ return x.OS_EXT_AZAvailabilityZone
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_EXT_SRV_ATTR_Host() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTR_Host
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_SRV_USG_Terminated_At() string {
+ if x != nil {
+ return x.OS_SRV_USG_Terminated_At
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetOsExtendedVolumesVolumesAttached() []string {
+ if x != nil {
+ return x.OsExtendedVolumesVolumesAttached
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetOS_EXT_SRV_ATTR_Hypervisor_Hostname() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTR_Hypervisor_Hostname
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetAccessIPv4() string {
+ if x != nil {
+ return x.AccessIPv4
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetAccessIPv6() string {
+ if x != nil {
+ return x.AccessIPv6
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetAddresses() *ListServersDetailedResp_Addresses {
+ if x != nil {
+ return x.Addresses
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetConfigDrive() string {
+ if x != nil {
+ return x.ConfigDrive
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetFlavor() *ListServersDetailedResp_Flavor {
+ if x != nil {
+ return x.Flavor
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetHostId() string {
+ if x != nil {
+ return x.HostId
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetHostStatus() string {
+ if x != nil {
+ return x.HostStatus
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetImage() *ListServersDetailedResp_Image {
+ if x != nil {
+ return x.Image
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetKeyName() string {
+ if x != nil {
+ return x.KeyName
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetLinks() []*ListServersDetailedResp_Links1 {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetLocked() bool {
+ if x != nil {
+ return x.Locked
+ }
+ return false
+}
+
+func (x *ListServersDetailedResp_Servers) GetLockedReason() string {
+ if x != nil {
+ return x.LockedReason
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetMetadata() *ListServersDetailedResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetProgress() uint32 {
+ if x != nil {
+ return x.Progress
+ }
+ return 0
+}
+
+func (x *ListServersDetailedResp_Servers) GetSecurityGroups() []*ListServersDetailedResp_SecurityGroups {
+ if x != nil {
+ return x.SecurityGroups
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *ListServersDetailedResp_Servers) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetTrustedImageCertificates() string {
+ if x != nil {
+ return x.TrustedImageCertificates
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetUpdated() string {
+ if x != nil {
+ return x.Updated
+ }
+ return ""
+}
+
+func (x *ListServersDetailedResp_Servers) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+type CreateServerReq_Networks struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Uuid string `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"` // @gotags: copier:"Uuid"
+ Port string `protobuf:"bytes,2,opt,name=port,proto3" json:"port,omitempty"`
+ FixedIp string `protobuf:"bytes,3,opt,name=fixed_ip,json=fixedIp,proto3" json:"fixed_ip,omitempty"`
+ Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"`
+}
+
+func (x *CreateServerReq_Networks) Reset() {
+ *x = CreateServerReq_Networks{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[97]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_Networks) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_Networks) ProtoMessage() {}
+
+func (x *CreateServerReq_Networks) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[97]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_Networks.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_Networks) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 0}
+}
+
+func (x *CreateServerReq_Networks) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Networks) GetPort() string {
+ if x != nil {
+ return x.Port
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Networks) GetFixedIp() string {
+ if x != nil {
+ return x.FixedIp
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Networks) GetTag() string {
+ if x != nil {
+ return x.Tag
+ }
+ return ""
+}
+
+type CreateServerReq_BlockDeviceMappingV2 struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ BootIndex string `protobuf:"bytes,1,opt,name=boot_index,json=bootIndex,proto3" json:"boot_index,omitempty"` // @gotags: copier:"BootIndex"
+ DeleteOnTermination bool `protobuf:"varint,2,opt,name=delete_on_termination,json=deleteOnTermination,proto3" json:"delete_on_termination,omitempty"` // @gotags: copier:"DeleteOnTermination"
+ DestinationType string `protobuf:"bytes,3,opt,name=destination_type,json=destinationType,proto3" json:"destination_type,omitempty"`
+ DeviceName string `protobuf:"bytes,4,opt,name=device_name,json=deviceName,proto3" json:"device_name,omitempty"`
+ DeviceType string `protobuf:"bytes,5,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
+ DiskBus string `protobuf:"bytes,6,opt,name=disk_bus,json=diskBus,proto3" json:"disk_bus,omitempty"`
+ GuestFormat string `protobuf:"bytes,7,opt,name=guest_format,json=guestFormat,proto3" json:"guest_format,omitempty"`
+ NoDevice bool `protobuf:"varint,8,opt,name=no_device,json=noDevice,proto3" json:"no_device,omitempty"`
+ SourceType string `protobuf:"bytes,9,opt,name=source_type,json=sourceType,proto3" json:"source_type,omitempty"` // @gotags: copier:"SourceType"
+ Uuid string `protobuf:"bytes,10,opt,name=uuid,proto3" json:"uuid,omitempty"` // @gotags: copier:"Uuid"
+ VolumeSize string `protobuf:"bytes,11,opt,name=volume_size,json=volumeSize,proto3" json:"volume_size,omitempty"`
+ Tag string `protobuf:"bytes,12,opt,name=tag,proto3" json:"tag,omitempty"`
+ VolumeType string `protobuf:"bytes,13,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"` // @gotags: copier:"VolumeType"
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) Reset() {
+ *x = CreateServerReq_BlockDeviceMappingV2{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[98]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_BlockDeviceMappingV2) ProtoMessage() {}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[98]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_BlockDeviceMappingV2.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_BlockDeviceMappingV2) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 1}
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetBootIndex() string {
+ if x != nil {
+ return x.BootIndex
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetDeleteOnTermination() bool {
+ if x != nil {
+ return x.DeleteOnTermination
+ }
+ return false
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetDestinationType() string {
+ if x != nil {
+ return x.DestinationType
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetDeviceName() string {
+ if x != nil {
+ return x.DeviceName
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetDeviceType() string {
+ if x != nil {
+ return x.DeviceType
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetDiskBus() string {
+ if x != nil {
+ return x.DiskBus
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetGuestFormat() string {
+ if x != nil {
+ return x.GuestFormat
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetNoDevice() bool {
+ if x != nil {
+ return x.NoDevice
+ }
+ return false
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetSourceType() string {
+ if x != nil {
+ return x.SourceType
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetVolumeSize() string {
+ if x != nil {
+ return x.VolumeSize
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetTag() string {
+ if x != nil {
+ return x.Tag
+ }
+ return ""
+}
+
+func (x *CreateServerReq_BlockDeviceMappingV2) GetVolumeType() string {
+ if x != nil {
+ return x.VolumeType
+ }
+ return ""
+}
+
+type CreateServerReq_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ My_Server_Name string `protobuf:"bytes,1,opt,name=My_Server_Name,json=My Server Name,proto3" json:"My_Server_Name,omitempty"`
+}
+
+func (x *CreateServerReq_Metadata) Reset() {
+ *x = CreateServerReq_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[99]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_Metadata) ProtoMessage() {}
+
+func (x *CreateServerReq_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[99]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_Metadata.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 2}
+}
+
+func (x *CreateServerReq_Metadata) GetMy_Server_Name() string {
+ if x != nil {
+ return x.My_Server_Name
+ }
+ return ""
+}
+
+type CreateServerReq_Personality struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+ Contents string `protobuf:"bytes,2,opt,name=contents,proto3" json:"contents,omitempty"`
+}
+
+func (x *CreateServerReq_Personality) Reset() {
+ *x = CreateServerReq_Personality{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[100]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_Personality) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_Personality) ProtoMessage() {}
+
+func (x *CreateServerReq_Personality) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[100]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_Personality.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_Personality) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 3}
+}
+
+func (x *CreateServerReq_Personality) GetPath() string {
+ if x != nil {
+ return x.Path
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Personality) GetContents() string {
+ if x != nil {
+ return x.Contents
+ }
+ return ""
+}
+
+type CreateServerReq_SecurityGroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *CreateServerReq_SecurityGroups) Reset() {
+ *x = CreateServerReq_SecurityGroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[101]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_SecurityGroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_SecurityGroups) ProtoMessage() {}
+
+func (x *CreateServerReq_SecurityGroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[101]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_SecurityGroups.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_SecurityGroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 4}
+}
+
+func (x *CreateServerReq_SecurityGroups) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type CreateServerReq_Server struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ FlavorRef string `protobuf:"bytes,1,opt,name=flavorRef,proto3" json:"flavorRef,omitempty"` // @gotags: copier:"FlavorRef"
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name"
+ Networks []*CreateServerReq_Networks `protobuf:"bytes,3,rep,name=networks,proto3" json:"networks,omitempty"` // @gotags: copier:"Networks"
+ ImageRef string `protobuf:"bytes,10,opt,name=imageRef,proto3" json:"imageRef,omitempty"` // @gotags: copier:"ImageRef"
+ AccessIPv4 string `protobuf:"bytes,4,opt,name=accessIPv4,proto3" json:"accessIPv4,omitempty"`
+ AccessIPv6 string `protobuf:"bytes,5,opt,name=accessIPv6,proto3" json:"accessIPv6,omitempty"`
+ AdminPass string `protobuf:"bytes,6,opt,name=adminPass,proto3" json:"adminPass,omitempty"`
+ AvailabilityZone string `protobuf:"bytes,7,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"`
+ BlockDeviceMappingV2 []*CreateServerReq_BlockDeviceMappingV2 `protobuf:"bytes,8,rep,name=block_device_mapping_v2,json=blockDeviceMappingV2,proto3" json:"block_device_mapping_v2,omitempty"` // @gotags: copier:"BlockDeviceMappingV2"
+ ConfigDrive bool `protobuf:"varint,9,opt,name=config_drive,json=configDrive,proto3" json:"config_drive,omitempty"`
+ KeyName string `protobuf:"bytes,11,opt,name=key_name,json=keyName,proto3" json:"key_name,omitempty"`
+ Metadata *CreateServerReq_Metadata `protobuf:"bytes,12,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ OS_DCFDiskConfig string `protobuf:"bytes,13,opt,name=OS_DCF_diskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_diskConfig,omitempty"` // @gotags: copier:"OSDCFDiskConfig"
+ Personality []*CreateServerReq_Personality `protobuf:"bytes,14,rep,name=personality,proto3" json:"personality,omitempty"`
+ SecurityGroups []*CreateServerReq_SecurityGroups `protobuf:"bytes,15,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
+ UserData string `protobuf:"bytes,16,opt,name=user_data,json=userData,proto3" json:"user_data,omitempty"`
+ Description string `protobuf:"bytes,17,opt,name=description,proto3" json:"description,omitempty"`
+ Hostname string `protobuf:"bytes,18,opt,name=hostname,proto3" json:"hostname,omitempty"`
+ Tags []string `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty"`
+ TrustedImageCertificates []string `protobuf:"bytes,20,rep,name=trusted_image_certificates,json=trustedImageCertificates,proto3" json:"trusted_image_certificates,omitempty"`
+ Host string `protobuf:"bytes,21,opt,name=host,proto3" json:"host,omitempty"`
+ HypervisorHostname string `protobuf:"bytes,22,opt,name=hypervisor_hostname,json=hypervisorHostname,proto3" json:"hypervisor_hostname,omitempty"`
+}
+
+func (x *CreateServerReq_Server) Reset() {
+ *x = CreateServerReq_Server{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[102]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_Server) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_Server) ProtoMessage() {}
+
+func (x *CreateServerReq_Server) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[102]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_Server.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_Server) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 5}
+}
+
+func (x *CreateServerReq_Server) GetFlavorRef() string {
+ if x != nil {
+ return x.FlavorRef
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetNetworks() []*CreateServerReq_Networks {
+ if x != nil {
+ return x.Networks
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetImageRef() string {
+ if x != nil {
+ return x.ImageRef
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetAccessIPv4() string {
+ if x != nil {
+ return x.AccessIPv4
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetAccessIPv6() string {
+ if x != nil {
+ return x.AccessIPv6
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetAdminPass() string {
+ if x != nil {
+ return x.AdminPass
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetAvailabilityZone() string {
+ if x != nil {
+ return x.AvailabilityZone
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetBlockDeviceMappingV2() []*CreateServerReq_BlockDeviceMappingV2 {
+ if x != nil {
+ return x.BlockDeviceMappingV2
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetConfigDrive() bool {
+ if x != nil {
+ return x.ConfigDrive
+ }
+ return false
+}
+
+func (x *CreateServerReq_Server) GetKeyName() string {
+ if x != nil {
+ return x.KeyName
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetMetadata() *CreateServerReq_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetOS_DCFDiskConfig() string {
+ if x != nil {
+ return x.OS_DCFDiskConfig
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetPersonality() []*CreateServerReq_Personality {
+ if x != nil {
+ return x.Personality
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetSecurityGroups() []*CreateServerReq_SecurityGroups {
+ if x != nil {
+ return x.SecurityGroups
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetUserData() string {
+ if x != nil {
+ return x.UserData
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetHostname() string {
+ if x != nil {
+ return x.Hostname
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetTrustedImageCertificates() []string {
+ if x != nil {
+ return x.TrustedImageCertificates
+ }
+ return nil
+}
+
+func (x *CreateServerReq_Server) GetHost() string {
+ if x != nil {
+ return x.Host
+ }
+ return ""
+}
+
+func (x *CreateServerReq_Server) GetHypervisorHostname() string {
+ if x != nil {
+ return x.HypervisorHostname
+ }
+ return ""
+}
+
+type CreateServerReq_OsSchHntSchedulerHints struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SameHost []string `protobuf:"bytes,1,rep,name=same_host,json=sameHost,proto3" json:"same_host,omitempty"`
+ BuildNearHostIp string `protobuf:"bytes,2,opt,name=build_near_host_ip,json=buildNearHostIp,proto3" json:"build_near_host_ip,omitempty"`
+ Cidr string `protobuf:"bytes,3,opt,name=cidr,proto3" json:"cidr,omitempty"`
+ DifferentCell []string `protobuf:"bytes,4,rep,name=different_cell,json=differentCell,proto3" json:"different_cell,omitempty"`
+ DifferentHost []string `protobuf:"bytes,5,rep,name=different_host,json=differentHost,proto3" json:"different_host,omitempty"`
+ Group string `protobuf:"bytes,6,opt,name=group,proto3" json:"group,omitempty"`
+ Query string `protobuf:"bytes,7,opt,name=query,proto3" json:"query,omitempty"`
+ TargetCell string `protobuf:"bytes,8,opt,name=target_cell,json=targetCell,proto3" json:"target_cell,omitempty"`
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) Reset() {
+ *x = CreateServerReq_OsSchHntSchedulerHints{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[103]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerReq_OsSchHntSchedulerHints) ProtoMessage() {}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[103]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerReq_OsSchHntSchedulerHints.ProtoReflect.Descriptor instead.
+func (*CreateServerReq_OsSchHntSchedulerHints) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{8, 6}
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetSameHost() []string {
+ if x != nil {
+ return x.SameHost
+ }
+ return nil
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetBuildNearHostIp() string {
+ if x != nil {
+ return x.BuildNearHostIp
+ }
+ return ""
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetCidr() string {
+ if x != nil {
+ return x.Cidr
+ }
+ return ""
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetDifferentCell() []string {
+ if x != nil {
+ return x.DifferentCell
+ }
+ return nil
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetDifferentHost() []string {
+ if x != nil {
+ return x.DifferentHost
+ }
+ return nil
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetGroup() string {
+ if x != nil {
+ return x.Group
+ }
+ return ""
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetQuery() string {
+ if x != nil {
+ return x.Query
+ }
+ return ""
+}
+
+func (x *CreateServerReq_OsSchHntSchedulerHints) GetTargetCell() string {
+ if x != nil {
+ return x.TargetCell
+ }
+ return ""
+}
+
+type CreateServerResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateServerResp_Links) Reset() {
+ *x = CreateServerResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[104]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerResp_Links) ProtoMessage() {}
+
+func (x *CreateServerResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[104]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerResp_Links.ProtoReflect.Descriptor instead.
+func (*CreateServerResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{9, 0}
+}
+
+func (x *CreateServerResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateServerResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateServerResp_SecurityGroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name"
+}
+
+func (x *CreateServerResp_SecurityGroups) Reset() {
+ *x = CreateServerResp_SecurityGroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[105]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerResp_SecurityGroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerResp_SecurityGroups) ProtoMessage() {}
+
+func (x *CreateServerResp_SecurityGroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[105]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerResp_SecurityGroups.ProtoReflect.Descriptor instead.
+func (*CreateServerResp_SecurityGroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{9, 1}
+}
+
+func (x *CreateServerResp_SecurityGroups) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type CreateServerResp_Server struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"Id"
+ Links []*CreateServerResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"` //
+ OS_DCFDiskConfig string `protobuf:"bytes,3,opt,name=OS_DCF_diskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_diskConfig,omitempty"` // @gotags: copier:"OSDCFDiskConfig"
+ SecurityGroups []*CreateServerResp_SecurityGroups `protobuf:"bytes,4,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"` // @gotags: copier:"SecurityGroups"
+ AdminPass string `protobuf:"bytes,5,opt,name=adminPass,proto3" json:"adminPass,omitempty"` // @gotags: copier:"AdminPass"
+}
+
+func (x *CreateServerResp_Server) Reset() {
+ *x = CreateServerResp_Server{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[106]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateServerResp_Server) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateServerResp_Server) ProtoMessage() {}
+
+func (x *CreateServerResp_Server) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[106]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateServerResp_Server.ProtoReflect.Descriptor instead.
+func (*CreateServerResp_Server) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{9, 2}
+}
+
+func (x *CreateServerResp_Server) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *CreateServerResp_Server) GetLinks() []*CreateServerResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *CreateServerResp_Server) GetOS_DCFDiskConfig() string {
+ if x != nil {
+ return x.OS_DCFDiskConfig
+ }
+ return ""
+}
+
+func (x *CreateServerResp_Server) GetSecurityGroups() []*CreateServerResp_SecurityGroups {
+ if x != nil {
+ return x.SecurityGroups
+ }
+ return nil
+}
+
+func (x *CreateServerResp_Server) GetAdminPass() string {
+ if x != nil {
+ return x.AdminPass
+ }
+ return ""
+}
+
+type GetServersDetailedByIdResp_Private struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OS_EXT_IPS_MACMacAddr string `protobuf:"bytes,1,opt,name=OS_EXT_IPS_MAC_mac_addr,json=OS-EXT-IPS-MAC:mac_addr,proto3" json:"OS_EXT_IPS_MAC_mac_addr,omitempty"`
+ OS_EXT_IPSType string `protobuf:"bytes,2,opt,name=OS_EXT_IPS_type,json=OS-EXT-IPS:type,proto3" json:"OS_EXT_IPS_type,omitempty"`
+ Addr string `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"`
+ Version uint32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Private) Reset() {
+ *x = GetServersDetailedByIdResp_Private{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[107]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Private) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Private) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Private) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[107]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Private.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Private) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 0}
+}
+
+func (x *GetServersDetailedByIdResp_Private) GetOS_EXT_IPS_MACMacAddr() string {
+ if x != nil {
+ return x.OS_EXT_IPS_MACMacAddr
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Private) GetOS_EXT_IPSType() string {
+ if x != nil {
+ return x.OS_EXT_IPSType
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Private) GetAddr() string {
+ if x != nil {
+ return x.Addr
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Private) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+type GetServersDetailedByIdResp_Addresses struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Private []*GetServersDetailedByIdResp_Private `protobuf:"bytes,1,rep,name=private,proto3" json:"private,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Addresses) Reset() {
+ *x = GetServersDetailedByIdResp_Addresses{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[108]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Addresses) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Addresses) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Addresses) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[108]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Addresses.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Addresses) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 1}
+}
+
+func (x *GetServersDetailedByIdResp_Addresses) GetPrivate() []*GetServersDetailedByIdResp_Private {
+ if x != nil {
+ return x.Private
+ }
+ return nil
+}
+
+type GetServersDetailedByIdResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetServersDetailedByIdResp_ExtraSpecs) Reset() {
+ *x = GetServersDetailedByIdResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[109]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[109]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 2}
+}
+
+type GetServersDetailedByIdResp_Flavor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links string `protobuf:"bytes,2,opt,name=links,proto3" json:"links,omitempty"`
+ Vcpus uint32 `protobuf:"varint,3,opt,name=vcpus,proto3" json:"vcpus,omitempty"`
+ Ram uint32 `protobuf:"varint,4,opt,name=ram,proto3" json:"ram,omitempty"`
+ Disk uint32 `protobuf:"varint,5,opt,name=disk,proto3" json:"disk,omitempty"`
+ Ephemeral uint32 `protobuf:"varint,6,opt,name=ephemeral,proto3" json:"ephemeral,omitempty"`
+ Swap uint32 `protobuf:"varint,7,opt,name=swap,proto3" json:"swap,omitempty"`
+ OriginalName string `protobuf:"bytes,8,opt,name=original_name,json=originalName,proto3" json:"original_name,omitempty"`
+ ExtraSpecs *GetServersDetailedByIdResp_ExtraSpecs `protobuf:"bytes,9,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) Reset() {
+ *x = GetServersDetailedByIdResp_Flavor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[110]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Flavor) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Flavor) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[110]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Flavor.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Flavor) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 3}
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetLinks() string {
+ if x != nil {
+ return x.Links
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetVcpus() uint32 {
+ if x != nil {
+ return x.Vcpus
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetRam() uint32 {
+ if x != nil {
+ return x.Ram
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetDisk() uint32 {
+ if x != nil {
+ return x.Disk
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetEphemeral() uint32 {
+ if x != nil {
+ return x.Ephemeral
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetSwap() uint32 {
+ if x != nil {
+ return x.Swap
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetOriginalName() string {
+ if x != nil {
+ return x.OriginalName
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Flavor) GetExtraSpecs() *GetServersDetailedByIdResp_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+type GetServersDetailedByIdResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Links) Reset() {
+ *x = GetServersDetailedByIdResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[111]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Links) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[111]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Links.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 4}
+}
+
+func (x *GetServersDetailedByIdResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type GetServersDetailedByIdResp_Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*GetServersDetailedByIdResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Image) Reset() {
+ *x = GetServersDetailedByIdResp_Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[112]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Image) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Image) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[112]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Image.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Image) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 5}
+}
+
+func (x *GetServersDetailedByIdResp_Image) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Image) GetLinks() []*GetServersDetailedByIdResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+type GetServersDetailedByIdResp_Links1 struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Links1) Reset() {
+ *x = GetServersDetailedByIdResp_Links1{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[113]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Links1) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Links1) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Links1) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[113]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Links1.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Links1) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 6}
+}
+
+func (x *GetServersDetailedByIdResp_Links1) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Links1) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type GetServersDetailedByIdResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *GetServersDetailedByIdResp_Metadata) Reset() {
+ *x = GetServersDetailedByIdResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[114]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Metadata) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[114]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Metadata.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 7}
+}
+
+type GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ DeleteOnTermination bool `protobuf:"varint,2,opt,name=delete_on_termination,json=deleteOnTermination,proto3" json:"delete_on_termination,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) Reset() {
+ *x = GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[115]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[115]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 8}
+}
+
+func (x *GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached) GetDeleteOnTermination() bool {
+ if x != nil {
+ return x.DeleteOnTermination
+ }
+ return false
+}
+
+type GetServersDetailedByIdResp_Fault struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
+ Created string `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+ Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
+ Details string `protobuf:"bytes,4,opt,name=details,proto3" json:"details,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Fault) Reset() {
+ *x = GetServersDetailedByIdResp_Fault{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[116]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Fault) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Fault) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Fault) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[116]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Fault.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Fault) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 9}
+}
+
+func (x *GetServersDetailedByIdResp_Fault) GetCode() uint32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Fault) GetCreated() string {
+ if x != nil {
+ return x.Created
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Fault) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Fault) GetDetails() string {
+ if x != nil {
+ return x.Details
+ }
+ return ""
+}
+
+type GetServersDetailedByIdResp_SecurityGroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_SecurityGroups) Reset() {
+ *x = GetServersDetailedByIdResp_SecurityGroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[117]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_SecurityGroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_SecurityGroups) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_SecurityGroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[117]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_SecurityGroups.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_SecurityGroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 10}
+}
+
+func (x *GetServersDetailedByIdResp_SecurityGroups) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type GetServersDetailedByIdResp_Servers struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AccessIPv4 string `protobuf:"bytes,1,opt,name=accessIPv4,proto3" json:"accessIPv4,omitempty"`
+ AccessIPv6 string `protobuf:"bytes,2,opt,name=accessIPv6,proto3" json:"accessIPv6,omitempty"`
+ Addresses *GetServersDetailedByIdResp_Addresses `protobuf:"bytes,3,opt,name=addresses,proto3" json:"addresses,omitempty"`
+ ConfigDrive string `protobuf:"bytes,4,opt,name=config_drive,json=configDrive,proto3" json:"config_drive,omitempty"`
+ Created string `protobuf:"bytes,5,opt,name=created,proto3" json:"created,omitempty"`
+ Flavor *GetServersDetailedByIdResp_Flavor `protobuf:"bytes,6,opt,name=flavor,proto3" json:"flavor,omitempty"`
+ HostId string `protobuf:"bytes,7,opt,name=hostId,proto3" json:"hostId,omitempty"`
+ Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"`
+ Image *GetServersDetailedByIdResp_Image `protobuf:"bytes,9,opt,name=image,proto3" json:"image,omitempty"`
+ KeyName string `protobuf:"bytes,10,opt,name=key_name,json=keyName,proto3" json:"key_name,omitempty"`
+ Links []*GetServersDetailedByIdResp_Links1 `protobuf:"bytes,11,rep,name=links,proto3" json:"links,omitempty"`
+ Metadata *GetServersDetailedByIdResp_Metadata `protobuf:"bytes,12,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"`
+ OS_DCFDiskConfig string `protobuf:"bytes,14,opt,name=OS_DCF_diskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_diskConfig,omitempty"`
+ OS_EXT_AZAvailabilityZone string `protobuf:"bytes,15,opt,name=OS_EXT_AZ_availability_zone,json=OS-EXT-AZ:availability_zone,proto3" json:"OS_EXT_AZ_availability_zone,omitempty"`
+ OS_EXT_SRV_ATTRHost string `protobuf:"bytes,16,opt,name=OS_EXT_SRV_ATTR_host,json=OS-EXT-SRV-ATTR:host,proto3" json:"OS_EXT_SRV_ATTR_host,omitempty"`
+ OS_EXT_SRV_ATTRHostname string `protobuf:"bytes,17,opt,name=OS_EXT_SRV_ATTR_hostname,json=OS-EXT-SRV-ATTR:hostname,proto3" json:"OS_EXT_SRV_ATTR_hostname,omitempty"`
+ OS_EXT_SRV_ATTRHypervisorHostname string `protobuf:"bytes,18,opt,name=OS_EXT_SRV_ATTR_hypervisor_hostname,json=OS-EXT-SRV-ATTR:hypervisor_hostname,proto3" json:"OS_EXT_SRV_ATTR_hypervisor_hostname,omitempty"`
+ OS_EXT_SRV_ATTRInstanceName string `protobuf:"bytes,19,opt,name=OS_EXT_SRV_ATTR_instance_name,json=OS-EXT-SRV-ATTR:instance_name,proto3" json:"OS_EXT_SRV_ATTR_instance_name,omitempty"`
+ OS_EXT_SRV_ATTRKernelId string `protobuf:"bytes,20,opt,name=OS_EXT_SRV_ATTR_kernel_id,json=OS-EXT-SRV-ATTR:kernel_id,proto3" json:"OS_EXT_SRV_ATTR_kernel_id,omitempty"`
+ OS_EXT_SRV_ATTRLaunchIndex uint32 `protobuf:"varint,21,opt,name=OS_EXT_SRV_ATTR_launch_index,json=OS-EXT-SRV-ATTR:launch_index,proto3" json:"OS_EXT_SRV_ATTR_launch_index,omitempty"`
+ OS_EXT_SRV_ATTRRamdiskId string `protobuf:"bytes,22,opt,name=OS_EXT_SRV_ATTR_ramdisk_id,json=OS-EXT-SRV-ATTR:ramdisk_id,proto3" json:"OS_EXT_SRV_ATTR_ramdisk_id,omitempty"`
+ OS_EXT_SRV_ATTRReservationId string `protobuf:"bytes,23,opt,name=OS_EXT_SRV_ATTR_reservation_id,json=OS-EXT-SRV-ATTR:reservation_id,proto3" json:"OS_EXT_SRV_ATTR_reservation_id,omitempty"`
+ OS_EXT_SRV_ATTRRootDeviceName string `protobuf:"bytes,24,opt,name=OS_EXT_SRV_ATTR_root_device_name,json=OS-EXT-SRV-ATTR:root_device_name,proto3" json:"OS_EXT_SRV_ATTR_root_device_name,omitempty"`
+ OS_EXT_SRV_ATTRUserData string `protobuf:"bytes,25,opt,name=OS_EXT_SRV_ATTR_user_data,json=OS-EXT-SRV-ATTR:user_data,proto3" json:"OS_EXT_SRV_ATTR_user_data,omitempty"`
+ OS_EXT_STSPowerState uint32 `protobuf:"varint,26,opt,name=OS_EXT_STS_power_state,json=OS-EXT-STS:power_state,proto3" json:"OS_EXT_STS_power_state,omitempty"`
+ OS_EXT_STSTaskState string `protobuf:"bytes,27,opt,name=OS_EXT_STS_task_state,json=OS-EXT-STS:task_state,proto3" json:"OS_EXT_STS_task_state,omitempty"`
+ OS_EXT_STSVmState string `protobuf:"bytes,28,opt,name=OS_EXT_STS_vm_state,json=OS-EXT-STS:vm_state,proto3" json:"OS_EXT_STS_vm_state,omitempty"`
+ OsExtendedVolumesVolumesAttached []*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached `protobuf:"bytes,29,rep,name=os_extended_volumes_volumes_attached,json=os-extended-volumes:volumes_attached,proto3" json:"os_extended_volumes_volumes_attached,omitempty"`
+ OS_SRV_USGLaunchedAt string `protobuf:"bytes,30,opt,name=OS_SRV_USG_launched_at,json=OS-SRV-USG:launched_at,proto3" json:"OS_SRV_USG_launched_at,omitempty"`
+ OS_SRV_USGTerminatedAt string `protobuf:"bytes,31,opt,name=OS_SRV_USG_terminated_at,json=OS-SRV-USG:terminated_at,proto3" json:"OS_SRV_USG_terminated_at,omitempty"`
+ Status string `protobuf:"bytes,32,opt,name=status,proto3" json:"status,omitempty"`
+ TenantId string `protobuf:"bytes,33,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ Updated string `protobuf:"bytes,34,opt,name=updated,proto3" json:"updated,omitempty"`
+ UserId string `protobuf:"bytes,35,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ Fault *GetServersDetailedByIdResp_Fault `protobuf:"bytes,36,opt,name=fault,proto3" json:"fault,omitempty"`
+ Progress uint32 `protobuf:"varint,37,opt,name=progress,proto3" json:"progress,omitempty"`
+ SecurityGroups []*GetServersDetailedByIdResp_SecurityGroups `protobuf:"bytes,38,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
+ Locked bool `protobuf:"varint,39,opt,name=locked,proto3" json:"locked,omitempty"`
+ HostStatus string `protobuf:"bytes,40,opt,name=host_status,json=hostStatus,proto3" json:"host_status,omitempty"`
+ Description string `protobuf:"bytes,41,opt,name=description,proto3" json:"description,omitempty"`
+ Tags []string `protobuf:"bytes,42,rep,name=tags,proto3" json:"tags,omitempty"`
+ TrustedImageCertificates string `protobuf:"bytes,43,opt,name=trusted_image_certificates,json=trustedImageCertificates,proto3" json:"trusted_image_certificates,omitempty"`
+ ServerGroups []string `protobuf:"bytes,44,rep,name=server_groups,json=serverGroups,proto3" json:"server_groups,omitempty"`
+ LockedReason string `protobuf:"bytes,45,opt,name=locked_reason,json=lockedReason,proto3" json:"locked_reason,omitempty"`
+}
+
+func (x *GetServersDetailedByIdResp_Servers) Reset() {
+ *x = GetServersDetailedByIdResp_Servers{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[118]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetServersDetailedByIdResp_Servers) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetServersDetailedByIdResp_Servers) ProtoMessage() {}
+
+func (x *GetServersDetailedByIdResp_Servers) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[118]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetServersDetailedByIdResp_Servers.ProtoReflect.Descriptor instead.
+func (*GetServersDetailedByIdResp_Servers) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{13, 11}
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetAccessIPv4() string {
+ if x != nil {
+ return x.AccessIPv4
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetAccessIPv6() string {
+ if x != nil {
+ return x.AccessIPv6
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetAddresses() *GetServersDetailedByIdResp_Addresses {
+ if x != nil {
+ return x.Addresses
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetConfigDrive() string {
+ if x != nil {
+ return x.ConfigDrive
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetCreated() string {
+ if x != nil {
+ return x.Created
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetFlavor() *GetServersDetailedByIdResp_Flavor {
+ if x != nil {
+ return x.Flavor
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetHostId() string {
+ if x != nil {
+ return x.HostId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetImage() *GetServersDetailedByIdResp_Image {
+ if x != nil {
+ return x.Image
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetKeyName() string {
+ if x != nil {
+ return x.KeyName
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetLinks() []*GetServersDetailedByIdResp_Links1 {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetMetadata() *GetServersDetailedByIdResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_DCFDiskConfig() string {
+ if x != nil {
+ return x.OS_DCFDiskConfig
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_AZAvailabilityZone() string {
+ if x != nil {
+ return x.OS_EXT_AZAvailabilityZone
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRHost() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHost
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRHostname() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHostname
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRHypervisorHostname() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHypervisorHostname
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRInstanceName() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRInstanceName
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRKernelId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRKernelId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRLaunchIndex() uint32 {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRLaunchIndex
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRRamdiskId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRRamdiskId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRReservationId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRReservationId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRRootDeviceName() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRRootDeviceName
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_SRV_ATTRUserData() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRUserData
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_STSPowerState() uint32 {
+ if x != nil {
+ return x.OS_EXT_STSPowerState
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_STSTaskState() string {
+ if x != nil {
+ return x.OS_EXT_STSTaskState
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_EXT_STSVmState() string {
+ if x != nil {
+ return x.OS_EXT_STSVmState
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOsExtendedVolumesVolumesAttached() []*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached {
+ if x != nil {
+ return x.OsExtendedVolumesVolumesAttached
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_SRV_USGLaunchedAt() string {
+ if x != nil {
+ return x.OS_SRV_USGLaunchedAt
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetOS_SRV_USGTerminatedAt() string {
+ if x != nil {
+ return x.OS_SRV_USGTerminatedAt
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetUpdated() string {
+ if x != nil {
+ return x.Updated
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetFault() *GetServersDetailedByIdResp_Fault {
+ if x != nil {
+ return x.Fault
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetProgress() uint32 {
+ if x != nil {
+ return x.Progress
+ }
+ return 0
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetSecurityGroups() []*GetServersDetailedByIdResp_SecurityGroups {
+ if x != nil {
+ return x.SecurityGroups
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetLocked() bool {
+ if x != nil {
+ return x.Locked
+ }
+ return false
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetHostStatus() string {
+ if x != nil {
+ return x.HostStatus
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetTrustedImageCertificates() string {
+ if x != nil {
+ return x.TrustedImageCertificates
+ }
+ return ""
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetServerGroups() []string {
+ if x != nil {
+ return x.ServerGroups
+ }
+ return nil
+}
+
+func (x *GetServersDetailedByIdResp_Servers) GetLockedReason() string {
+ if x != nil {
+ return x.LockedReason
+ }
+ return ""
+}
+
+type UpdateServerReq_Server struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AccessIPv4 string `protobuf:"bytes,1,opt,name=accessIPv4,proto3" json:"accessIPv4,omitempty"`
+ AccessIPv6 string `protobuf:"bytes,2,opt,name=accessIPv6,proto3" json:"accessIPv6,omitempty"`
+ OS_DCFDiskConfig string `protobuf:"bytes,3,opt,name=OS_DCF_diskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_diskConfig,omitempty"`
+ Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
+ Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
+}
+
+func (x *UpdateServerReq_Server) Reset() {
+ *x = UpdateServerReq_Server{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[119]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerReq_Server) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerReq_Server) ProtoMessage() {}
+
+func (x *UpdateServerReq_Server) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[119]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerReq_Server.ProtoReflect.Descriptor instead.
+func (*UpdateServerReq_Server) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{14, 0}
+}
+
+func (x *UpdateServerReq_Server) GetAccessIPv4() string {
+ if x != nil {
+ return x.AccessIPv4
+ }
+ return ""
+}
+
+func (x *UpdateServerReq_Server) GetAccessIPv6() string {
+ if x != nil {
+ return x.AccessIPv6
+ }
+ return ""
+}
+
+func (x *UpdateServerReq_Server) GetOS_DCFDiskConfig() string {
+ if x != nil {
+ return x.OS_DCFDiskConfig
+ }
+ return ""
+}
+
+func (x *UpdateServerReq_Server) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateServerReq_Server) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+type UpdateServerResp_Private struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OS_EXT_IPS_MACMacAddr string `protobuf:"bytes,1,opt,name=OS_EXT_IPS_MAC_mac_addr,json=OS-EXT-IPS-MAC:mac_addr,proto3" json:"OS_EXT_IPS_MAC_mac_addr,omitempty"`
+ OS_EXT_IPSType string `protobuf:"bytes,2,opt,name=OS_EXT_IPS_type,json=OS-EXT-IPS:type,proto3" json:"OS_EXT_IPS_type,omitempty"`
+ Addr string `protobuf:"bytes,3,opt,name=addr,proto3" json:"addr,omitempty"`
+ Version uint32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"`
+}
+
+func (x *UpdateServerResp_Private) Reset() {
+ *x = UpdateServerResp_Private{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[120]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Private) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Private) ProtoMessage() {}
+
+func (x *UpdateServerResp_Private) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[120]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Private.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Private) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 0}
+}
+
+func (x *UpdateServerResp_Private) GetOS_EXT_IPS_MACMacAddr() string {
+ if x != nil {
+ return x.OS_EXT_IPS_MACMacAddr
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Private) GetOS_EXT_IPSType() string {
+ if x != nil {
+ return x.OS_EXT_IPSType
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Private) GetAddr() string {
+ if x != nil {
+ return x.Addr
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Private) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+
+type UpdateServerResp_Addresses struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Private []*UpdateServerResp_Private `protobuf:"bytes,1,rep,name=private,proto3" json:"private,omitempty"`
+}
+
+func (x *UpdateServerResp_Addresses) Reset() {
+ *x = UpdateServerResp_Addresses{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[121]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Addresses) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Addresses) ProtoMessage() {}
+
+func (x *UpdateServerResp_Addresses) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[121]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Addresses.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Addresses) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 1}
+}
+
+func (x *UpdateServerResp_Addresses) GetPrivate() []*UpdateServerResp_Private {
+ if x != nil {
+ return x.Private
+ }
+ return nil
+}
+
+type UpdateServerResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *UpdateServerResp_ExtraSpecs) Reset() {
+ *x = UpdateServerResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[122]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *UpdateServerResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[122]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 2}
+}
+
+type UpdateServerResp_Flavor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Disk uint32 `protobuf:"varint,1,opt,name=disk,proto3" json:"disk,omitempty"`
+ Ephemeral uint32 `protobuf:"varint,2,opt,name=ephemeral,proto3" json:"ephemeral,omitempty"`
+ ExtraSpecs *UpdateServerResp_ExtraSpecs `protobuf:"bytes,3,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"`
+ OriginalName string `protobuf:"bytes,4,opt,name=original_name,json=originalName,proto3" json:"original_name,omitempty"`
+ Ram uint32 `protobuf:"varint,5,opt,name=ram,proto3" json:"ram,omitempty"`
+ Swap uint32 `protobuf:"varint,6,opt,name=swap,proto3" json:"swap,omitempty"`
+ Vcpus uint32 `protobuf:"varint,7,opt,name=vcpus,proto3" json:"vcpus,omitempty"`
+}
+
+func (x *UpdateServerResp_Flavor) Reset() {
+ *x = UpdateServerResp_Flavor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[123]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Flavor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Flavor) ProtoMessage() {}
+
+func (x *UpdateServerResp_Flavor) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[123]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Flavor.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Flavor) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 3}
+}
+
+func (x *UpdateServerResp_Flavor) GetDisk() uint32 {
+ if x != nil {
+ return x.Disk
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Flavor) GetEphemeral() uint32 {
+ if x != nil {
+ return x.Ephemeral
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Flavor) GetExtraSpecs() *UpdateServerResp_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Flavor) GetOriginalName() string {
+ if x != nil {
+ return x.OriginalName
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Flavor) GetRam() uint32 {
+ if x != nil {
+ return x.Ram
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Flavor) GetSwap() uint32 {
+ if x != nil {
+ return x.Swap
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Flavor) GetVcpus() uint32 {
+ if x != nil {
+ return x.Vcpus
+ }
+ return 0
+}
+
+type UpdateServerResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *UpdateServerResp_Links) Reset() {
+ *x = UpdateServerResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[124]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Links) ProtoMessage() {}
+
+func (x *UpdateServerResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[124]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Links.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 4}
+}
+
+func (x *UpdateServerResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type UpdateServerResp_Image struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*UpdateServerResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+}
+
+func (x *UpdateServerResp_Image) Reset() {
+ *x = UpdateServerResp_Image{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[125]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Image) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Image) ProtoMessage() {}
+
+func (x *UpdateServerResp_Image) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[125]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Image.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Image) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 5}
+}
+
+func (x *UpdateServerResp_Image) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Image) GetLinks() []*UpdateServerResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+type UpdateServerResp_Links1 struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *UpdateServerResp_Links1) Reset() {
+ *x = UpdateServerResp_Links1{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[126]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Links1) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Links1) ProtoMessage() {}
+
+func (x *UpdateServerResp_Links1) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[126]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Links1.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Links1) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 6}
+}
+
+func (x *UpdateServerResp_Links1) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Links1) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type UpdateServerResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ My_Server_Name string `protobuf:"bytes,1,opt,name=My_Server_Name,json=My Server Name,proto3" json:"My_Server_Name,omitempty"`
+}
+
+func (x *UpdateServerResp_Metadata) Reset() {
+ *x = UpdateServerResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[127]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Metadata) ProtoMessage() {}
+
+func (x *UpdateServerResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[127]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Metadata.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 7}
+}
+
+func (x *UpdateServerResp_Metadata) GetMy_Server_Name() string {
+ if x != nil {
+ return x.My_Server_Name
+ }
+ return ""
+}
+
+type UpdateServerResp_SecurityGroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *UpdateServerResp_SecurityGroups) Reset() {
+ *x = UpdateServerResp_SecurityGroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[128]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_SecurityGroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_SecurityGroups) ProtoMessage() {}
+
+func (x *UpdateServerResp_SecurityGroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[128]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_SecurityGroups.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_SecurityGroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 8}
+}
+
+func (x *UpdateServerResp_SecurityGroups) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type UpdateServerResp_Server struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OS_DCFDiskConfig string `protobuf:"bytes,1,opt,name=OS_DCF_diskConfig,json=OS-DCF:diskConfig,proto3" json:"OS_DCF_diskConfig,omitempty"`
+ OS_EXT_AZAvailabilityZone string `protobuf:"bytes,2,opt,name=OS_EXT_AZ_availability_zone,json=OS-EXT-AZ:availability_zone,proto3" json:"OS_EXT_AZ_availability_zone,omitempty"`
+ OS_EXT_SRV_ATTRHost string `protobuf:"bytes,3,opt,name=OS_EXT_SRV_ATTR_host,json=OS-EXT-SRV-ATTR:host,proto3" json:"OS_EXT_SRV_ATTR_host,omitempty"`
+ OS_EXT_SRV_ATTRHostname string `protobuf:"bytes,4,opt,name=OS_EXT_SRV_ATTR_hostname,json=OS-EXT-SRV-ATTR:hostname,proto3" json:"OS_EXT_SRV_ATTR_hostname,omitempty"`
+ OS_EXT_SRV_ATTRHypervisorHostname string `protobuf:"bytes,5,opt,name=OS_EXT_SRV_ATTR_hypervisor_hostname,json=OS-EXT-SRV-ATTR:hypervisor_hostname,proto3" json:"OS_EXT_SRV_ATTR_hypervisor_hostname,omitempty"`
+ OS_EXT_SRV_ATTRInstanceName string `protobuf:"bytes,6,opt,name=OS_EXT_SRV_ATTR_instance_name,json=OS-EXT-SRV-ATTR:instance_name,proto3" json:"OS_EXT_SRV_ATTR_instance_name,omitempty"`
+ OS_EXT_SRV_ATTRKernelId string `protobuf:"bytes,7,opt,name=OS_EXT_SRV_ATTR_kernel_id,json=OS-EXT-SRV-ATTR:kernel_id,proto3" json:"OS_EXT_SRV_ATTR_kernel_id,omitempty"`
+ OS_EXT_SRV_ATTRLaunchIndex uint32 `protobuf:"varint,8,opt,name=OS_EXT_SRV_ATTR_launch_index,json=OS-EXT-SRV-ATTR:launch_index,proto3" json:"OS_EXT_SRV_ATTR_launch_index,omitempty"`
+ OS_EXT_SRV_ATTRRamdiskId string `protobuf:"bytes,9,opt,name=OS_EXT_SRV_ATTR_ramdisk_id,json=OS-EXT-SRV-ATTR:ramdisk_id,proto3" json:"OS_EXT_SRV_ATTR_ramdisk_id,omitempty"`
+ OS_EXT_SRV_ATTRReservationId string `protobuf:"bytes,10,opt,name=OS_EXT_SRV_ATTR_reservation_id,json=OS-EXT-SRV-ATTR:reservation_id,proto3" json:"OS_EXT_SRV_ATTR_reservation_id,omitempty"`
+ OS_EXT_SRV_ATTRRootDeviceName string `protobuf:"bytes,11,opt,name=OS_EXT_SRV_ATTR_root_device_name,json=OS-EXT-SRV-ATTR:root_device_name,proto3" json:"OS_EXT_SRV_ATTR_root_device_name,omitempty"`
+ OS_EXT_SRV_ATTRUserData string `protobuf:"bytes,12,opt,name=OS_EXT_SRV_ATTR_user_data,json=OS-EXT-SRV-ATTR:user_data,proto3" json:"OS_EXT_SRV_ATTR_user_data,omitempty"`
+ OS_EXT_STSPowerState uint32 `protobuf:"varint,13,opt,name=OS_EXT_STS_power_state,json=OS-EXT-STS:power_state,proto3" json:"OS_EXT_STS_power_state,omitempty"`
+ OS_EXT_STSTaskState string `protobuf:"bytes,14,opt,name=OS_EXT_STS_task_state,json=OS-EXT-STS:task_state,proto3" json:"OS_EXT_STS_task_state,omitempty"`
+ OS_EXT_STSVmState string `protobuf:"bytes,15,opt,name=OS_EXT_STS_vm_state,json=OS-EXT-STS:vm_state,proto3" json:"OS_EXT_STS_vm_state,omitempty"`
+ OS_SRV_USGLaunchedAt string `protobuf:"bytes,16,opt,name=OS_SRV_USG_launched_at,json=OS-SRV-USG:launched_at,proto3" json:"OS_SRV_USG_launched_at,omitempty"`
+ OS_SRV_USGTerminatedAt string `protobuf:"bytes,17,opt,name=OS_SRV_USG_terminated_at,json=OS-SRV-USG:terminated_at,proto3" json:"OS_SRV_USG_terminated_at,omitempty"`
+ AccessIPv4 string `protobuf:"bytes,18,opt,name=accessIPv4,proto3" json:"accessIPv4,omitempty"`
+ AccessIPv6 string `protobuf:"bytes,19,opt,name=accessIPv6,proto3" json:"accessIPv6,omitempty"`
+ Addresses *UpdateServerResp_Addresses `protobuf:"bytes,20,opt,name=addresses,proto3" json:"addresses,omitempty"`
+ ConfigDrive string `protobuf:"bytes,21,opt,name=config_drive,json=configDrive,proto3" json:"config_drive,omitempty"`
+ Created string `protobuf:"bytes,22,opt,name=created,proto3" json:"created,omitempty"`
+ Description string `protobuf:"bytes,23,opt,name=description,proto3" json:"description,omitempty"`
+ Flavor *UpdateServerResp_Flavor `protobuf:"bytes,24,opt,name=flavor,proto3" json:"flavor,omitempty"`
+ HostId string `protobuf:"bytes,25,opt,name=hostId,proto3" json:"hostId,omitempty"`
+ HostStatus string `protobuf:"bytes,26,opt,name=host_status,json=hostStatus,proto3" json:"host_status,omitempty"`
+ Id string `protobuf:"bytes,27,opt,name=id,proto3" json:"id,omitempty"`
+ Image *UpdateServerResp_Image `protobuf:"bytes,28,opt,name=image,proto3" json:"image,omitempty"`
+ KeyName string `protobuf:"bytes,29,opt,name=key_name,json=keyName,proto3" json:"key_name,omitempty"`
+ Links []*UpdateServerResp_Links1 `protobuf:"bytes,30,rep,name=links,proto3" json:"links,omitempty"`
+ Locked bool `protobuf:"varint,31,opt,name=locked,proto3" json:"locked,omitempty"`
+ LockedReason string `protobuf:"bytes,32,opt,name=locked_reason,json=lockedReason,proto3" json:"locked_reason,omitempty"`
+ Metadata *UpdateServerResp_Metadata `protobuf:"bytes,33,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ Name string `protobuf:"bytes,34,opt,name=name,proto3" json:"name,omitempty"`
+ OsExtendedVolumesVolumesAttached []string `protobuf:"bytes,35,rep,name=os_extended_volumes_volumes_attached,json=os-extended-volumes:volumes_attached,proto3" json:"os_extended_volumes_volumes_attached,omitempty"`
+ Progress uint32 `protobuf:"varint,36,opt,name=progress,proto3" json:"progress,omitempty"`
+ SecurityGroups []*UpdateServerResp_SecurityGroups `protobuf:"bytes,37,rep,name=security_groups,json=securityGroups,proto3" json:"security_groups,omitempty"`
+ ServerGroups []string `protobuf:"bytes,38,rep,name=server_groups,json=serverGroups,proto3" json:"server_groups,omitempty"`
+ Status string `protobuf:"bytes,39,opt,name=status,proto3" json:"status,omitempty"`
+ Tags []string `protobuf:"bytes,40,rep,name=tags,proto3" json:"tags,omitempty"`
+ TenantId string `protobuf:"bytes,41,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
+ TrustedImageCertificates string `protobuf:"bytes,42,opt,name=trusted_image_certificates,json=trustedImageCertificates,proto3" json:"trusted_image_certificates,omitempty"`
+ Updated string `protobuf:"bytes,43,opt,name=updated,proto3" json:"updated,omitempty"`
+ UserId string `protobuf:"bytes,44,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+}
+
+func (x *UpdateServerResp_Server) Reset() {
+ *x = UpdateServerResp_Server{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[129]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateServerResp_Server) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateServerResp_Server) ProtoMessage() {}
+
+func (x *UpdateServerResp_Server) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[129]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateServerResp_Server.ProtoReflect.Descriptor instead.
+func (*UpdateServerResp_Server) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{15, 9}
+}
+
+func (x *UpdateServerResp_Server) GetOS_DCFDiskConfig() string {
+ if x != nil {
+ return x.OS_DCFDiskConfig
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_AZAvailabilityZone() string {
+ if x != nil {
+ return x.OS_EXT_AZAvailabilityZone
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRHost() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHost
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRHostname() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHostname
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRHypervisorHostname() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRHypervisorHostname
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRInstanceName() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRInstanceName
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRKernelId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRKernelId
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRLaunchIndex() uint32 {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRLaunchIndex
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRRamdiskId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRRamdiskId
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRReservationId() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRReservationId
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRRootDeviceName() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRRootDeviceName
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_SRV_ATTRUserData() string {
+ if x != nil {
+ return x.OS_EXT_SRV_ATTRUserData
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_STSPowerState() uint32 {
+ if x != nil {
+ return x.OS_EXT_STSPowerState
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_STSTaskState() string {
+ if x != nil {
+ return x.OS_EXT_STSTaskState
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_EXT_STSVmState() string {
+ if x != nil {
+ return x.OS_EXT_STSVmState
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_SRV_USGLaunchedAt() string {
+ if x != nil {
+ return x.OS_SRV_USGLaunchedAt
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOS_SRV_USGTerminatedAt() string {
+ if x != nil {
+ return x.OS_SRV_USGTerminatedAt
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetAccessIPv4() string {
+ if x != nil {
+ return x.AccessIPv4
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetAccessIPv6() string {
+ if x != nil {
+ return x.AccessIPv6
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetAddresses() *UpdateServerResp_Addresses {
+ if x != nil {
+ return x.Addresses
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetConfigDrive() string {
+ if x != nil {
+ return x.ConfigDrive
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetCreated() string {
+ if x != nil {
+ return x.Created
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetFlavor() *UpdateServerResp_Flavor {
+ if x != nil {
+ return x.Flavor
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetHostId() string {
+ if x != nil {
+ return x.HostId
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetHostStatus() string {
+ if x != nil {
+ return x.HostStatus
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetImage() *UpdateServerResp_Image {
+ if x != nil {
+ return x.Image
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetKeyName() string {
+ if x != nil {
+ return x.KeyName
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetLinks() []*UpdateServerResp_Links1 {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetLocked() bool {
+ if x != nil {
+ return x.Locked
+ }
+ return false
+}
+
+func (x *UpdateServerResp_Server) GetLockedReason() string {
+ if x != nil {
+ return x.LockedReason
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetMetadata() *UpdateServerResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetOsExtendedVolumesVolumesAttached() []string {
+ if x != nil {
+ return x.OsExtendedVolumesVolumesAttached
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetProgress() uint32 {
+ if x != nil {
+ return x.Progress
+ }
+ return 0
+}
+
+func (x *UpdateServerResp_Server) GetSecurityGroups() []*UpdateServerResp_SecurityGroups {
+ if x != nil {
+ return x.SecurityGroups
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetServerGroups() []string {
+ if x != nil {
+ return x.ServerGroups
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetTags() []string {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *UpdateServerResp_Server) GetTenantId() string {
+ if x != nil {
+ return x.TenantId
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetTrustedImageCertificates() string {
+ if x != nil {
+ return x.TrustedImageCertificates
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetUpdated() string {
+ if x != nil {
+ return x.Updated
+ }
+ return ""
+}
+
+func (x *UpdateServerResp_Server) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+type StartServerReq_OsStart struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OsStart string `protobuf:"bytes,1,opt,name=os_start,json=os-start,proto3" json:"os_start,omitempty"`
+}
+
+func (x *StartServerReq_OsStart) Reset() {
+ *x = StartServerReq_OsStart{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[130]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StartServerReq_OsStart) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StartServerReq_OsStart) ProtoMessage() {}
+
+func (x *StartServerReq_OsStart) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[130]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StartServerReq_OsStart.ProtoReflect.Descriptor instead.
+func (*StartServerReq_OsStart) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{16, 0}
+}
+
+func (x *StartServerReq_OsStart) GetOsStart() string {
+ if x != nil {
+ return x.OsStart
+ }
+ return ""
+}
+
+type StopServerReq_OsStop struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OsStop string `protobuf:"bytes,1,opt,name=os_stop,json=os-stop,proto3" json:"os_stop,omitempty"`
+}
+
+func (x *StopServerReq_OsStop) Reset() {
+ *x = StopServerReq_OsStop{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[131]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StopServerReq_OsStop) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StopServerReq_OsStop) ProtoMessage() {}
+
+func (x *StopServerReq_OsStop) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[131]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StopServerReq_OsStop.ProtoReflect.Descriptor instead.
+func (*StopServerReq_OsStop) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{18, 0}
+}
+
+func (x *StopServerReq_OsStop) GetOsStop() string {
+ if x != nil {
+ return x.OsStop
+ }
+ return ""
+}
+
+type RebootServerReq_Reboot struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
+}
+
+func (x *RebootServerReq_Reboot) Reset() {
+ *x = RebootServerReq_Reboot{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[132]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RebootServerReq_Reboot) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RebootServerReq_Reboot) ProtoMessage() {}
+
+func (x *RebootServerReq_Reboot) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[132]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RebootServerReq_Reboot.ProtoReflect.Descriptor instead.
+func (*RebootServerReq_Reboot) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{20, 0}
+}
+
+func (x *RebootServerReq_Reboot) GetType() string {
+ if x != nil {
+ return x.Type
+ }
+ return ""
+}
+
+type PauseServerReq_OsPause struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Pause string `protobuf:"bytes,1,opt,name=pause,proto3" json:"pause,omitempty"`
+}
+
+func (x *PauseServerReq_OsPause) Reset() {
+ *x = PauseServerReq_OsPause{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[133]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PauseServerReq_OsPause) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PauseServerReq_OsPause) ProtoMessage() {}
+
+func (x *PauseServerReq_OsPause) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[133]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PauseServerReq_OsPause.ProtoReflect.Descriptor instead.
+func (*PauseServerReq_OsPause) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{22, 0}
+}
+
+func (x *PauseServerReq_OsPause) GetPause() string {
+ if x != nil {
+ return x.Pause
+ }
+ return ""
+}
+
+type ListFlavorsDetailResp_Flavor struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+ Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
+ Disk int32 `protobuf:"varint,4,opt,name=disk,proto3" json:"disk,omitempty"`
+ Ephemeral uint32 `protobuf:"varint,5,opt,name=ephemeral,proto3" json:"ephemeral,omitempty"`
+ ExtraSpecs *ListFlavorsDetailResp_ExtraSpecs `protobuf:"bytes,6,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"`
+ OriginalName string `protobuf:"bytes,7,opt,name=original_name,json=originalName,proto3" json:"original_name,omitempty"`
+ Ram int32 `protobuf:"varint,8,opt,name=ram,proto3" json:"ram,omitempty"`
+ Swap int32 `protobuf:"varint,9,opt,name=swap,proto3" json:"swap,omitempty"`
+ Vcpus int32 `protobuf:"varint,10,opt,name=vcpus,proto3" json:"vcpus,omitempty"`
+ Links []*ListFlavorsDetailResp_Links `protobuf:"bytes,11,rep,name=links,proto3" json:"links,omitempty"`
+ OS_FLV_EXT_DATAEphemeral string `protobuf:"bytes,12,opt,name=OS_FLV_EXT_DATA_ephemeral,json=OS-FLV-EXT-DATA:ephemeral,proto3" json:"OS_FLV_EXT_DATA_ephemeral,omitempty"`
+ OS_FLV_DISABLEDDisabled string `protobuf:"bytes,13,opt,name=OS_FLV_DISABLED_disabled,json=OS-FLV-DISABLED:disabled,proto3" json:"OS_FLV_DISABLED_disabled,omitempty"`
+ RxtxFactor float32 `protobuf:"fixed32,15,opt,name=rxtx_factor,json=rxtxFactor,proto3" json:"rxtx_factor,omitempty"`
+ OsFlavorAccessIsPublic bool `protobuf:"varint,16,opt,name=os_flavor_access_is_public,json=os-flavor-access:is_public,proto3" json:"os_flavor_access_is_public,omitempty"`
+}
+
+func (x *ListFlavorsDetailResp_Flavor) Reset() {
+ *x = ListFlavorsDetailResp_Flavor{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[134]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListFlavorsDetailResp_Flavor) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListFlavorsDetailResp_Flavor) ProtoMessage() {}
+
+func (x *ListFlavorsDetailResp_Flavor) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[134]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListFlavorsDetailResp_Flavor.ProtoReflect.Descriptor instead.
+func (*ListFlavorsDetailResp_Flavor) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{25, 0}
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetDisk() int32 {
+ if x != nil {
+ return x.Disk
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetEphemeral() uint32 {
+ if x != nil {
+ return x.Ephemeral
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetExtraSpecs() *ListFlavorsDetailResp_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetOriginalName() string {
+ if x != nil {
+ return x.OriginalName
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetRam() int32 {
+ if x != nil {
+ return x.Ram
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetSwap() int32 {
+ if x != nil {
+ return x.Swap
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetVcpus() int32 {
+ if x != nil {
+ return x.Vcpus
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetLinks() []*ListFlavorsDetailResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetOS_FLV_EXT_DATAEphemeral() string {
+ if x != nil {
+ return x.OS_FLV_EXT_DATAEphemeral
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetOS_FLV_DISABLEDDisabled() string {
+ if x != nil {
+ return x.OS_FLV_DISABLEDDisabled
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetRxtxFactor() float32 {
+ if x != nil {
+ return x.RxtxFactor
+ }
+ return 0
+}
+
+func (x *ListFlavorsDetailResp_Flavor) GetOsFlavorAccessIsPublic() bool {
+ if x != nil {
+ return x.OsFlavorAccessIsPublic
+ }
+ return false
+}
+
+type ListFlavorsDetailResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListFlavorsDetailResp_ExtraSpecs) Reset() {
+ *x = ListFlavorsDetailResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[135]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListFlavorsDetailResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListFlavorsDetailResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *ListFlavorsDetailResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[135]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListFlavorsDetailResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*ListFlavorsDetailResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{25, 1}
+}
+
+type ListFlavorsDetailResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListFlavorsDetailResp_Links) Reset() {
+ *x = ListFlavorsDetailResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[136]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListFlavorsDetailResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListFlavorsDetailResp_Links) ProtoMessage() {}
+
+func (x *ListFlavorsDetailResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[136]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListFlavorsDetailResp_Links.ProtoReflect.Descriptor instead.
+func (*ListFlavorsDetailResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{25, 2}
+}
+
+func (x *ListFlavorsDetailResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListFlavorsDetailResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListNodesResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListNodesResp_Links) Reset() {
+ *x = ListNodesResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[137]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNodesResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNodesResp_Links) ProtoMessage() {}
+
+func (x *ListNodesResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[137]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNodesResp_Links.ProtoReflect.Descriptor instead.
+func (*ListNodesResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{46, 0}
+}
+
+func (x *ListNodesResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListNodesResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListNodesResp_Nodes struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ InstanceUuid string `protobuf:"bytes,1,opt,name=instance_uuid,json=instanceUuid,proto3" json:"instance_uuid,omitempty"`
+ Links []*ListNodesResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+ Maintenance bool `protobuf:"varint,3,opt,name=maintenance,proto3" json:"maintenance,omitempty"`
+ Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
+ PowerState string `protobuf:"bytes,5,opt,name=power_state,json=powerState,proto3" json:"power_state,omitempty"`
+ ProvisionState string `protobuf:"bytes,6,opt,name=provision_state,json=provisionState,proto3" json:"provision_state,omitempty"`
+ Uuid string `protobuf:"bytes,7,opt,name=uuid,proto3" json:"uuid,omitempty"`
+}
+
+func (x *ListNodesResp_Nodes) Reset() {
+ *x = ListNodesResp_Nodes{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[138]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListNodesResp_Nodes) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListNodesResp_Nodes) ProtoMessage() {}
+
+func (x *ListNodesResp_Nodes) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[138]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListNodesResp_Nodes.ProtoReflect.Descriptor instead.
+func (*ListNodesResp_Nodes) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{46, 1}
+}
+
+func (x *ListNodesResp_Nodes) GetInstanceUuid() string {
+ if x != nil {
+ return x.InstanceUuid
+ }
+ return ""
+}
+
+func (x *ListNodesResp_Nodes) GetLinks() []*ListNodesResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListNodesResp_Nodes) GetMaintenance() bool {
+ if x != nil {
+ return x.Maintenance
+ }
+ return false
+}
+
+func (x *ListNodesResp_Nodes) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListNodesResp_Nodes) GetPowerState() string {
+ if x != nil {
+ return x.PowerState
+ }
+ return ""
+}
+
+func (x *ListNodesResp_Nodes) GetProvisionState() string {
+ if x != nil {
+ return x.ProvisionState
+ }
+ return ""
+}
+
+func (x *ListNodesResp_Nodes) GetUuid() string {
+ if x != nil {
+ return x.Uuid
+ }
+ return ""
+}
+
+type CreateNodeReq_DriverInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IpmiUsername string `protobuf:"bytes,1,opt,name=ipmi_username,json=ipmiUsername,proto3" json:"ipmi_username,omitempty"`
+ IpmiPassword string `protobuf:"bytes,2,opt,name=ipmi_password,json=ipmiPassword,proto3" json:"ipmi_password,omitempty"`
+}
+
+func (x *CreateNodeReq_DriverInfo) Reset() {
+ *x = CreateNodeReq_DriverInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[139]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeReq_DriverInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeReq_DriverInfo) ProtoMessage() {}
+
+func (x *CreateNodeReq_DriverInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[139]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeReq_DriverInfo.ProtoReflect.Descriptor instead.
+func (*CreateNodeReq_DriverInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{47, 0}
+}
+
+func (x *CreateNodeReq_DriverInfo) GetIpmiUsername() string {
+ if x != nil {
+ return x.IpmiUsername
+ }
+ return ""
+}
+
+func (x *CreateNodeReq_DriverInfo) GetIpmiPassword() string {
+ if x != nil {
+ return x.IpmiPassword
+ }
+ return ""
+}
+
+type CreateNodeReq_Properties struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeReq_Properties) Reset() {
+ *x = CreateNodeReq_Properties{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[140]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeReq_Properties) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeReq_Properties) ProtoMessage() {}
+
+func (x *CreateNodeReq_Properties) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[140]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeReq_Properties.ProtoReflect.Descriptor instead.
+func (*CreateNodeReq_Properties) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{47, 1}
+}
+
+type CreateNodeReq_InstanceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeReq_InstanceInfo) Reset() {
+ *x = CreateNodeReq_InstanceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[141]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeReq_InstanceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeReq_InstanceInfo) ProtoMessage() {}
+
+func (x *CreateNodeReq_InstanceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[141]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeReq_InstanceInfo.ProtoReflect.Descriptor instead.
+func (*CreateNodeReq_InstanceInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{47, 2}
+}
+
+type CreateNodeReq_NetworkData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeReq_NetworkData) Reset() {
+ *x = CreateNodeReq_NetworkData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[142]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeReq_NetworkData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeReq_NetworkData) ProtoMessage() {}
+
+func (x *CreateNodeReq_NetworkData) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[142]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeReq_NetworkData.ProtoReflect.Descriptor instead.
+func (*CreateNodeReq_NetworkData) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{47, 3}
+}
+
+type CreateNodeResp_CleanStep struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_CleanStep) Reset() {
+ *x = CreateNodeResp_CleanStep{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[143]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_CleanStep) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_CleanStep) ProtoMessage() {}
+
+func (x *CreateNodeResp_CleanStep) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[143]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_CleanStep.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_CleanStep) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 0}
+}
+
+type CreateNodeResp_DeployStep struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_DeployStep) Reset() {
+ *x = CreateNodeResp_DeployStep{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[144]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_DeployStep) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_DeployStep) ProtoMessage() {}
+
+func (x *CreateNodeResp_DeployStep) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[144]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_DeployStep.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_DeployStep) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 1}
+}
+
+type CreateNodeResp_DriverInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IpmiPassword string `protobuf:"bytes,1,opt,name=ipmi_password,json=ipmiPassword,proto3" json:"ipmi_password,omitempty"`
+ IpmiUsername string `protobuf:"bytes,2,opt,name=ipmi_username,json=ipmiUsername,proto3" json:"ipmi_username,omitempty"`
+}
+
+func (x *CreateNodeResp_DriverInfo) Reset() {
+ *x = CreateNodeResp_DriverInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[145]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_DriverInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_DriverInfo) ProtoMessage() {}
+
+func (x *CreateNodeResp_DriverInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[145]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_DriverInfo.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_DriverInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 2}
+}
+
+func (x *CreateNodeResp_DriverInfo) GetIpmiPassword() string {
+ if x != nil {
+ return x.IpmiPassword
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_DriverInfo) GetIpmiUsername() string {
+ if x != nil {
+ return x.IpmiUsername
+ }
+ return ""
+}
+
+type CreateNodeResp_DriverInternalInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_DriverInternalInfo) Reset() {
+ *x = CreateNodeResp_DriverInternalInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[146]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_DriverInternalInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_DriverInternalInfo) ProtoMessage() {}
+
+func (x *CreateNodeResp_DriverInternalInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[146]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_DriverInternalInfo.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_DriverInternalInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 3}
+}
+
+type CreateNodeResp_Extra struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_Extra) Reset() {
+ *x = CreateNodeResp_Extra{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[147]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Extra) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Extra) ProtoMessage() {}
+
+func (x *CreateNodeResp_Extra) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[147]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Extra.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Extra) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 4}
+}
+
+type CreateNodeResp_InstanceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_InstanceInfo) Reset() {
+ *x = CreateNodeResp_InstanceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[148]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_InstanceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_InstanceInfo) ProtoMessage() {}
+
+func (x *CreateNodeResp_InstanceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[148]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_InstanceInfo.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_InstanceInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 5}
+}
+
+type CreateNodeResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateNodeResp_Links) Reset() {
+ *x = CreateNodeResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[149]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Links) ProtoMessage() {}
+
+func (x *CreateNodeResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[149]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Links.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 6}
+}
+
+func (x *CreateNodeResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateNodeResp_NetworkData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_NetworkData) Reset() {
+ *x = CreateNodeResp_NetworkData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[150]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_NetworkData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_NetworkData) ProtoMessage() {}
+
+func (x *CreateNodeResp_NetworkData) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[150]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_NetworkData.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_NetworkData) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 7}
+}
+
+type CreateNodeResp_Portgroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateNodeResp_Portgroups) Reset() {
+ *x = CreateNodeResp_Portgroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[151]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Portgroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Portgroups) ProtoMessage() {}
+
+func (x *CreateNodeResp_Portgroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[151]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Portgroups.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Portgroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 8}
+}
+
+func (x *CreateNodeResp_Portgroups) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_Portgroups) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateNodeResp_Ports struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateNodeResp_Ports) Reset() {
+ *x = CreateNodeResp_Ports{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[152]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Ports) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Ports) ProtoMessage() {}
+
+func (x *CreateNodeResp_Ports) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[152]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Ports.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Ports) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 9}
+}
+
+func (x *CreateNodeResp_Ports) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_Ports) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateNodeResp_Properties struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_Properties) Reset() {
+ *x = CreateNodeResp_Properties{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[153]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Properties) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Properties) ProtoMessage() {}
+
+func (x *CreateNodeResp_Properties) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[153]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Properties.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Properties) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 10}
+}
+
+type CreateNodeResp_RaidConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_RaidConfig) Reset() {
+ *x = CreateNodeResp_RaidConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[154]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_RaidConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_RaidConfig) ProtoMessage() {}
+
+func (x *CreateNodeResp_RaidConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[154]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_RaidConfig.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_RaidConfig) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 11}
+}
+
+type CreateNodeResp_States struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateNodeResp_States) Reset() {
+ *x = CreateNodeResp_States{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[155]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_States) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_States) ProtoMessage() {}
+
+func (x *CreateNodeResp_States) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[155]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_States.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_States) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 12}
+}
+
+func (x *CreateNodeResp_States) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_States) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateNodeResp_TargetRaidConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateNodeResp_TargetRaidConfig) Reset() {
+ *x = CreateNodeResp_TargetRaidConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[156]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_TargetRaidConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_TargetRaidConfig) ProtoMessage() {}
+
+func (x *CreateNodeResp_TargetRaidConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[156]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_TargetRaidConfig.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_TargetRaidConfig) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 13}
+}
+
+type CreateNodeResp_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateNodeResp_Volume) Reset() {
+ *x = CreateNodeResp_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[157]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateNodeResp_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateNodeResp_Volume) ProtoMessage() {}
+
+func (x *CreateNodeResp_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[157]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateNodeResp_Volume.ProtoReflect.Descriptor instead.
+func (*CreateNodeResp_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{48, 14}
+}
+
+func (x *CreateNodeResp_Volume) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateNodeResp_Volume) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsReq_Fields struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsReq_Fields) Reset() {
+ *x = ShowNodeDetailsReq_Fields{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[158]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsReq_Fields) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsReq_Fields) ProtoMessage() {}
+
+func (x *ShowNodeDetailsReq_Fields) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[158]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsReq_Fields.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsReq_Fields) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{51, 0}
+}
+
+type ShowNodeDetailsResp_CleanStep struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_CleanStep) Reset() {
+ *x = ShowNodeDetailsResp_CleanStep{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[159]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_CleanStep) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_CleanStep) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_CleanStep) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[159]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_CleanStep.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_CleanStep) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 0}
+}
+
+type ShowNodeDetailsResp_DeployStep struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_DeployStep) Reset() {
+ *x = ShowNodeDetailsResp_DeployStep{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[160]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_DeployStep) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_DeployStep) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_DeployStep) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[160]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_DeployStep.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_DeployStep) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 1}
+}
+
+type ShowNodeDetailsResp_DriverInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ IpmiPassword string `protobuf:"bytes,1,opt,name=ipmi_password,json=ipmiPassword,proto3" json:"ipmi_password,omitempty"`
+ IpmiUsername string `protobuf:"bytes,2,opt,name=ipmi_username,json=ipmiUsername,proto3" json:"ipmi_username,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_DriverInfo) Reset() {
+ *x = ShowNodeDetailsResp_DriverInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[161]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_DriverInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_DriverInfo) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_DriverInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[161]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_DriverInfo.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_DriverInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 2}
+}
+
+func (x *ShowNodeDetailsResp_DriverInfo) GetIpmiPassword() string {
+ if x != nil {
+ return x.IpmiPassword
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_DriverInfo) GetIpmiUsername() string {
+ if x != nil {
+ return x.IpmiUsername
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_DriverInternalInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CleanSteps string `protobuf:"bytes,1,opt,name=clean_steps,json=cleanSteps,proto3" json:"clean_steps,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_DriverInternalInfo) Reset() {
+ *x = ShowNodeDetailsResp_DriverInternalInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[162]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_DriverInternalInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_DriverInternalInfo) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_DriverInternalInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[162]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_DriverInternalInfo.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_DriverInternalInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 3}
+}
+
+func (x *ShowNodeDetailsResp_DriverInternalInfo) GetCleanSteps() string {
+ if x != nil {
+ return x.CleanSteps
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_Extra struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_Extra) Reset() {
+ *x = ShowNodeDetailsResp_Extra{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[163]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Extra) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Extra) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Extra) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[163]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Extra.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Extra) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 4}
+}
+
+type ShowNodeDetailsResp_InstanceInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_InstanceInfo) Reset() {
+ *x = ShowNodeDetailsResp_InstanceInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[164]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_InstanceInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_InstanceInfo) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_InstanceInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[164]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_InstanceInfo.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_InstanceInfo) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 5}
+}
+
+type ShowNodeDetailsResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_Links) Reset() {
+ *x = ShowNodeDetailsResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[165]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Links) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[165]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Links.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 6}
+}
+
+func (x *ShowNodeDetailsResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_NetworkData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_NetworkData) Reset() {
+ *x = ShowNodeDetailsResp_NetworkData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[166]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_NetworkData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_NetworkData) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_NetworkData) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[166]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_NetworkData.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_NetworkData) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 7}
+}
+
+type ShowNodeDetailsResp_Portgroups struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_Portgroups) Reset() {
+ *x = ShowNodeDetailsResp_Portgroups{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[167]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Portgroups) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Portgroups) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Portgroups) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[167]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Portgroups.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Portgroups) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 8}
+}
+
+func (x *ShowNodeDetailsResp_Portgroups) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_Portgroups) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_Ports struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_Ports) Reset() {
+ *x = ShowNodeDetailsResp_Ports{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[168]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Ports) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Ports) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Ports) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[168]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Ports.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Ports) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 9}
+}
+
+func (x *ShowNodeDetailsResp_Ports) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_Ports) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_Properties struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_Properties) Reset() {
+ *x = ShowNodeDetailsResp_Properties{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[169]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Properties) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Properties) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Properties) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[169]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Properties.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Properties) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 10}
+}
+
+type ShowNodeDetailsResp_RaidConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_RaidConfig) Reset() {
+ *x = ShowNodeDetailsResp_RaidConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[170]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_RaidConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_RaidConfig) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_RaidConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[170]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_RaidConfig.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_RaidConfig) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 11}
+}
+
+type ShowNodeDetailsResp_States struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_States) Reset() {
+ *x = ShowNodeDetailsResp_States{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[171]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_States) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_States) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_States) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[171]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_States.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_States) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 12}
+}
+
+func (x *ShowNodeDetailsResp_States) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_States) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_TargetRaidConfig struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_TargetRaidConfig) Reset() {
+ *x = ShowNodeDetailsResp_TargetRaidConfig{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[172]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_TargetRaidConfig) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_TargetRaidConfig) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_TargetRaidConfig) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[172]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_TargetRaidConfig.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_TargetRaidConfig) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 13}
+}
+
+type ShowNodeDetailsResp_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ShowNodeDetailsResp_Volume) Reset() {
+ *x = ShowNodeDetailsResp_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[173]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Volume) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[173]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Volume.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 14}
+}
+
+func (x *ShowNodeDetailsResp_Volume) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ShowNodeDetailsResp_Volume) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ShowNodeDetailsResp_Traits struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ShowNodeDetailsResp_Traits) Reset() {
+ *x = ShowNodeDetailsResp_Traits{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[174]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ShowNodeDetailsResp_Traits) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ShowNodeDetailsResp_Traits) ProtoMessage() {}
+
+func (x *ShowNodeDetailsResp_Traits) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[174]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ShowNodeDetailsResp_Traits.ProtoReflect.Descriptor instead.
+func (*ShowNodeDetailsResp_Traits) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{52, 15}
+}
+
+type CreateImageResp_Tags struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateImageResp_Tags) Reset() {
+ *x = CreateImageResp_Tags{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[175]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateImageResp_Tags) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateImageResp_Tags) ProtoMessage() {}
+
+func (x *CreateImageResp_Tags) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[175]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateImageResp_Tags.ProtoReflect.Descriptor instead.
+func (*CreateImageResp_Tags) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{55, 0}
+}
+
+type CreateImageResp_Locations struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateImageResp_Locations) Reset() {
+ *x = CreateImageResp_Locations{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[176]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateImageResp_Locations) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateImageResp_Locations) ProtoMessage() {}
+
+func (x *CreateImageResp_Locations) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[176]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateImageResp_Locations.ProtoReflect.Descriptor instead.
+func (*CreateImageResp_Locations) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{55, 1}
+}
+
+type ListImagesResp_Images struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+ Tags []*ListImagesResp_Tags `protobuf:"bytes,3,rep,name=tags,proto3" json:"tags,omitempty"`
+ ContainerFormat string `protobuf:"bytes,4,opt,name=container_format,json=containerFormat,proto3" json:"container_format,omitempty"`
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ DiskFormat string `protobuf:"bytes,6,opt,name=disk_format,json=diskFormat,proto3" json:"disk_format,omitempty"`
+ UpdatedAt string `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ Visibility string `protobuf:"bytes,8,opt,name=visibility,proto3" json:"visibility,omitempty"`
+ Self string `protobuf:"bytes,9,opt,name=self,proto3" json:"self,omitempty"`
+ MinDisk uint32 `protobuf:"varint,10,opt,name=min_disk,json=minDisk,proto3" json:"min_disk,omitempty"`
+ Protected bool `protobuf:"varint,11,opt,name=protected,proto3" json:"protected,omitempty"`
+ Id string `protobuf:"bytes,12,opt,name=id,proto3" json:"id,omitempty"`
+ File string `protobuf:"bytes,13,opt,name=file,proto3" json:"file,omitempty"`
+ Checksum string `protobuf:"bytes,14,opt,name=checksum,proto3" json:"checksum,omitempty"`
+ OsHashAlgo string `protobuf:"bytes,15,opt,name=os_hash_algo,json=osHashAlgo,proto3" json:"os_hash_algo,omitempty"`
+ OsHashValue string `protobuf:"bytes,16,opt,name=os_hash_value,json=osHashValue,proto3" json:"os_hash_value,omitempty"`
+ OsHidden bool `protobuf:"varint,17,opt,name=os_hidden,json=osHidden,proto3" json:"os_hidden,omitempty"`
+ Owner string `protobuf:"bytes,18,opt,name=owner,proto3" json:"owner,omitempty"`
+ Size uint32 `protobuf:"varint,19,opt,name=size,proto3" json:"size,omitempty"`
+ MinRam uint32 `protobuf:"varint,20,opt,name=min_ram,json=minRam,proto3" json:"min_ram,omitempty"`
+ Schema string `protobuf:"bytes,21,opt,name=schema,proto3" json:"schema,omitempty"`
+ VirtualSize int32 `protobuf:"varint,22,opt,name=virtual_size,json=virtualSize,proto3" json:"virtual_size,omitempty"`
+}
+
+func (x *ListImagesResp_Images) Reset() {
+ *x = ListImagesResp_Images{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[177]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListImagesResp_Images) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListImagesResp_Images) ProtoMessage() {}
+
+func (x *ListImagesResp_Images) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[177]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListImagesResp_Images.ProtoReflect.Descriptor instead.
+func (*ListImagesResp_Images) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{57, 0}
+}
+
+func (x *ListImagesResp_Images) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetTags() []*ListImagesResp_Tags {
+ if x != nil {
+ return x.Tags
+ }
+ return nil
+}
+
+func (x *ListImagesResp_Images) GetContainerFormat() string {
+ if x != nil {
+ return x.ContainerFormat
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetDiskFormat() string {
+ if x != nil {
+ return x.DiskFormat
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetVisibility() string {
+ if x != nil {
+ return x.Visibility
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetSelf() string {
+ if x != nil {
+ return x.Self
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetMinDisk() uint32 {
+ if x != nil {
+ return x.MinDisk
+ }
+ return 0
+}
+
+func (x *ListImagesResp_Images) GetProtected() bool {
+ if x != nil {
+ return x.Protected
+ }
+ return false
+}
+
+func (x *ListImagesResp_Images) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetFile() string {
+ if x != nil {
+ return x.File
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetChecksum() string {
+ if x != nil {
+ return x.Checksum
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetOsHashAlgo() string {
+ if x != nil {
+ return x.OsHashAlgo
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetOsHashValue() string {
+ if x != nil {
+ return x.OsHashValue
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetOsHidden() bool {
+ if x != nil {
+ return x.OsHidden
+ }
+ return false
+}
+
+func (x *ListImagesResp_Images) GetOwner() string {
+ if x != nil {
+ return x.Owner
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetSize() uint32 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *ListImagesResp_Images) GetMinRam() uint32 {
+ if x != nil {
+ return x.MinRam
+ }
+ return 0
+}
+
+func (x *ListImagesResp_Images) GetSchema() string {
+ if x != nil {
+ return x.Schema
+ }
+ return ""
+}
+
+func (x *ListImagesResp_Images) GetVirtualSize() int32 {
+ if x != nil {
+ return x.VirtualSize
+ }
+ return 0
+}
+
+type ListImagesResp_Tags struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListImagesResp_Tags) Reset() {
+ *x = ListImagesResp_Tags{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[178]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListImagesResp_Tags) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListImagesResp_Tags) ProtoMessage() {}
+
+func (x *ListImagesResp_Tags) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[178]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListImagesResp_Tags.ProtoReflect.Descriptor instead.
+func (*ListImagesResp_Tags) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{57, 1}
+}
+
+type ListVolumesResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListVolumesResp_Links) Reset() {
+ *x = ListVolumesResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[179]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesResp_Links) ProtoMessage() {}
+
+func (x *ListVolumesResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[179]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesResp_Links.ProtoReflect.Descriptor instead.
+func (*ListVolumesResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{63, 0}
+}
+
+func (x *ListVolumesResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListVolumesResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListVolumesResp_Volumes struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*ListVolumesResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *ListVolumesResp_Volumes) Reset() {
+ *x = ListVolumesResp_Volumes{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[180]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesResp_Volumes) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesResp_Volumes) ProtoMessage() {}
+
+func (x *ListVolumesResp_Volumes) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[180]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesResp_Volumes.ProtoReflect.Descriptor instead.
+func (*ListVolumesResp_Volumes) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{63, 1}
+}
+
+func (x *ListVolumesResp_Volumes) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListVolumesResp_Volumes) GetLinks() []*ListVolumesResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListVolumesResp_Volumes) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type ListVolumesDetailResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *ListVolumesDetailResp_Links) Reset() {
+ *x = ListVolumesDetailResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[181]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailResp_Links) ProtoMessage() {}
+
+func (x *ListVolumesDetailResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[181]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailResp_Links.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{65, 0}
+}
+
+func (x *ListVolumesDetailResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type ListVolumesDetailResp_Attachments struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ AttachmentId string `protobuf:"bytes,2,opt,name=attachment_id,json=attachmentId,proto3" json:"attachment_id,omitempty"`
+ AttachedAt string `protobuf:"bytes,3,opt,name=attached_at,json=attachedAt,proto3" json:"attached_at,omitempty"`
+ HostName string `protobuf:"bytes,4,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"`
+ VolumeId string `protobuf:"bytes,5,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
+ Device string `protobuf:"bytes,6,opt,name=device,proto3" json:"device,omitempty"`
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *ListVolumesDetailResp_Attachments) Reset() {
+ *x = ListVolumesDetailResp_Attachments{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[182]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailResp_Attachments) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailResp_Attachments) ProtoMessage() {}
+
+func (x *ListVolumesDetailResp_Attachments) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[182]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailResp_Attachments.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailResp_Attachments) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{65, 1}
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetAttachmentId() string {
+ if x != nil {
+ return x.AttachmentId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetAttachedAt() string {
+ if x != nil {
+ return x.AttachedAt
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetHostName() string {
+ if x != nil {
+ return x.HostName
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetVolumeId() string {
+ if x != nil {
+ return x.VolumeId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetDevice() string {
+ if x != nil {
+ return x.Device
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_Attachments) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+type ListVolumesDetailResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *ListVolumesDetailResp_Metadata) Reset() {
+ *x = ListVolumesDetailResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[183]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailResp_Metadata) ProtoMessage() {}
+
+func (x *ListVolumesDetailResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[183]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailResp_Metadata.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{65, 2}
+}
+
+type ListVolumesDetailResp_VolumeDetail struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*ListVolumesDetailResp_Links `protobuf:"bytes,2,rep,name=links,proto3" json:"links,omitempty"`
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
+ MigrationStatus string `protobuf:"bytes,4,opt,name=migration_status,json=migrationStatus,proto3" json:"migration_status,omitempty"`
+ Attachments []*ListVolumesDetailResp_Attachments `protobuf:"bytes,5,rep,name=attachments,proto3" json:"attachments,omitempty"`
+ AvailabilityZone string `protobuf:"bytes,6,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"`
+ OsVolHostAttrHost string `protobuf:"bytes,7,opt,name=os_vol_host_attr_host,json=os-vol-host-attr:host,proto3" json:"os_vol_host_attr_host,omitempty"`
+ Encrypted bool `protobuf:"varint,8,opt,name=encrypted,proto3" json:"encrypted,omitempty"`
+ EncryptionKeyId string `protobuf:"bytes,9,opt,name=encryption_key_id,json=encryptionKeyId,proto3" json:"encryption_key_id,omitempty"`
+ UpdatedAt string `protobuf:"bytes,10,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ ReplicationStatus string `protobuf:"bytes,11,opt,name=replication_status,json=replicationStatus,proto3" json:"replication_status,omitempty"`
+ SnapshotId string `protobuf:"bytes,12,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
+ Size int32 `protobuf:"varint,13,opt,name=size,proto3" json:"size,omitempty"`
+ UserId string `protobuf:"bytes,14,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ OsVolTenantAttrTenantId string `protobuf:"bytes,15,opt,name=os_vol_tenant_attr_tenant_id,json=os-vol-tenant-attr:tenant_id,proto3" json:"os_vol_tenant_attr_tenant_id,omitempty"`
+ OsVolMigStatusAttrMigstat string `protobuf:"bytes,16,opt,name=os_vol_mig_status_attr_migstat,json=os-vol-mig-status-attr:migstat,proto3" json:"os_vol_mig_status_attr_migstat,omitempty"`
+ Metadata *ListVolumesDetailResp_Metadata `protobuf:"bytes,17,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ Status string `protobuf:"bytes,18,opt,name=status,proto3" json:"status,omitempty"`
+ Description string `protobuf:"bytes,19,opt,name=description,proto3" json:"description,omitempty"`
+ Multiattach bool `protobuf:"varint,20,opt,name=multiattach,proto3" json:"multiattach,omitempty"`
+ SourceVolid string `protobuf:"bytes,21,opt,name=source_volid,json=sourceVolid,proto3" json:"source_volid,omitempty"`
+ ConsistencygroupId string `protobuf:"bytes,22,opt,name=consistencygroup_id,json=consistencygroupId,proto3" json:"consistencygroup_id,omitempty"`
+ OsVolMigStatusAttrNameId string `protobuf:"bytes,23,opt,name=os_vol_mig_status_attr_name_id,json=os-vol-mig-status-attr:name_id,proto3" json:"os_vol_mig_status_attr_name_id,omitempty"`
+ Bootable string `protobuf:"bytes,24,opt,name=bootable,proto3" json:"bootable,omitempty"`
+ CreatedAt string `protobuf:"bytes,25,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ VolumeType string `protobuf:"bytes,26,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"`
+ VolumeTypeId string `protobuf:"bytes,27,opt,name=volume_type_id,json=volumeTypeId,proto3" json:"volume_type_id,omitempty"`
+ GroupId string `protobuf:"bytes,28,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
+ ProviderId string `protobuf:"bytes,29,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
+ ServiceUuid string `protobuf:"bytes,30,opt,name=service_uuid,json=serviceUuid,proto3" json:"service_uuid,omitempty"`
+ SharedTargets bool `protobuf:"varint,31,opt,name=shared_targets,json=sharedTargets,proto3" json:"shared_targets,omitempty"`
+ ClusterName string `protobuf:"bytes,32,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
+ ConsumesQuota bool `protobuf:"varint,33,opt,name=consumes_quota,json=consumesQuota,proto3" json:"consumes_quota,omitempty"`
+ Count int32 `protobuf:"varint,34,opt,name=count,proto3" json:"count,omitempty"`
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) Reset() {
+ *x = ListVolumesDetailResp_VolumeDetail{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[184]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumesDetailResp_VolumeDetail) ProtoMessage() {}
+
+func (x *ListVolumesDetailResp_VolumeDetail) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[184]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumesDetailResp_VolumeDetail.ProtoReflect.Descriptor instead.
+func (*ListVolumesDetailResp_VolumeDetail) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{65, 3}
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetLinks() []*ListVolumesDetailResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetMigrationStatus() string {
+ if x != nil {
+ return x.MigrationStatus
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetAttachments() []*ListVolumesDetailResp_Attachments {
+ if x != nil {
+ return x.Attachments
+ }
+ return nil
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetAvailabilityZone() string {
+ if x != nil {
+ return x.AvailabilityZone
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetOsVolHostAttrHost() string {
+ if x != nil {
+ return x.OsVolHostAttrHost
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetEncrypted() bool {
+ if x != nil {
+ return x.Encrypted
+ }
+ return false
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetEncryptionKeyId() string {
+ if x != nil {
+ return x.EncryptionKeyId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetReplicationStatus() string {
+ if x != nil {
+ return x.ReplicationStatus
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetSnapshotId() string {
+ if x != nil {
+ return x.SnapshotId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetSize() int32 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetOsVolTenantAttrTenantId() string {
+ if x != nil {
+ return x.OsVolTenantAttrTenantId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetOsVolMigStatusAttrMigstat() string {
+ if x != nil {
+ return x.OsVolMigStatusAttrMigstat
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetMetadata() *ListVolumesDetailResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetMultiattach() bool {
+ if x != nil {
+ return x.Multiattach
+ }
+ return false
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetSourceVolid() string {
+ if x != nil {
+ return x.SourceVolid
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetConsistencygroupId() string {
+ if x != nil {
+ return x.ConsistencygroupId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetOsVolMigStatusAttrNameId() string {
+ if x != nil {
+ return x.OsVolMigStatusAttrNameId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetBootable() string {
+ if x != nil {
+ return x.Bootable
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetVolumeType() string {
+ if x != nil {
+ return x.VolumeType
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetVolumeTypeId() string {
+ if x != nil {
+ return x.VolumeTypeId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetGroupId() string {
+ if x != nil {
+ return x.GroupId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetProviderId() string {
+ if x != nil {
+ return x.ProviderId
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetServiceUuid() string {
+ if x != nil {
+ return x.ServiceUuid
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetSharedTargets() bool {
+ if x != nil {
+ return x.SharedTargets
+ }
+ return false
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetClusterName() string {
+ if x != nil {
+ return x.ClusterName
+ }
+ return ""
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetConsumesQuota() bool {
+ if x != nil {
+ return x.ConsumesQuota
+ }
+ return false
+}
+
+func (x *ListVolumesDetailResp_VolumeDetail) GetCount() int32 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+
+// Os_ch_hnt_scheduler_hints OS_SCH_HNT_scheduler_hints = 3 [json_name="Os-sch-hnt:scheduler_hints"];
+type CreateVolumeReq_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateVolumeReq_Metadata) Reset() {
+ *x = CreateVolumeReq_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[185]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeReq_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeReq_Metadata) ProtoMessage() {}
+
+func (x *CreateVolumeReq_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[185]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeReq_Metadata.ProtoReflect.Descriptor instead.
+func (*CreateVolumeReq_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{66, 0}
+}
+
+type CreateVolumeReq_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Size int32 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` // @gotags: copier:"Size"
+ AvailabilityZone string `protobuf:"bytes,2,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"` // @gotags: copier:"AvailabilityZone"
+ Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name"
+ VolumeType string `protobuf:"bytes,4,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"` // @gotags: copier:"VolumeType"
+ Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // @gotags: copier:"Description"
+ Metadata *CreateVolumeReq_Metadata `protobuf:"bytes,11,opt,name=metadata,proto3" json:"metadata,omitempty"`
+}
+
+func (x *CreateVolumeReq_Volume) Reset() {
+ *x = CreateVolumeReq_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[186]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeReq_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeReq_Volume) ProtoMessage() {}
+
+func (x *CreateVolumeReq_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[186]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeReq_Volume.ProtoReflect.Descriptor instead.
+func (*CreateVolumeReq_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{66, 1}
+}
+
+func (x *CreateVolumeReq_Volume) GetSize() int32 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *CreateVolumeReq_Volume) GetAvailabilityZone() string {
+ if x != nil {
+ return x.AvailabilityZone
+ }
+ return ""
+}
+
+func (x *CreateVolumeReq_Volume) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateVolumeReq_Volume) GetVolumeType() string {
+ if x != nil {
+ return x.VolumeType
+ }
+ return ""
+}
+
+func (x *CreateVolumeReq_Volume) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateVolumeReq_Volume) GetMetadata() *CreateVolumeReq_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+type CreateVolumeResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *CreateVolumeResp_Links) Reset() {
+ *x = CreateVolumeResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[187]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeResp_Links) ProtoMessage() {}
+
+func (x *CreateVolumeResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[187]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeResp_Links.ProtoReflect.Descriptor instead.
+func (*CreateVolumeResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{67, 0}
+}
+
+func (x *CreateVolumeResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type CreateVolumeResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *CreateVolumeResp_Metadata) Reset() {
+ *x = CreateVolumeResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[188]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeResp_Metadata) ProtoMessage() {}
+
+func (x *CreateVolumeResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[188]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeResp_Metadata.ProtoReflect.Descriptor instead.
+func (*CreateVolumeResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{67, 1}
+}
+
+type CreateVolumeResp_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Attachments []*CreateVolumeResp_Attachments `protobuf:"bytes,1,rep,name=attachments,proto3" json:"attachments,omitempty"`
+ AvailabilityZone string `protobuf:"bytes,2,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"`
+ Bootable string `protobuf:"bytes,3,opt,name=bootable,proto3" json:"bootable,omitempty"`
+ ConsistencygroupId string `protobuf:"bytes,4,opt,name=consistencygroup_id,json=consistencygroupId,proto3" json:"consistencygroup_id,omitempty"`
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
+ Encrypted bool `protobuf:"varint,7,opt,name=encrypted,proto3" json:"encrypted,omitempty"`
+ Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*CreateVolumeResp_Links `protobuf:"bytes,9,rep,name=links,proto3" json:"links,omitempty"`
+ Metadata *CreateVolumeResp_Metadata `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ MigrationStatus string `protobuf:"bytes,11,opt,name=migration_status,json=migrationStatus,proto3" json:"migration_status,omitempty"`
+ Multiattach bool `protobuf:"varint,12,opt,name=multiattach,proto3" json:"multiattach,omitempty"`
+ Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"`
+ ReplicationStatus string `protobuf:"bytes,14,opt,name=replication_status,json=replicationStatus,proto3" json:"replication_status,omitempty"`
+ Size uint32 `protobuf:"varint,15,opt,name=size,proto3" json:"size,omitempty"`
+ SnapshotId string `protobuf:"bytes,16,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
+ SourceVolid string `protobuf:"bytes,17,opt,name=source_volid,json=sourceVolid,proto3" json:"source_volid,omitempty"`
+ Status string `protobuf:"bytes,18,opt,name=status,proto3" json:"status,omitempty"`
+ UpdatedAt string `protobuf:"bytes,19,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ UserId string `protobuf:"bytes,20,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ VolumeType string `protobuf:"bytes,21,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"`
+ GroupId string `protobuf:"bytes,22,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
+ ProviderId string `protobuf:"bytes,23,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
+ ServiceUuid string `protobuf:"bytes,24,opt,name=service_uuid,json=serviceUuid,proto3" json:"service_uuid,omitempty"`
+ SharedTargets bool `protobuf:"varint,25,opt,name=shared_targets,json=sharedTargets,proto3" json:"shared_targets,omitempty"`
+ ClusterName string `protobuf:"bytes,26,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
+ VolumeTypeId string `protobuf:"bytes,27,opt,name=volume_type_id,json=volumeTypeId,proto3" json:"volume_type_id,omitempty"`
+ ConsumesQuota bool `protobuf:"varint,28,opt,name=consumes_quota,json=consumesQuota,proto3" json:"consumes_quota,omitempty"`
+}
+
+func (x *CreateVolumeResp_Volume) Reset() {
+ *x = CreateVolumeResp_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[189]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeResp_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeResp_Volume) ProtoMessage() {}
+
+func (x *CreateVolumeResp_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[189]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeResp_Volume.ProtoReflect.Descriptor instead.
+func (*CreateVolumeResp_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{67, 2}
+}
+
+func (x *CreateVolumeResp_Volume) GetAttachments() []*CreateVolumeResp_Attachments {
+ if x != nil {
+ return x.Attachments
+ }
+ return nil
+}
+
+func (x *CreateVolumeResp_Volume) GetAvailabilityZone() string {
+ if x != nil {
+ return x.AvailabilityZone
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetBootable() string {
+ if x != nil {
+ return x.Bootable
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetConsistencygroupId() string {
+ if x != nil {
+ return x.ConsistencygroupId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetEncrypted() bool {
+ if x != nil {
+ return x.Encrypted
+ }
+ return false
+}
+
+func (x *CreateVolumeResp_Volume) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetLinks() []*CreateVolumeResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *CreateVolumeResp_Volume) GetMetadata() *CreateVolumeResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *CreateVolumeResp_Volume) GetMigrationStatus() string {
+ if x != nil {
+ return x.MigrationStatus
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetMultiattach() bool {
+ if x != nil {
+ return x.Multiattach
+ }
+ return false
+}
+
+func (x *CreateVolumeResp_Volume) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetReplicationStatus() string {
+ if x != nil {
+ return x.ReplicationStatus
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetSize() uint32 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *CreateVolumeResp_Volume) GetSnapshotId() string {
+ if x != nil {
+ return x.SnapshotId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetSourceVolid() string {
+ if x != nil {
+ return x.SourceVolid
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetVolumeType() string {
+ if x != nil {
+ return x.VolumeType
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetGroupId() string {
+ if x != nil {
+ return x.GroupId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetProviderId() string {
+ if x != nil {
+ return x.ProviderId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetServiceUuid() string {
+ if x != nil {
+ return x.ServiceUuid
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetSharedTargets() bool {
+ if x != nil {
+ return x.SharedTargets
+ }
+ return false
+}
+
+func (x *CreateVolumeResp_Volume) GetClusterName() string {
+ if x != nil {
+ return x.ClusterName
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetVolumeTypeId() string {
+ if x != nil {
+ return x.VolumeTypeId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Volume) GetConsumesQuota() bool {
+ if x != nil {
+ return x.ConsumesQuota
+ }
+ return false
+}
+
+type CreateVolumeResp_Attachments struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ AttachmentId string `protobuf:"bytes,2,opt,name=attachment_id,json=attachmentId,proto3" json:"attachment_id,omitempty"`
+ AttachedAt string `protobuf:"bytes,3,opt,name=attached_at,json=attachedAt,proto3" json:"attached_at,omitempty"`
+ HostName string `protobuf:"bytes,4,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"`
+ VolumeId string `protobuf:"bytes,5,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
+ Device string `protobuf:"bytes,6,opt,name=device,proto3" json:"device,omitempty"`
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *CreateVolumeResp_Attachments) Reset() {
+ *x = CreateVolumeResp_Attachments{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[190]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateVolumeResp_Attachments) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateVolumeResp_Attachments) ProtoMessage() {}
+
+func (x *CreateVolumeResp_Attachments) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[190]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateVolumeResp_Attachments.ProtoReflect.Descriptor instead.
+func (*CreateVolumeResp_Attachments) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{67, 3}
+}
+
+func (x *CreateVolumeResp_Attachments) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetAttachmentId() string {
+ if x != nil {
+ return x.AttachmentId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetAttachedAt() string {
+ if x != nil {
+ return x.AttachedAt
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetHostName() string {
+ if x != nil {
+ return x.HostName
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetVolumeId() string {
+ if x != nil {
+ return x.VolumeId
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetDevice() string {
+ if x != nil {
+ return x.Device
+ }
+ return ""
+}
+
+func (x *CreateVolumeResp_Attachments) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+type UpdateVolumeReq_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *UpdateVolumeReq_Metadata) Reset() {
+ *x = UpdateVolumeReq_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[191]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeReq_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeReq_Metadata) ProtoMessage() {}
+
+func (x *UpdateVolumeReq_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[191]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeReq_Metadata.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeReq_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{70, 0}
+}
+
+func (x *UpdateVolumeReq_Metadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type UpdateVolumeReq_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+ Metadata *UpdateVolumeReq_Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
+}
+
+func (x *UpdateVolumeReq_Volume) Reset() {
+ *x = UpdateVolumeReq_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[192]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeReq_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeReq_Volume) ProtoMessage() {}
+
+func (x *UpdateVolumeReq_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[192]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeReq_Volume.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeReq_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{70, 1}
+}
+
+func (x *UpdateVolumeReq_Volume) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateVolumeReq_Volume) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *UpdateVolumeReq_Volume) GetMetadata() *UpdateVolumeReq_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+type UpdateVolumeResp_Links struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Href string `protobuf:"bytes,1,opt,name=href,proto3" json:"href,omitempty"`
+ Rel string `protobuf:"bytes,2,opt,name=rel,proto3" json:"rel,omitempty"`
+}
+
+func (x *UpdateVolumeResp_Links) Reset() {
+ *x = UpdateVolumeResp_Links{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[193]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeResp_Links) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeResp_Links) ProtoMessage() {}
+
+func (x *UpdateVolumeResp_Links) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[193]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeResp_Links.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeResp_Links) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{71, 0}
+}
+
+func (x *UpdateVolumeResp_Links) GetHref() string {
+ if x != nil {
+ return x.Href
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Links) GetRel() string {
+ if x != nil {
+ return x.Rel
+ }
+ return ""
+}
+
+type UpdateVolumeResp_Metadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *UpdateVolumeResp_Metadata) Reset() {
+ *x = UpdateVolumeResp_Metadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[194]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeResp_Metadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeResp_Metadata) ProtoMessage() {}
+
+func (x *UpdateVolumeResp_Metadata) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[194]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeResp_Metadata.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeResp_Metadata) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{71, 1}
+}
+
+func (x *UpdateVolumeResp_Metadata) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+type UpdateVolumeResp_Volume struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Attachments []*UpdateVolumeResp_Attachments `protobuf:"bytes,1,rep,name=attachments,proto3" json:"attachments,omitempty"`
+ AvailabilityZone string `protobuf:"bytes,2,opt,name=availability_zone,json=availabilityZone,proto3" json:"availability_zone,omitempty"`
+ Bootable string `protobuf:"bytes,3,opt,name=bootable,proto3" json:"bootable,omitempty"`
+ ConsistencygroupId string `protobuf:"bytes,4,opt,name=consistencygroup_id,json=consistencygroupId,proto3" json:"consistencygroup_id,omitempty"`
+ CreatedAt string `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
+ Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
+ Encrypted bool `protobuf:"varint,7,opt,name=encrypted,proto3" json:"encrypted,omitempty"`
+ Id string `protobuf:"bytes,8,opt,name=id,proto3" json:"id,omitempty"`
+ Links []*UpdateVolumeResp_Links `protobuf:"bytes,9,rep,name=links,proto3" json:"links,omitempty"`
+ Metadata *UpdateVolumeResp_Metadata `protobuf:"bytes,10,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ MigrationStatus string `protobuf:"bytes,11,opt,name=migration_status,json=migrationStatus,proto3" json:"migration_status,omitempty"`
+ Multiattach bool `protobuf:"varint,12,opt,name=multiattach,proto3" json:"multiattach,omitempty"`
+ Name string `protobuf:"bytes,13,opt,name=name,proto3" json:"name,omitempty"`
+ ReplicationStatus string `protobuf:"bytes,14,opt,name=replication_status,json=replicationStatus,proto3" json:"replication_status,omitempty"`
+ Size uint32 `protobuf:"varint,15,opt,name=size,proto3" json:"size,omitempty"`
+ SnapshotId string `protobuf:"bytes,16,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"`
+ SourceVolid string `protobuf:"bytes,17,opt,name=source_volid,json=sourceVolid,proto3" json:"source_volid,omitempty"`
+ Status string `protobuf:"bytes,18,opt,name=status,proto3" json:"status,omitempty"`
+ UpdatedAt string `protobuf:"bytes,19,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
+ UserId string `protobuf:"bytes,20,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
+ VolumeType string `protobuf:"bytes,21,opt,name=volume_type,json=volumeType,proto3" json:"volume_type,omitempty"`
+ GroupId string `protobuf:"bytes,22,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
+ ProviderId string `protobuf:"bytes,23,opt,name=provider_id,json=providerId,proto3" json:"provider_id,omitempty"`
+ ServiceUuid string `protobuf:"bytes,24,opt,name=service_uuid,json=serviceUuid,proto3" json:"service_uuid,omitempty"`
+ SharedTargets bool `protobuf:"varint,25,opt,name=shared_targets,json=sharedTargets,proto3" json:"shared_targets,omitempty"`
+ ClusterName string `protobuf:"bytes,26,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
+ VolumeTypeId string `protobuf:"bytes,27,opt,name=volume_type_id,json=volumeTypeId,proto3" json:"volume_type_id,omitempty"`
+ ConsumesQuota bool `protobuf:"varint,28,opt,name=consumes_quota,json=consumesQuota,proto3" json:"consumes_quota,omitempty"`
+}
+
+func (x *UpdateVolumeResp_Volume) Reset() {
+ *x = UpdateVolumeResp_Volume{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[195]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeResp_Volume) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeResp_Volume) ProtoMessage() {}
+
+func (x *UpdateVolumeResp_Volume) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[195]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeResp_Volume.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeResp_Volume) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{71, 2}
+}
+
+func (x *UpdateVolumeResp_Volume) GetAttachments() []*UpdateVolumeResp_Attachments {
+ if x != nil {
+ return x.Attachments
+ }
+ return nil
+}
+
+func (x *UpdateVolumeResp_Volume) GetAvailabilityZone() string {
+ if x != nil {
+ return x.AvailabilityZone
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetBootable() string {
+ if x != nil {
+ return x.Bootable
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetConsistencygroupId() string {
+ if x != nil {
+ return x.ConsistencygroupId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetCreatedAt() string {
+ if x != nil {
+ return x.CreatedAt
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetEncrypted() bool {
+ if x != nil {
+ return x.Encrypted
+ }
+ return false
+}
+
+func (x *UpdateVolumeResp_Volume) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetLinks() []*UpdateVolumeResp_Links {
+ if x != nil {
+ return x.Links
+ }
+ return nil
+}
+
+func (x *UpdateVolumeResp_Volume) GetMetadata() *UpdateVolumeResp_Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *UpdateVolumeResp_Volume) GetMigrationStatus() string {
+ if x != nil {
+ return x.MigrationStatus
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetMultiattach() bool {
+ if x != nil {
+ return x.Multiattach
+ }
+ return false
+}
+
+func (x *UpdateVolumeResp_Volume) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetReplicationStatus() string {
+ if x != nil {
+ return x.ReplicationStatus
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetSize() uint32 {
+ if x != nil {
+ return x.Size
+ }
+ return 0
+}
+
+func (x *UpdateVolumeResp_Volume) GetSnapshotId() string {
+ if x != nil {
+ return x.SnapshotId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetSourceVolid() string {
+ if x != nil {
+ return x.SourceVolid
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetStatus() string {
+ if x != nil {
+ return x.Status
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetUpdatedAt() string {
+ if x != nil {
+ return x.UpdatedAt
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetUserId() string {
+ if x != nil {
+ return x.UserId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetVolumeType() string {
+ if x != nil {
+ return x.VolumeType
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetGroupId() string {
+ if x != nil {
+ return x.GroupId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetProviderId() string {
+ if x != nil {
+ return x.ProviderId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetServiceUuid() string {
+ if x != nil {
+ return x.ServiceUuid
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetSharedTargets() bool {
+ if x != nil {
+ return x.SharedTargets
+ }
+ return false
+}
+
+func (x *UpdateVolumeResp_Volume) GetClusterName() string {
+ if x != nil {
+ return x.ClusterName
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetVolumeTypeId() string {
+ if x != nil {
+ return x.VolumeTypeId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Volume) GetConsumesQuota() bool {
+ if x != nil {
+ return x.ConsumesQuota
+ }
+ return false
+}
+
+type UpdateVolumeResp_Attachments struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ServerId string `protobuf:"bytes,1,opt,name=server_id,json=serverId,proto3" json:"server_id,omitempty"`
+ AttachmentId string `protobuf:"bytes,2,opt,name=attachment_id,json=attachmentId,proto3" json:"attachment_id,omitempty"`
+ AttachedAt string `protobuf:"bytes,3,opt,name=attached_at,json=attachedAt,proto3" json:"attached_at,omitempty"`
+ HostName string `protobuf:"bytes,4,opt,name=host_name,json=hostName,proto3" json:"host_name,omitempty"`
+ VolumeId string `protobuf:"bytes,5,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"`
+ Device string `protobuf:"bytes,6,opt,name=device,proto3" json:"device,omitempty"`
+ Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
+}
+
+func (x *UpdateVolumeResp_Attachments) Reset() {
+ *x = UpdateVolumeResp_Attachments{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[196]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UpdateVolumeResp_Attachments) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateVolumeResp_Attachments) ProtoMessage() {}
+
+func (x *UpdateVolumeResp_Attachments) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[196]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateVolumeResp_Attachments.ProtoReflect.Descriptor instead.
+func (*UpdateVolumeResp_Attachments) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{71, 3}
+}
+
+func (x *UpdateVolumeResp_Attachments) GetServerId() string {
+ if x != nil {
+ return x.ServerId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetAttachmentId() string {
+ if x != nil {
+ return x.AttachmentId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetAttachedAt() string {
+ if x != nil {
+ return x.AttachedAt
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetHostName() string {
+ if x != nil {
+ return x.HostName
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetVolumeId() string {
+ if x != nil {
+ return x.VolumeId
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetDevice() string {
+ if x != nil {
+ return x.Device
+ }
+ return ""
+}
+
+func (x *UpdateVolumeResp_Attachments) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+type ListVolumeTypesResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Capabilities string `protobuf:"bytes,1,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
+}
+
+func (x *ListVolumeTypesResp_ExtraSpecs) Reset() {
+ *x = ListVolumeTypesResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[197]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumeTypesResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumeTypesResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *ListVolumeTypesResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[197]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumeTypesResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*ListVolumeTypesResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{73, 0}
+}
+
+func (x *ListVolumeTypesResp_ExtraSpecs) GetCapabilities() string {
+ if x != nil {
+ return x.Capabilities
+ }
+ return ""
+}
+
+type ListVolumeTypesResp_VolumeTypes struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
+ ExtraSpecs *ListVolumeTypesResp_ExtraSpecs `protobuf:"bytes,2,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"`
+ Id string `protobuf:"bytes,3,opt,name=id,proto3" json:"id,omitempty"`
+ IsPublic bool `protobuf:"varint,4,opt,name=is_public,json=isPublic,proto3" json:"is_public,omitempty"` // @gotags: copier:"IsPublic"
+ Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"`
+ OsVolumeTypeAccessIsPublic bool `protobuf:"varint,6,opt,name=os_volume_type_access_is_public,json=os-volume-type-access:is_public,proto3" json:"os_volume_type_access_is_public,omitempty"` // @gotags: copier:"OsVolumeTypeAccessIsPublic"
+ QosSpecsId string `protobuf:"bytes,7,opt,name=qos_specs_id,json=qosSpecsId,proto3" json:"qos_specs_id,omitempty"`
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) Reset() {
+ *x = ListVolumeTypesResp_VolumeTypes{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[198]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListVolumeTypesResp_VolumeTypes) ProtoMessage() {}
+
+func (x *ListVolumeTypesResp_VolumeTypes) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[198]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListVolumeTypesResp_VolumeTypes.ProtoReflect.Descriptor instead.
+func (*ListVolumeTypesResp_VolumeTypes) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{73, 1}
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetExtraSpecs() *ListVolumeTypesResp_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetIsPublic() bool {
+ if x != nil {
+ return x.IsPublic
+ }
+ return false
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetOsVolumeTypeAccessIsPublic() bool {
+ if x != nil {
+ return x.OsVolumeTypeAccessIsPublic
+ }
+ return false
+}
+
+func (x *ListVolumeTypesResp_VolumeTypes) GetQosSpecsId() string {
+ if x != nil {
+ return x.QosSpecsId
+ }
+ return ""
+}
+
+type CreateTypeReq_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Capabilities string `protobuf:"bytes,1,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
+}
+
+func (x *CreateTypeReq_ExtraSpecs) Reset() {
+ *x = CreateTypeReq_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[199]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeReq_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeReq_ExtraSpecs) ProtoMessage() {}
+
+func (x *CreateTypeReq_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[199]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeReq_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*CreateTypeReq_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{74, 0}
+}
+
+func (x *CreateTypeReq_ExtraSpecs) GetCapabilities() string {
+ if x != nil {
+ return x.Capabilities
+ }
+ return ""
+}
+
+type CreateTypeReq_VolumeType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+ OsVolumeTypeAccessIsPublic bool `protobuf:"varint,3,opt,name=os_volume_type_access_is_public,json=os-volume-type-access:is_public,proto3" json:"os_volume_type_access_is_public,omitempty"`
+ ExtraSpecs *CreateTypeReq_ExtraSpecs `protobuf:"bytes,4,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"`
+}
+
+func (x *CreateTypeReq_VolumeType) Reset() {
+ *x = CreateTypeReq_VolumeType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[200]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeReq_VolumeType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeReq_VolumeType) ProtoMessage() {}
+
+func (x *CreateTypeReq_VolumeType) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[200]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeReq_VolumeType.ProtoReflect.Descriptor instead.
+func (*CreateTypeReq_VolumeType) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{74, 1}
+}
+
+func (x *CreateTypeReq_VolumeType) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateTypeReq_VolumeType) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+func (x *CreateTypeReq_VolumeType) GetOsVolumeTypeAccessIsPublic() bool {
+ if x != nil {
+ return x.OsVolumeTypeAccessIsPublic
+ }
+ return false
+}
+
+func (x *CreateTypeReq_VolumeType) GetExtraSpecs() *CreateTypeReq_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+type CreateTypeResp_ExtraSpecs struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Capabilities string `protobuf:"bytes,1,opt,name=capabilities,proto3" json:"capabilities,omitempty"` // @gotags: copier:"Capabilities"
+}
+
+func (x *CreateTypeResp_ExtraSpecs) Reset() {
+ *x = CreateTypeResp_ExtraSpecs{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[201]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeResp_ExtraSpecs) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeResp_ExtraSpecs) ProtoMessage() {}
+
+func (x *CreateTypeResp_ExtraSpecs) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[201]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeResp_ExtraSpecs.ProtoReflect.Descriptor instead.
+func (*CreateTypeResp_ExtraSpecs) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{75, 0}
+}
+
+func (x *CreateTypeResp_ExtraSpecs) GetCapabilities() string {
+ if x != nil {
+ return x.Capabilities
+ }
+ return ""
+}
+
+type CreateTypeResp_VolumeType struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"Name"
+ ExtraSpecs *CreateTypeResp_ExtraSpecs `protobuf:"bytes,2,opt,name=extra_specs,json=extraSpecs,proto3" json:"extra_specs,omitempty"` // @gotags: copier:"ExtraSpecs"
+ OsVolumeTypeAccessIsPublic bool `protobuf:"varint,3,opt,name=os_volume_type_access_is_public,json=os-volume-type-access:is_public,proto3" json:"os_volume_type_access_is_public,omitempty"` // @gotags: copier:"OsVolumeTypeAccessIsPublic"
+ IsPublic bool `protobuf:"varint,4,opt,name=is_public,json=isPublic,proto3" json:"is_public,omitempty"` // @gotags: copier:"IsPublic"
+ Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"Id"
+ Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` // @gotags: copier:"Description"
+}
+
+func (x *CreateTypeResp_VolumeType) Reset() {
+ *x = CreateTypeResp_VolumeType{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_pcm_openstack_proto_msgTypes[202]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateTypeResp_VolumeType) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateTypeResp_VolumeType) ProtoMessage() {}
+
+func (x *CreateTypeResp_VolumeType) ProtoReflect() protoreflect.Message {
+ mi := &file_pcm_openstack_proto_msgTypes[202]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateTypeResp_VolumeType.ProtoReflect.Descriptor instead.
+func (*CreateTypeResp_VolumeType) Descriptor() ([]byte, []int) {
+ return file_pcm_openstack_proto_rawDescGZIP(), []int{75, 1}
+}
+
+func (x *CreateTypeResp_VolumeType) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+func (x *CreateTypeResp_VolumeType) GetExtraSpecs() *CreateTypeResp_ExtraSpecs {
+ if x != nil {
+ return x.ExtraSpecs
+ }
+ return nil
+}
+
+func (x *CreateTypeResp_VolumeType) GetOsVolumeTypeAccessIsPublic() bool {
+ if x != nil {
+ return x.OsVolumeTypeAccessIsPublic
+ }
+ return false
+}
+
+func (x *CreateTypeResp_VolumeType) GetIsPublic() bool {
+ if x != nil {
+ return x.IsPublic
+ }
+ return false
+}
+
+func (x *CreateTypeResp_VolumeType) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *CreateTypeResp_VolumeType) GetDescription() string {
+ if x != nil {
+ return x.Description
+ }
+ return ""
+}
+
+var File_pcm_openstack_proto protoreflect.FileDescriptor
+
+var file_pcm_openstack_proto_rawDesc = []byte{
+ 0x0a, 0x13, 0x70, 0x63, 0x6d, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69,
+ 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x22, 0x9b, 0x09, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43,
+ 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x3e, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74,
+ 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
+ 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x4d, 0x73, 0x67, 0x1a, 0x06, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xec, 0x06, 0x0a, 0x08,
+ 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x0d, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x26,
+ 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x72, 0x73, 0x6f,
+ 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c,
+ 0x6d, 0x61, 0x78, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61,
+ 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69,
+ 0x74, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x61,
+ 0x78, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x69, 0x7a, 0x65,
+ 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x70,
+ 0x61, 0x69, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x54,
+ 0x6f, 0x74, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x70, 0x61, 0x69, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x15,
+ 0x6d, 0x61, 0x78, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70,
+ 0x52, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6d, 0x61, 0x78,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x75, 0x6c,
+ 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47,
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x78,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0e,
+ 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x73,
+ 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x41, 0x4d,
+ 0x55, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x52, 0x41, 0x4d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61,
+ 0x6e, 0x63, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x53,
+ 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46,
+ 0x6c, 0x6f, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0d,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74,
+ 0x69, 0x6e, 0x67, 0x49, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61,
+ 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x65, 0x73,
+ 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f,
+ 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x15, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
+ 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74,
+ 0x61, 0x6c, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x73, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6c, 0x6f,
+ 0x61, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x17, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55,
+ 0x73, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x55, 0x73,
+ 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d,
+ 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73,
+ 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x41, 0x4d, 0x53,
+ 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x6f,
+ 0x74, 0x61, 0x6c, 0x52, 0x41, 0x4d, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x88, 0x01, 0x0a, 0x06, 0x4c,
+ 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12,
+ 0x44, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65,
+ 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x52, 0x08, 0x61, 0x62, 0x73,
+ 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x22, 0x9f, 0x06, 0x0a, 0x13,
+ 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69,
+ 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x06, 0x0a, 0x04, 0x52, 0x61, 0x74, 0x65, 0x1a, 0xf4, 0x03,
+ 0x0a, 0x08, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f,
+ 0x74, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x55, 0x73, 0x65, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x6e, 0x61,
+ 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61,
+ 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x63,
+ 0x6b, 0x75, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x69, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x47, 0x69, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c,
+ 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
+ 0x6f, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x54, 0x6f,
+ 0x74, 0x61, 0x6c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x17,
+ 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x69,
+ 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x6d,
+ 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x69, 0x67,
+ 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x69, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73,
+ 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x18, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42,
+ 0x61, 0x63, 0x6b, 0x75, 0x70, 0x47, 0x69, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73,
+ 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78,
+ 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10,
+ 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73,
+ 0x55, 0x73, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x69, 0x67,
+ 0x61, 0x62, 0x79, 0x74, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x69, 0x67, 0x61, 0x62, 0x79, 0x74, 0x65, 0x73,
+ 0x55, 0x73, 0x65, 0x64, 0x1a, 0x86, 0x01, 0x0a, 0x06, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12,
+ 0x37, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x61,
+ 0x74, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x6f,
+ 0x6c, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x62, 0x73, 0x6f, 0x6c,
+ 0x75, 0x74, 0x65, 0x52, 0x08, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x22, 0x3e, 0x0a,
+ 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12,
+ 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
+ 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0xae, 0x03,
+ 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12,
+ 0x4d, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10,
+ 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c,
+ 0x1a, 0x65, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x6c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x35, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03,
+ 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x22, 0x18,
+ 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x22, 0xdf, 0x12, 0x0a, 0x17, 0x4c, 0x69, 0x73,
+ 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x73, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10,
+ 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67,
+ 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x9b, 0x01,
+ 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x4f, 0x53, 0x5f,
+ 0x45, 0x58, 0x54, 0x5f, 0x49, 0x50, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x6d, 0x61, 0x63, 0x5f,
+ 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x4f, 0x53, 0x2d, 0x45,
+ 0x58, 0x54, 0x2d, 0x49, 0x50, 0x53, 0x2d, 0x4d, 0x41, 0x43, 0x3a, 0x6d, 0x61, 0x63, 0x5f, 0x61,
+ 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x49, 0x50,
+ 0x53, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4f, 0x53,
+ 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x49, 0x50, 0x53, 0x3a, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64,
+ 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x51, 0x0a, 0x09, 0x41,
+ 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76,
+ 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72,
+ 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x1a, 0x0d,
+ 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x59, 0x0a,
+ 0x06, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x31, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x57, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x3e, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x1a, 0x2e, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10,
+ 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c,
+ 0x1a, 0x0a, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x25, 0x0a, 0x0f,
+ 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x1a, 0xf4, 0x0c, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12,
+ 0x32, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x1f, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54, 0x53, 0x3a, 0x74,
+ 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d,
+ 0x70, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x07, 0x56, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54, 0x53,
+ 0x3a, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d,
+ 0x70, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x1d, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52,
+ 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x4f, 0x53, 0x2d, 0x45,
+ 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x69, 0x6e, 0x73, 0x74,
+ 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x4f, 0x53, 0x5f,
+ 0x53, 0x52, 0x56, 0x5f, 0x55, 0x53, 0x47, 0x5f, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x64,
+ 0x5f, 0x41, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x4f, 0x53, 0x2d, 0x53, 0x52,
+ 0x56, 0x2d, 0x55, 0x53, 0x47, 0x3a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x53, 0x5f, 0x44, 0x43, 0x46, 0x5f, 0x44, 0x69, 0x73, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4f, 0x53,
+ 0x2d, 0x44, 0x43, 0x46, 0x3a, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
+ 0x3b, 0x0a, 0x16, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x50, 0x6f,
+ 0x77, 0x65, 0x72, 0x5f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x1b, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52,
+ 0x3a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x1b,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x41, 0x5a, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x1b, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x41, 0x5a, 0x3a, 0x61, 0x76, 0x61,
+ 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x32,
+ 0x0a, 0x14, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54,
+ 0x52, 0x5f, 0x48, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x4f, 0x53,
+ 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x68, 0x6f,
+ 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x4f, 0x53, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x55, 0x53, 0x47,
+ 0x5f, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x41, 0x74, 0x18, 0x11,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x4f, 0x53, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x55, 0x53, 0x47,
+ 0x3a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x52,
+ 0x0a, 0x24, 0x6f, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x6f, 0x73,
+ 0x2d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x2d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x73, 0x3a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x65, 0x64, 0x12, 0x50, 0x0a, 0x23, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56,
+ 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x48, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72,
+ 0x5f, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x23, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52,
+ 0x3a, 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x49, 0x50, 0x76, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x36, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x49, 0x50, 0x76, 0x36, 0x12, 0x4a, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65,
+ 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73,
+ 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65,
+ 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x72,
+ 0x69, 0x76, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x06, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18,
+ 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72,
+ 0x52, 0x06, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x73, 0x74,
+ 0x49, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x3e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67,
+ 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05,
+ 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x31, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x16, 0x0a,
+ 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f,
+ 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f,
+ 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72,
+ 0x65, 0x73, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72,
+ 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
+ 0x18, 0x27, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09,
+ 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x72, 0x75,
+ 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x74,
+ 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x2b, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0xed, 0x0f, 0x0a, 0x0f, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x39,
+ 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0x5f, 0x0a, 0x08, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a,
+ 0x08, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x66, 0x69, 0x78, 0x65, 0x64, 0x49, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x1a, 0xbd, 0x03, 0x0a, 0x17, 0x42,
+ 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70,
+ 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69,
+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x74,
+ 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f,
+ 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x54, 0x65,
+ 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73,
+ 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69,
+ 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x62,
+ 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x42, 0x75,
+ 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61,
+ 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x75, 0x65, 0x73, 0x74, 0x46, 0x6f,
+ 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63,
+ 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x32, 0x0a, 0x08, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x79, 0x5f, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
+ 0x4d, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3d,
+ 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a,
+ 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
+ 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x25, 0x0a,
+ 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xcb, 0x07, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,
+ 0x1c, 0x0a, 0x09, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x03, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e,
+ 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x12, 0x1e,
+ 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34, 0x12, 0x1e,
+ 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36, 0x12, 0x1c,
+ 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x12, 0x2b, 0x0a, 0x11,
+ 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e,
+ 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
+ 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x69, 0x0a, 0x17, 0x62, 0x6c, 0x6f,
+ 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e,
+ 0x67, 0x5f, 0x76, 0x32, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x32, 0x52, 0x14,
+ 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69,
+ 0x6e, 0x67, 0x56, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64,
+ 0x72, 0x69, 0x76, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x44, 0x72, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x53, 0x5f, 0x44, 0x43, 0x46, 0x5f, 0x64, 0x69,
+ 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11,
+ 0x4f, 0x53, 0x2d, 0x44, 0x43, 0x46, 0x3a, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79,
+ 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x65, 0x71, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b,
+ 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x53, 0x0a, 0x0f, 0x73,
+ 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0f,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a,
+ 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
+ 0x3c, 0x0a, 0x1a, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x14, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x18, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a,
+ 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73,
+ 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f,
+ 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
+ 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61,
+ 0x6d, 0x65, 0x1a, 0x95, 0x02, 0x0a, 0x1a, 0x4f, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x5f, 0x68, 0x6e,
+ 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x5f, 0x68, 0x69, 0x6e, 0x74,
+ 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2b,
+ 0x0a, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x68, 0x6f, 0x73,
+ 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x69, 0x6c,
+ 0x64, 0x4e, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12,
+ 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x6c,
+ 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65,
+ 0x6e, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x66, 0x66, 0x65, 0x72,
+ 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d,
+ 0x64, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x14, 0x0a,
+ 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72,
+ 0x67, 0x65, 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x65, 0x6c, 0x6c, 0x22, 0xdd, 0x03, 0x0a, 0x10, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x3a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73,
+ 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x2d,
+ 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72,
+ 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x25, 0x0a,
+ 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xf3, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12,
+ 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
+ 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x53, 0x5f, 0x44,
+ 0x43, 0x46, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x11, 0x4f, 0x53, 0x2d, 0x44, 0x43, 0x46, 0x3a, 0x64, 0x69, 0x73, 0x6b,
+ 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69,
+ 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x0e, 0x73, 0x65,
+ 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x1c, 0x0a, 0x09,
+ 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x22, 0x2e, 0x0a, 0x0f, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a,
+ 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x10, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10,
+ 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67,
+ 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x22, 0x38, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1b,
+ 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xad, 0x1b, 0x0a, 0x1a,
+ 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73,
+ 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x9b, 0x01, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x12, 0x38, 0x0a, 0x17, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x49, 0x50, 0x53, 0x5f, 0x4d,
+ 0x41, 0x43, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x17, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x49, 0x50, 0x53, 0x2d, 0x4d, 0x41,
+ 0x43, 0x3a, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x53,
+ 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x49, 0x50, 0x53, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x49, 0x50, 0x53, 0x3a,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x1a, 0x54, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12,
+ 0x47, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+ 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42,
+ 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52,
+ 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x1a, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72,
+ 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x95, 0x02, 0x0a, 0x06, 0x46, 0x6c, 0x61, 0x76,
+ 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x70, 0x75,
+ 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x63, 0x70, 0x75, 0x73, 0x12, 0x10,
+ 0x0a, 0x03, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x61, 0x6d,
+ 0x12, 0x12, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
+ 0x64, 0x69, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61,
+ 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72,
+ 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
+ 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f,
+ 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x65,
+ 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42,
+ 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70,
+ 0x65, 0x63, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a,
+ 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03,
+ 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x5a,
+ 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x2e, 0x0a, 0x06, 0x4c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x0a, 0x0a, 0x08, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6a, 0x0a, 0x24, 0x4f, 0x73, 0x5f, 0x65, 0x78, 0x74,
+ 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32,
+ 0x0a, 0x15, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x72, 0x6d,
+ 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x6e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x1a, 0x69, 0x0a, 0x05, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
+ 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x25, 0x0a,
+ 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xa4, 0x12, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36,
+ 0x12, 0x4d, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12,
+ 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x72, 0x69,
+ 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x06,
+ 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x06, 0x66, 0x6c, 0x61, 0x76,
+ 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x05, 0x69, 0x6d,
+ 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a,
+ 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x6b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x31, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x4a, 0x0a, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49,
+ 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11,
+ 0x4f, 0x53, 0x5f, 0x44, 0x43, 0x46, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4f, 0x53, 0x2d, 0x44, 0x43, 0x46, 0x3a,
+ 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x1b, 0x4f, 0x53,
+ 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x41, 0x5a, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69,
+ 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x1b, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x41, 0x5a, 0x3a, 0x61, 0x76, 0x61, 0x69, 0x6c,
+ 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x32, 0x0a, 0x14,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f,
+ 0x68, 0x6f, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x4f, 0x53, 0x2d, 0x45,
+ 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x68, 0x6f, 0x73, 0x74,
+ 0x12, 0x3a, 0x0a, 0x18, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41,
+ 0x54, 0x54, 0x52, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x18, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41,
+ 0x54, 0x54, 0x52, 0x3a, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x23,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f,
+ 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x23, 0x4f, 0x53, 0x2d, 0x45, 0x58,
+ 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x68, 0x79, 0x70, 0x65, 0x72,
+ 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44,
+ 0x0a, 0x1d, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54,
+ 0x52, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52,
+ 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53,
+ 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69,
+ 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d,
+ 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f,
+ 0x69, 0x64, 0x12, 0x42, 0x0a, 0x1c, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56,
+ 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64,
+ 0x65, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54,
+ 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68,
+ 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x1a, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x72, 0x61, 0x6d, 0x64, 0x69, 0x73,
+ 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x4f, 0x53, 0x2d, 0x45,
+ 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x72, 0x61, 0x6d, 0x64,
+ 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x1e, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e,
+ 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a,
+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x4a,
+ 0x0a, 0x20, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54,
+ 0x52, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x20, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54,
+ 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64,
+ 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x4f, 0x53,
+ 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x75, 0x73,
+ 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x4f,
+ 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x75,
+ 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x16, 0x4f, 0x53, 0x5f, 0x45,
+ 0x58, 0x54, 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54,
+ 0x2d, 0x53, 0x54, 0x53, 0x3a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x12, 0x34, 0x0a, 0x15, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x74,
+ 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x15, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54, 0x53, 0x3a, 0x74, 0x61, 0x73, 0x6b,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x1c, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x13, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54, 0x53, 0x3a,
+ 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x9e, 0x01, 0x0a, 0x24, 0x6f, 0x73, 0x5f,
+ 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
+ 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65,
+ 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4f,
+ 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x65, 0x64, 0x52, 0x24, 0x6f, 0x73, 0x2d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
+ 0x2d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
+ 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x4f, 0x53, 0x5f,
+ 0x53, 0x52, 0x56, 0x5f, 0x55, 0x53, 0x47, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x64,
+ 0x5f, 0x61, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x4f, 0x53, 0x2d, 0x53, 0x52,
+ 0x56, 0x2d, 0x55, 0x53, 0x47, 0x3a, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x4f, 0x53, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x55, 0x53, 0x47, 0x5f,
+ 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1f, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x18, 0x4f, 0x53, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x55, 0x53, 0x47, 0x3a,
+ 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f,
+ 0x69, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74,
+ 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x22, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07,
+ 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
+ 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x24,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x46, 0x61, 0x75, 0x6c,
+ 0x74, 0x52, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67,
+ 0x72, 0x65, 0x73, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67,
+ 0x72, 0x65, 0x73, 0x73, 0x12, 0x5e, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72,
+ 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x27,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x28, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a,
+ 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x29, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x2a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+ 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+ 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
+ 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c,
+ 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x98, 0x02, 0x0a, 0x0f,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12,
+ 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0xac, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x36, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x53, 0x5f, 0x44, 0x43, 0x46, 0x5f, 0x64, 0x69, 0x73,
+ 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4f,
+ 0x53, 0x2d, 0x44, 0x43, 0x46, 0x3a, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd8, 0x17, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x73,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a,
+ 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x9b, 0x01, 0x0a, 0x07, 0x50,
+ 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x49, 0x50, 0x53, 0x5f, 0x4d, 0x41, 0x43, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64,
+ 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d,
+ 0x49, 0x50, 0x53, 0x2d, 0x4d, 0x41, 0x43, 0x3a, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72,
+ 0x12, 0x28, 0x0a, 0x0f, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x49, 0x50, 0x53, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x4f, 0x53, 0x2d, 0x45, 0x58,
+ 0x54, 0x2d, 0x49, 0x50, 0x53, 0x3a, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64,
+ 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x18,
+ 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x4a, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x07, 0x70, 0x72, 0x69,
+ 0x76, 0x61, 0x74, 0x65, 0x1a, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70,
+ 0x65, 0x63, 0x73, 0x1a, 0xe5, 0x01, 0x0a, 0x06, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x12,
+ 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x69,
+ 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c,
+ 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x52, 0x0a,
+ 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6f, 0x72,
+ 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x61,
+ 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x70, 0x75, 0x73, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x63, 0x70, 0x75, 0x73, 0x1a, 0x2d, 0x0a, 0x05, 0x4c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x50, 0x0a, 0x05, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x2e, 0x0a, 0x06,
+ 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65,
+ 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x32, 0x0a, 0x08,
+ 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x4d, 0x79, 0x5f, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0e, 0x4d, 0x79, 0x20, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x4e, 0x61, 0x6d, 0x65,
+ 0x1a, 0x25, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0xd7, 0x10, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x4f, 0x53, 0x5f, 0x44, 0x43, 0x46, 0x5f, 0x64, 0x69, 0x73,
+ 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x4f,
+ 0x53, 0x2d, 0x44, 0x43, 0x46, 0x3a, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x12, 0x40, 0x0a, 0x1b, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x41, 0x5a, 0x5f, 0x61, 0x76,
+ 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x41, 0x5a,
+ 0x3a, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f,
+ 0x6e, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56,
+ 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x14, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54,
+ 0x52, 0x3a, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54,
+ 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61,
+ 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x23, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56,
+ 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72,
+ 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x23, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52,
+ 0x3a, 0x68, 0x79, 0x70, 0x65, 0x72, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53,
+ 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x4f, 0x53, 0x2d,
+ 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x69, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x4f, 0x53,
+ 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x6b, 0x65,
+ 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x4f,
+ 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x6b,
+ 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x1c, 0x4f, 0x53, 0x5f, 0x45,
+ 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x6c, 0x61, 0x75, 0x6e,
+ 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1c,
+ 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a,
+ 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, 0x0a, 0x1a,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f,
+ 0x72, 0x61, 0x6d, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x1a, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54,
+ 0x52, 0x3a, 0x72, 0x61, 0x6d, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x1e,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f,
+ 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56,
+ 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x20, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53,
+ 0x52, 0x56, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x20,
+ 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x41, 0x54, 0x54, 0x52, 0x3a,
+ 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x12, 0x3c, 0x0a, 0x19, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x41,
+ 0x54, 0x54, 0x52, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x19, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x52, 0x56, 0x2d,
+ 0x41, 0x54, 0x54, 0x52, 0x3a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36,
+ 0x0a, 0x16, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x70, 0x6f, 0x77,
+ 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16,
+ 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54, 0x53, 0x3a, 0x70, 0x6f, 0x77, 0x65, 0x72,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54,
+ 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x4f, 0x53, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x53, 0x54,
+ 0x53, 0x3a, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x13,
+ 0x4f, 0x53, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x53, 0x54, 0x53, 0x5f, 0x76, 0x6d, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x4f, 0x53, 0x2d, 0x45, 0x58,
+ 0x54, 0x2d, 0x53, 0x54, 0x53, 0x3a, 0x76, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36,
+ 0x0a, 0x16, 0x4f, 0x53, 0x5f, 0x53, 0x52, 0x56, 0x5f, 0x55, 0x53, 0x47, 0x5f, 0x6c, 0x61, 0x75,
+ 0x6e, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16,
+ 0x4f, 0x53, 0x2d, 0x53, 0x52, 0x56, 0x2d, 0x55, 0x53, 0x47, 0x3a, 0x6c, 0x61, 0x75, 0x6e, 0x63,
+ 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x4f, 0x53, 0x5f, 0x53, 0x52, 0x56,
+ 0x5f, 0x55, 0x53, 0x47, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x4f, 0x53, 0x2d, 0x53, 0x52, 0x56,
+ 0x2d, 0x55, 0x53, 0x47, 0x3a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x34,
+ 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x34, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50, 0x76, 0x36,
+ 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x50,
+ 0x76, 0x36, 0x12, 0x43, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18,
+ 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x09, 0x61, 0x64,
+ 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x72, 0x69, 0x76, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72,
+ 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x52, 0x06, 0x66, 0x6c, 0x61, 0x76,
+ 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x18, 0x19, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x68, 0x6f, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f,
+ 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x69,
+ 0x6d, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x38, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x31, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x6b, 0x65,
+ 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73,
+ 0x6f, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64,
+ 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
+ 0x74, 0x61, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x24,
+ 0x6f, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61,
+ 0x63, 0x68, 0x65, 0x64, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x24, 0x6f, 0x73, 0x2d, 0x65,
+ 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x2d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a,
+ 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64,
+ 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x24, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x0f,
+ 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18,
+ 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x73, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x47, 0x72, 0x6f, 0x75,
+ 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
+ 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6d, 0x61, 0x67,
+ 0x65, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x2a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18,
+ 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72,
+ 0x5f, 0x69, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
+ 0x64, 0x22, 0x91, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49,
+ 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53,
+ 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x73,
+ 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x07, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x1a, 0x25,
+ 0x0a, 0x07, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x73, 0x5f,
+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x73, 0x2d,
+ 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x54, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b,
+ 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x89, 0x01, 0x0a, 0x0d,
+ 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a,
+ 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x6f, 0x73,
+ 0x53, 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x06, 0x6f, 0x73, 0x53,
+ 0x74, 0x6f, 0x70, 0x1a, 0x22, 0x0a, 0x06, 0x4f, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x18, 0x0a,
+ 0x07, 0x6f, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x6f, 0x73, 0x2d, 0x73, 0x74, 0x6f, 0x70, 0x22, 0x53, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
+ 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x87, 0x01, 0x0a,
+ 0x0f, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x39, 0x0a,
+ 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+ 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x1a, 0x1c, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f,
+ 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73,
+ 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x8b, 0x01,
+ 0x0a, 0x0e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3b, 0x0a,
+ 0x07, 0x6f, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x73, 0x50, 0x61, 0x75, 0x73,
+ 0x65, 0x52, 0x07, 0x6f, 0x73, 0x50, 0x61, 0x75, 0x73, 0x65, 0x1a, 0x1f, 0x0a, 0x07, 0x4f, 0x73,
+ 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x0f, 0x50,
+ 0x61, 0x75, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10,
+ 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67,
+ 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72,
+ 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6f,
+ 0x72, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f,
+ 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x69,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72,
+ 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x18,
+ 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x52,
+ 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x52, 0x61, 0x6d,
+ 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0xa7, 0x06,
+ 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x76, 0x6f,
+ 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x73,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x46, 0x6c, 0x61, 0x76, 0x6f,
+ 0x72, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73,
+ 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0xc9, 0x04,
+ 0x0a, 0x06, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b,
+ 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12,
+ 0x0a, 0x04, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x69,
+ 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c,
+ 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70,
+ 0x65, 0x63, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12,
+ 0x23, 0x0a, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x03, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x77, 0x61, 0x70, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x77, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63,
+ 0x70, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x63, 0x70, 0x75, 0x73,
+ 0x12, 0x3c, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74,
+ 0x46, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73,
+ 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x3c,
+ 0x0a, 0x19, 0x4f, 0x53, 0x5f, 0x46, 0x4c, 0x56, 0x5f, 0x45, 0x58, 0x54, 0x5f, 0x44, 0x41, 0x54,
+ 0x41, 0x5f, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x19, 0x4f, 0x53, 0x2d, 0x46, 0x4c, 0x56, 0x2d, 0x45, 0x58, 0x54, 0x2d, 0x44, 0x41,
+ 0x54, 0x41, 0x3a, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x18,
+ 0x4f, 0x53, 0x5f, 0x46, 0x4c, 0x56, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x5f,
+ 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18,
+ 0x4f, 0x53, 0x2d, 0x46, 0x4c, 0x56, 0x2d, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x3a,
+ 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x78, 0x74, 0x78,
+ 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x72,
+ 0x78, 0x74, 0x78, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3e, 0x0a, 0x1a, 0x6f, 0x73, 0x5f,
+ 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x73,
+ 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6f,
+ 0x73, 0x2d, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a,
+ 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x1a, 0x0d, 0x0a, 0x0b, 0x45, 0x78, 0x74,
+ 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x22, 0x4e, 0x0a, 0x15, 0x53, 0x68, 0x6f, 0x77, 0x4e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xd9, 0x06, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d,
+ 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x76, 0x61,
+ 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x68,
+ 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69,
+ 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x48, 0x69, 0x6e, 0x74,
+ 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x73,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c,
+ 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73,
+ 0x63, 0x6f, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x70, 0x76, 0x34,
+ 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12,
+ 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x63, 0x6f,
+ 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64,
+ 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x32,
+ 0x5f, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0b, 0x6c, 0x32, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x75,
+ 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65,
+ 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f,
+ 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71,
+ 0x6f, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d,
+ 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x6f,
+ 0x75, 0x74, 0x65, 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a,
+ 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73,
+ 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a,
+ 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
+ 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18,
+ 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74,
+ 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x5f,
+ 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12,
+ 0x34, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
+ 0x65, 0x72, 0x3a, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f,
+ 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a,
+ 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22,
+ 0xb9, 0x09, 0x0a, 0x16, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x6e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52,
+ 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69,
+ 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x12, 0x36,
+ 0x0a, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a,
+ 0x6f, 0x6e, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e,
+ 0x65, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
+ 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
+ 0x5a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61,
+ 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d,
+ 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72,
+ 0x65, 0x73, 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x10, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70,
+ 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+ 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69,
+ 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12,
+ 0x21, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x32, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e,
+ 0x63, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x03, 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74,
+ 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x70,
+ 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x76,
+ 0x69, 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x68,
+ 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x10,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x70,
+ 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12,
+ 0x3a, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d,
+ 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x65, 0x67, 0x6d,
+ 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x71,
+ 0x6f, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x71, 0x6f, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12,
+ 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
+ 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74,
+ 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e,
+ 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x18, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09,
+ 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x6c, 0x61, 0x6e,
+ 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72,
+ 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66,
+ 0x61, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1e, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18,
+ 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b,
+ 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x21, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x85, 0x05, 0x0a, 0x10,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12,
+ 0x2c, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a,
+ 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x55, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61,
+ 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52,
+ 0x03, 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74,
+ 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63,
+ 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x15,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f,
+ 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x70,
+ 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18,
+ 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a,
+ 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67,
+ 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x65, 0x67,
+ 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d,
+ 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x6f, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64,
+ 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72,
+ 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65,
+ 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x65,
+ 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68,
+ 0x61, 0x72, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72,
+ 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x22, 0x89, 0x09, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x07, 0x6e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07,
+ 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x12, 0x36, 0x0a,
+ 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f,
+ 0x6e, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15,
+ 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65,
+ 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
+ 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a,
+ 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
+ 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69,
+ 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61,
+ 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
+ 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65,
+ 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x70,
+ 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x21,
+ 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x32, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03,
+ 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x5f,
+ 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63, 0x75,
+ 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
+ 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72,
+ 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x79,
+ 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x70, 0x68,
+ 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a,
+ 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65,
+ 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x65, 0x67, 0x6d, 0x65,
+ 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x6f,
+ 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x71, 0x6f, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x27,
+ 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65,
+ 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+ 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65,
+ 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
+ 0x6c, 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74,
+ 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f,
+ 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69,
+ 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73,
+ 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03,
+ 0x6d, 0x73, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
+ 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22,
+ 0x31, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x49, 0x64, 0x22, 0x56, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a,
+ 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x11, 0x0a, 0x0f, 0x4c, 0x69,
+ 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x22, 0x85, 0x01,
+ 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x40, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x07, 0x6e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07,
+ 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a,
+ 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73,
+ 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x20,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x3c,
+ 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65,
+ 0x71, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x75,
+ 0x62, 0x6e, 0x65, 0x74, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x22, 0x84, 0x01, 0x0a,
+ 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x75,
+ 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
+ 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f,
+ 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x4d, 0x73, 0x67, 0x22, 0xc0, 0x02, 0x0a, 0x06, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f,
+ 0x69, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
+ 0x79, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x68,
+ 0x63, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
+ 0x44, 0x68, 0x63, 0x70, 0x12, 0x46, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x0f, 0x61, 0x6c, 0x6c,
+ 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f,
+ 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18,
+ 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f,
+ 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74,
+ 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x22, 0x95, 0x06, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6e, 0x65,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x64,
+ 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x64, 0x72, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x69, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x09, 0x69, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x65,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x68, 0x63, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x68, 0x63, 0x70, 0x12, 0x46, 0x0a, 0x10,
+ 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73,
+ 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f,
+ 0x6f, 0x6c, 0x73, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
+ 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+ 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64,
+ 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03,
+ 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74,
+ 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x64, 0x6e, 0x73, 0x5f,
+ 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x69, 0x70,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x64, 0x6e, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69,
+ 0x73, 0x68, 0x46, 0x69, 0x78, 0x65, 0x64, 0x49, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x70,
+ 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18,
+ 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65,
+ 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x72,
+ 0x61, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x70,
+ 0x76, 0x36, 0x52, 0x61, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65,
+ 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74,
+ 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73,
+ 0x75, 0x62, 0x6e, 0x65, 0x74, 0x70, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74,
+ 0x61, 0x67, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x17, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x3a,
+ 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6f,
+ 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xed, 0x05, 0x0a, 0x15, 0x42,
+ 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x73, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x64,
+ 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e,
+ 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+ 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13,
+ 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62,
+ 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
+ 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
+ 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76,
+ 0x69, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f,
+ 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x70, 0x68, 0x79, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
+ 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64,
+ 0x65, 0x72, 0x3a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+ 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x6f, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
+ 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x71, 0x6f, 0x73, 0x50, 0x6f,
+ 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
+ 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+ 0x12, 0x2e, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53,
+ 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73,
+ 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61,
+ 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e,
+ 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69,
+ 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20,
+ 0x03, 0x28, 0x09, 0x52, 0x15, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x22, 0xbb, 0x09, 0x0a, 0x16, 0x42,
+ 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61,
+ 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65,
+ 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x61, 0x76,
+ 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x48, 0x69,
+ 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
+ 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e,
+ 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
+ 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+ 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x70,
+ 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x2c,
+ 0x0a, 0x12, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73,
+ 0x63, 0x6f, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x70, 0x76, 0x36,
+ 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c,
+ 0x6c, 0x32, 0x5f, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x32, 0x41, 0x64, 0x6a, 0x61, 0x63, 0x65, 0x6e, 0x63, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6d, 0x74,
+ 0x75, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x65,
+ 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0d,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
+ 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
+ 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70,
+ 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x76,
+ 0x69, 0x64, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
+ 0x72, 0x3a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3c,
+ 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x79, 0x73, 0x69,
+ 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x70, 0x68, 0x79, 0x73,
+ 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x18,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x6f, 0x73, 0x5f,
+ 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x71, 0x6f, 0x73, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f,
+ 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
+ 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x4e,
+ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f,
+ 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
+ 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12,
+ 0x2e, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x65,
+ 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x07, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e,
+ 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65,
+ 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x72,
+ 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0f, 0x76, 0x6c, 0x61, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
+ 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x09, 0x52,
+ 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
+ 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xe0, 0x04, 0x0a, 0x0c, 0x4c, 0x69, 0x73,
+ 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73,
+ 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x20,
+ 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64,
+ 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x61,
+ 0x72, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72,
+ 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72,
+ 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x61,
+ 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x5f,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e,
+ 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x63,
+ 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x12, 0x14, 0x0a,
+ 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68,
+ 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72,
+ 0x6b, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65,
+ 0x72, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x72, 0x74, 0x44, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08,
+ 0x73, 0x6f, 0x72, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x73, 0x6f, 0x72, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x13,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65,
+ 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x68, 0x69, 0x6c,
+ 0x64, 0x72, 0x65, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6c,
+ 0x75, 0x64, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0xb0, 0x03, 0x0a, 0x0d,
+ 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a,
+ 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x05, 0x6e, 0x6f,
+ 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0xf6, 0x01, 0x0a, 0x05, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
+ 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+ 0x55, 0x75, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61,
+ 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x76,
+ 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75,
+ 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x22, 0xbf,
+ 0x0c, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0b,
+ 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x44, 0x72, 0x69, 0x76,
+ 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49,
+ 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f,
+ 0x77, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e,
+ 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c,
+ 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6f, 0x6f,
+ 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f,
+ 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x72,
+ 0x6f, 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
+ 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
+ 0x66, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c,
+ 0x6f, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69,
+ 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x61,
+ 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65,
+ 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x63,
+ 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
+ 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x75, 0x75, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
+ 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65,
+ 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x69, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
+ 0x52, 0x65, 0x71, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x75,
+ 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x16, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6c,
+ 0x65, 0x61, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x69, 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x69, 0x6f,
+ 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68,
+ 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4b, 0x0a,
+ 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x49,
+ 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x69, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12,
+ 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1b,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63,
+ 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65,
+ 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d,
+ 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e,
+ 0x12, 0x48, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71,
+ 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70,
+ 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
+ 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f,
+ 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x20, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65,
+ 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18,
+ 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25,
+ 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
+ 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x52,
+ 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x23, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
+ 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x57, 0x0a, 0x0b, 0x44, 0x72, 0x69, 0x76,
+ 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x69, 0x5f,
+ 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+ 0x69, 0x70, 0x6d, 0x69, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d,
+ 0x69, 0x70, 0x6d, 0x69, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x69, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
+ 0x64, 0x1a, 0x0c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a,
+ 0x0f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
+ 0x1a, 0x0e, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61,
+ 0x22, 0xf8, 0x19, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c,
+ 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74,
+ 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x77, 0x65,
+ 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74,
+ 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
+ 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73,
+ 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67,
+ 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
+ 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20,
+ 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65,
+ 0x12, 0x2d, 0x0a, 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f,
+ 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x61,
+ 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12,
+ 0x14, 0x0a, 0x05, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45,
+ 0x72, 0x72, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72,
+ 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x46,
+ 0x0a, 0x0b, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44,
+ 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x72, 0x69, 0x76,
+ 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x14, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
+ 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
+ 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
+ 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x4c,
+ 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
+ 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x0c,
+ 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d,
+ 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x11, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x75, 0x69,
+ 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x75, 0x75, 0x69,
+ 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73,
+ 0x55, 0x75, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x13, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45,
+ 0x78, 0x74, 0x72, 0x61, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x63,
+ 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x14,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x72, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e,
+ 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+ 0x52, 0x0a, 0x72, 0x61, 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x12,
+ 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66,
+ 0x69, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x61,
+ 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x43, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61,
+ 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
+ 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x73, 0x74,
+ 0x65, 0x70, 0x52, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x12, 0x46, 0x0a,
+ 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x18, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x65,
+ 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f,
+ 0x79, 0x53, 0x74, 0x65, 0x70, 0x12, 0x35, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x19,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x35, 0x0a, 0x05,
+ 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f,
+ 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x05, 0x70, 0x6f,
+ 0x72, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70,
+ 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x0a, 0x70,
+ 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f,
+ 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x6f,
+ 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+ 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f,
+ 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x29,
+ 0x0a, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+ 0x63, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e,
+ 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x21, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x72, 0x6f,
+ 0x75, 0x70, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69,
+ 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
+ 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+ 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e,
+ 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
+ 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+ 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0d, 0x72, 0x61, 0x69, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
+ 0x29, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x63, 0x75,
+ 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74,
+ 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18,
+ 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e,
+ 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x69, 0x74,
+ 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, 0x12,
+ 0x29, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f,
+ 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65,
+ 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
+ 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
+ 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72,
+ 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a,
+ 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6f,
+ 0x77, 0x6e, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65,
+ 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61,
+ 0x72, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12,
+ 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x32,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63,
+ 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f,
+ 0x6d, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x69,
+ 0x6f, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x34, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0d, 0x62, 0x69, 0x6f, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+ 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x52,
+ 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07,
+ 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72,
+ 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65,
+ 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+ 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x34, 0x0a, 0x16,
+ 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73,
+ 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e,
+ 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64,
+ 0x41, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
+ 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x3c, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x6f,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69,
+ 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12,
+ 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73,
+ 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x41,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x0c,
+ 0x0a, 0x0a, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x1a, 0x0d, 0x0a, 0x0b,
+ 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x1a, 0x57, 0x0a, 0x0b, 0x44,
+ 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70,
+ 0x6d, 0x69, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x69, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12,
+ 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x69, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x69, 0x55, 0x73, 0x65, 0x72,
+ 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x16, 0x0a, 0x14, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69,
+ 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x07, 0x0a, 0x05,
+ 0x45, 0x78, 0x74, 0x72, 0x61, 0x1a, 0x0f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+ 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x0e, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x5f, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x32, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x2d, 0x0a, 0x05, 0x50, 0x6f, 0x72,
+ 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x0c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70,
+ 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x0d, 0x0a, 0x0b, 0x52, 0x61, 0x69, 0x64, 0x5f, 0x63,
+ 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x14, 0x0a, 0x12, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
+ 0x72, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x2e, 0x0a, 0x06, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x22, 0x2e, 0x0a, 0x0d, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x53, 0x0a, 0x0e, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a,
+ 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64,
+ 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67,
+ 0x22, 0x7b, 0x0a, 0x12, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69,
+ 0x64, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65,
+ 0x49, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x73, 0x52, 0x65, 0x71, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x06, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x73, 0x1a, 0x08, 0x0a, 0x06, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xf1, 0x1a,
+ 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2c,
+ 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67,
+ 0x65, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
+ 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
+ 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d,
+ 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a,
+ 0x12, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x61,
+ 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x74,
+ 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
+ 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0b, 0x64,
+ 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f,
+ 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x72,
+ 0x69, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x65, 0x0a, 0x14, 0x64, 0x72, 0x69, 0x76,
+ 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x64, 0x72, 0x69,
+ 0x76, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12,
+ 0x49, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a,
+ 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0d, 0x69, 0x6e,
+ 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68,
+ 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x52,
+ 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a,
+ 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x11,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x75,
+ 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x75, 0x75,
+ 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69,
+ 0x73, 0x55, 0x75, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x78, 0x74, 0x72, 0x61, 0x18, 0x13,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x52, 0x05, 0x65, 0x78, 0x74, 0x72,
+ 0x61, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x61,
+ 0x62, 0x6c, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x73,
+ 0x6f, 0x6c, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x0b, 0x72, 0x61,
+ 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77,
+ 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x52, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x72, 0x61, 0x69,
+ 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x16, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x5f,
+ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x61,
+ 0x69, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61,
+ 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64,
+ 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6c, 0x65,
+ 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x52, 0x09, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x53, 0x74,
+ 0x65, 0x70, 0x12, 0x4b, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x73, 0x74, 0x65,
+ 0x70, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x73,
+ 0x74, 0x65, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x53, 0x74, 0x65, 0x70, 0x12,
+ 0x3a, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e,
+ 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x70,
+ 0x6f, 0x72, 0x74, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x73,
+ 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x50, 0x6f, 0x72, 0x74,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x1c, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53,
+ 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65,
+ 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c,
+ 0x61, 0x73, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x69, 0x6f, 0x73,
+ 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0d, 0x62, 0x69, 0x6f, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12,
+ 0x25, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+ 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c,
+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x69, 0x6e,
+ 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64,
+ 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b,
+ 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x70, 0x65,
+ 0x63, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6d,
+ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x61, 0x67,
+ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b,
+ 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70,
+ 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x25,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72,
+ 0x66, 0x61, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x61,
+ 0x69, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x72,
+ 0x65, 0x73, 0x63, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18,
+ 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x63, 0x75, 0x65, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
+ 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x10, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x69, 0x74, 0x73, 0x18, 0x29, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x74, 0x73, 0x52, 0x06, 0x74, 0x72, 0x61, 0x69,
+ 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x74,
+ 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65,
+ 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a,
+ 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f,
+ 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f,
+ 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
+ 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f, 0x72,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
+ 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63,
+ 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64,
+ 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70,
+ 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14,
+ 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
+ 0x77, 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x18, 0x30,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x65, 0x73, 0x73, 0x65, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61,
+ 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74, 0x6f,
+ 0x72, 0x18, 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x75, 0x63, 0x74,
+ 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6c, 0x6c,
+ 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x75, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x69, 0x6e,
+ 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, 0x6e, 0x73, 0x70,
+ 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x41, 0x74,
+ 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
+ 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x13, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74,
+ 0x65, 0x64, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f,
+ 0x64, 0x61, 0x74, 0x61, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f,
+ 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x44, 0x61, 0x74, 0x61, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f,
+ 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x3a, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65,
+ 0x64, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64,
+ 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73,
+ 0x6f, 0x6e, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x69, 0x72, 0x65,
+ 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x3e,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73,
+ 0x67, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x40, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x0c, 0x0a, 0x0a, 0x43, 0x6c, 0x65,
+ 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x1a, 0x0d, 0x0a, 0x0b, 0x44, 0x65, 0x70, 0x6c, 0x6f,
+ 0x79, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x1a, 0x57, 0x0a, 0x0b, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
+ 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70, 0x6d, 0x69, 0x5f, 0x70, 0x61,
+ 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x70,
+ 0x6d, 0x69, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x70,
+ 0x6d, 0x69, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x69, 0x70, 0x6d, 0x69, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x1a,
+ 0x37, 0x0a, 0x14, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e,
+ 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x65, 0x61, 0x6e,
+ 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c,
+ 0x65, 0x61, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x73, 0x1a, 0x07, 0x0a, 0x05, 0x45, 0x78, 0x74, 0x72,
+ 0x61, 0x1a, 0x0f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e,
+ 0x66, 0x6f, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12,
+ 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65,
+ 0x6c, 0x1a, 0x0e, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74,
+ 0x61, 0x1a, 0x32, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12,
+ 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x2d, 0x0a, 0x05, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x0c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
+ 0x65, 0x73, 0x1a, 0x0d, 0x0a, 0x0b, 0x52, 0x61, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+ 0x67, 0x1a, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68,
+ 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12,
+ 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65,
+ 0x6c, 0x1a, 0x14, 0x0a, 0x12, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64,
+ 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x2e, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x08, 0x0a, 0x06, 0x54, 0x72, 0x61, 0x69, 0x74,
+ 0x73, 0x22, 0x97, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+ 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
+ 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+ 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
+ 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x6d,
+ 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x69,
+ 0x6e, 0x52, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74,
+ 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f,
+ 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x2b,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x06, 0x0a, 0x04, 0x54,
+ 0x61, 0x67, 0x73, 0x22, 0xe7, 0x07, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x1e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b,
+ 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65,
+ 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x4f, 0x70, 0x65,
+ 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d, 0x69, 0x6d, 0x70,
+ 0x6f, 0x72, 0x74, 0x2d, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x19, 0x4f,
+ 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73,
+ 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19,
+ 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2d,
+ 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2d, 0x69, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65,
+ 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+ 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
+ 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x12,
+ 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x52, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c,
+ 0x6f, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x73, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x22,
+ 0x0a, 0x0d, 0x6f, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x73, 0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18,
+ 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x73, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12,
+ 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a,
+ 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77,
+ 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x12, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x73,
+ 0x65, 0x6c, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x12,
+ 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73,
+ 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x15, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69,
+ 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x69,
+ 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x33, 0x0a, 0x04,
+ 0x74, 0x61, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61, 0x67,
+ 0x73, 0x12, 0x42, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1b,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x1c, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67,
+ 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65,
+ 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x06, 0x0a, 0x04, 0x54, 0x61, 0x67, 0x73,
+ 0x1a, 0x0b, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x25, 0x0a,
+ 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x14,
+ 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x22, 0xda, 0x06, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x65, 0x78,
+ 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x38, 0x0a, 0x06, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x06, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72,
+ 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x80, 0x05, 0x0a, 0x06, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a,
+ 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x52, 0x04, 0x74, 0x61, 0x67,
+ 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66,
+ 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e,
+ 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64,
+ 0x69, 0x73, 0x6b, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76,
+ 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73,
+ 0x65, 0x6c, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x6c, 0x66, 0x12,
+ 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72,
+ 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70,
+ 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0c,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65,
+ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x6f, 0x73, 0x5f, 0x68,
+ 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x6f, 0x73, 0x48, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x73,
+ 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x6f, 0x73, 0x48, 0x61, 0x73, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b,
+ 0x0a, 0x09, 0x6f, 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x08, 0x6f, 0x73, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6f,
+ 0x77, 0x6e, 0x65, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65,
+ 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x6d,
+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x52, 0x61, 0x6d, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61,
+ 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69,
+ 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x54, 0x61, 0x67,
+ 0x73, 0x22, 0x2b, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x54,
+ 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72,
+ 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x4d, 0x73, 0x67, 0x22, 0x2d, 0x0a, 0x10, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x73,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67,
+ 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67,
+ 0x65, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x11, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x73, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03,
+ 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b,
+ 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xae, 0x02, 0x0a, 0x0e,
+ 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f,
+ 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
+ 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
+ 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x77, 0x69, 0x74, 0x68,
+ 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x77, 0x69,
+ 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d,
+ 0x65, 0x73, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
+ 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x1d, 0x0a,
+ 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xa8, 0x02, 0x0a,
+ 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10,
+ 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c,
+ 0x1a, 0x65, 0x0a, 0x07, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x6c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74,
+ 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x73, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f,
+ 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66,
+ 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x77,
+ 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x09, 0x77, 0x69, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
+ 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22,
+ 0x9d, 0x0e, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x07, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f,
+ 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72,
+ 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12,
+ 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x72, 0x65, 0x6c, 0x1a, 0xd2, 0x01, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49,
+ 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
+ 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f,
+ 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69,
+ 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49,
+ 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x0a, 0x0a, 0x08, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xe7, 0x0a, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x69, 0x67, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
+ 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10,
+ 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65,
+ 0x12, 0x34, 0x0a, 0x15, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f,
+ 0x61, 0x74, 0x74, 0x72, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x15, 0x6f, 0x73, 0x2d, 0x76, 0x6f, 0x6c, 0x2d, 0x68, 0x6f, 0x73, 0x74, 0x2d, 0x61, 0x74, 0x74,
+ 0x72, 0x3a, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70,
+ 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79,
+ 0x70, 0x74, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x49, 0x64,
+ 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
+ 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x70,
+ 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12,
+ 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73,
+ 0x69, 0x7a, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x1c,
+ 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74,
+ 0x74, 0x72, 0x5f, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x1c, 0x6f, 0x73, 0x2d, 0x76, 0x6f, 0x6c, 0x2d, 0x74, 0x65, 0x6e, 0x61, 0x6e,
+ 0x74, 0x2d, 0x61, 0x74, 0x74, 0x72, 0x3a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
+ 0x12, 0x46, 0x0a, 0x1e, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x5f, 0x6d, 0x69, 0x67, 0x5f, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x6d, 0x69, 0x67, 0x73, 0x74,
+ 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6f, 0x73, 0x2d, 0x76, 0x6f, 0x6c,
+ 0x2d, 0x6d, 0x69, 0x67, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x61, 0x74, 0x74, 0x72,
+ 0x3a, 0x6d, 0x69, 0x67, 0x73, 0x74, 0x61, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
+ 0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12,
+ 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x6c,
+ 0x74, 0x69, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
+ 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x69, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x69, 0x64, 0x12, 0x2f,
+ 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e,
+ 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12,
+ 0x46, 0x0a, 0x1e, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x5f, 0x6d, 0x69, 0x67, 0x5f, 0x73, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69,
+ 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6f, 0x73, 0x2d, 0x76, 0x6f, 0x6c, 0x2d,
+ 0x6d, 0x69, 0x67, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2d, 0x61, 0x74, 0x74, 0x72, 0x3a,
+ 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x61,
+ 0x62, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
+ 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54,
+ 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72,
+ 0x5f, 0x69, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
+ 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72,
+ 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12,
+ 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x71,
+ 0x75, 0x6f, 0x74, 0x61, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73,
+ 0x75, 0x6d, 0x65, 0x73, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75,
+ 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22,
+ 0xdb, 0x02, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
+ 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x1a, 0x0a, 0x0a,
+ 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xe1, 0x01, 0x0a, 0x06, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69,
+ 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+ 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+ 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x08,
+ 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xaa, 0x0b,
+ 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72,
+ 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10,
+ 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c,
+ 0x1a, 0x0a, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x86, 0x08, 0x0a,
+ 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69,
+ 0x74, 0x79, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61,
+ 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x12,
+ 0x1a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63,
+ 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
+ 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73,
+ 0x74, 0x65, 0x6e, 0x63, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a,
+ 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64,
+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a,
+ 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+ 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x6c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c,
+ 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x74, 0x74,
+ 0x61, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e,
+ 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x69, 0x64, 0x12, 0x16,
+ 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x64, 0x5f, 0x61, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64,
+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72,
+ 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x25,
+ 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73,
+ 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61,
+ 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75,
+ 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x25,
+ 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61,
+ 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73,
+ 0x51, 0x75, 0x6f, 0x74, 0x61, 0x1a, 0xd2, 0x01, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74,
+ 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74,
+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73,
+ 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,
+ 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x5e, 0x0a, 0x0f, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a,
+ 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61,
+ 0x73, 0x63, 0x61, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x61, 0x73,
+ 0x63, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x55, 0x0a, 0x10, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12,
+ 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f,
+ 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73,
+ 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73,
+ 0x67, 0x22, 0xb2, 0x02, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
+ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65,
+ 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x06, 0x76,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x1a, 0x1e, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x7f, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x52, 0x65, 0x71, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbe, 0x0b, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x76,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52,
+ 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d,
+ 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a,
+ 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a, 0x2d, 0x0a, 0x05, 0x4c, 0x69,
+ 0x6e, 0x6b, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x72, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x68, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x6c, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x6c, 0x1a, 0x1e, 0x0a, 0x08, 0x4d, 0x65, 0x74,
+ 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x86, 0x08, 0x0a, 0x06, 0x56, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12,
+ 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f,
+ 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69,
+ 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08,
+ 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x62, 0x6f, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x73,
+ 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e,
+ 0x63, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+ 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6e,
+ 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x65,
+ 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b,
+ 0x73, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d,
+ 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20,
+ 0x0a, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x18, 0x0c, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
+ 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73,
+ 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e,
+ 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x5f, 0x76, 0x6f, 0x6c, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73,
+ 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61,
+ 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64,
+ 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x76,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69,
+ 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72,
+ 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73,
+ 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x19, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65,
+ 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65,
+ 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f,
+ 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x76,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63,
+ 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x18, 0x1c, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x51, 0x75, 0x6f,
+ 0x74, 0x61, 0x1a, 0xd2, 0x01, 0x0a, 0x0b, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12,
+ 0x23, 0x0a, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
+ 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64,
+ 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x61,
+ 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xaa, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1d,
+ 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a,
+ 0x04, 0x73, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x6f, 0x72,
+ 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x14,
+ 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06,
+ 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x61,
+ 0x72, 0x6b, 0x65, 0x72, 0x22, 0x88, 0x04, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x0c,
+ 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x52,
+ 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
+ 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a,
+ 0x31, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x22,
+ 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+ 0x65, 0x73, 0x1a, 0xaa, 0x02, 0x0a, 0x0c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73,
+ 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61,
+ 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65,
+ 0x63, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12,
+ 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x1f, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x73, 0x5f,
+ 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x6f, 0x73,
+ 0x2d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x61, 0x63, 0x63,
+ 0x65, 0x73, 0x73, 0x3a, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x20, 0x0a,
+ 0x0c, 0x71, 0x6f, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x71, 0x6f, 0x73, 0x53, 0x70, 0x65, 0x63, 0x73, 0x49, 0x64, 0x22,
+ 0xff, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65,
+ 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64,
+ 0x12, 0x45, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x2e,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x76, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x31, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61,
+ 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69,
+ 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61,
+ 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xd4, 0x01, 0x0a, 0x0b, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20,
+ 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x48, 0x0a, 0x1f, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62,
+ 0x6c, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x6f, 0x73, 0x2d, 0x76, 0x6f,
+ 0x6c, 0x75, 0x6d, 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73,
+ 0x3a, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x45, 0x0a, 0x0b, 0x65, 0x78,
+ 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f,
+ 0x73, 0x70, 0x65, 0x63, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65, 0x63,
+ 0x73, 0x22, 0xd3, 0x03, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74,
+ 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65,
+ 0x52, 0x65, 0x73, 0x70, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+ 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d,
+ 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x1a,
+ 0x31, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x12, 0x22,
+ 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+ 0x65, 0x73, 0x1a, 0x82, 0x02, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79,
+ 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f,
+ 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x73, 0x70, 0x65,
+ 0x63, 0x73, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x72, 0x61, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x48,
+ 0x0a, 0x1f, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
+ 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69,
+ 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x6f, 0x73, 0x2d, 0x76, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x69,
+ 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70,
+ 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50,
+ 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
+ 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a,
+ 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72,
+ 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0c, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x22, 0x53, 0x0a,
+ 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63,
+ 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d,
+ 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d,
+ 0x73, 0x67, 0x32, 0xc4, 0x15, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x12, 0x53, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69,
+ 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75,
+ 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x69,
+ 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4c, 0x69, 0x6d,
+ 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65,
+ 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a,
+ 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x65, 0x64, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a,
+ 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x12, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72,
+ 0x76, 0x65, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x42, 0x79, 0x49, 0x64,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71,
+ 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64,
+ 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a,
+ 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x12, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74,
+ 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76,
+ 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52,
+ 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x52,
+ 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x44, 0x0a, 0x0b, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x19,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65,
+ 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65,
+ 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61,
+ 0x76, 0x6f, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76, 0x6f,
+ 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x76,
+ 0x6f, 0x72, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a,
+ 0x12, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61,
+ 0x69, 0x6c, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69,
+ 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61,
+ 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77,
+ 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
+ 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65,
+ 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52,
+ 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x47, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73,
+ 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4a, 0x0a, 0x0d, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74,
+ 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
+ 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x12, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x20, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x72,
+ 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74,
+ 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53,
+ 0x75, 0x62, 0x6e, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x41, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x18, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d,
+ 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x12, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f,
+ 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f,
+ 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74,
+ 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x73, 0x49, 0x6d, 0x61, 0x67,
+ 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
+ 0x17, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74,
+ 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65,
+ 0x12, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65,
+ 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64,
+ 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e,
+ 0x6f, 0x64, 0x65, 0x12, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x0f, 0x53, 0x68, 0x6f, 0x77,
+ 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65,
+ 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0b, 0x4c, 0x69,
+ 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
+ 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+ 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x56, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44,
+ 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65, 0x74,
+ 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x44, 0x65,
+ 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73,
+ 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65,
+ 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e,
+ 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
+ 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x0c, 0x55, 0x70,
+ 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c,
+ 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61,
+ 0x63, 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63,
+ 0x6b, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
+ 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x70, 0x65,
+ 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x48, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x54,
+ 0x79, 0x70, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b,
+ 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19,
+ 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0c, 0x5a, 0x0a, 0x2f, 0x6f, 0x70,
+ 0x65, 0x6e, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_pcm_openstack_proto_rawDescOnce sync.Once
+ file_pcm_openstack_proto_rawDescData = file_pcm_openstack_proto_rawDesc
+)
+
+func file_pcm_openstack_proto_rawDescGZIP() []byte {
+ file_pcm_openstack_proto_rawDescOnce.Do(func() {
+ file_pcm_openstack_proto_rawDescData = protoimpl.X.CompressGZIP(file_pcm_openstack_proto_rawDescData)
+ })
+ return file_pcm_openstack_proto_rawDescData
+}
+
+var file_pcm_openstack_proto_msgTypes = make([]protoimpl.MessageInfo, 203)
+var file_pcm_openstack_proto_goTypes = []interface{}{
+ (*GetComputeLimitsReq)(nil), // 0: openstack.GetComputeLimitsReq
+ (*GetComputeLimitsResp)(nil), // 1: openstack.GetComputeLimitsResp
+ (*GetVolumeLimitsReq)(nil), // 2: openstack.GetVolumeLimitsReq
+ (*GetVolumeLimitsResp)(nil), // 3: openstack.GetVolumeLimitsResp
+ (*ListServersReq)(nil), // 4: openstack.ListServersReq
+ (*ListServersResp)(nil), // 5: openstack.ListServersResp
+ (*ListServersDetailedReq)(nil), // 6: openstack.ListServersDetailedReq
+ (*ListServersDetailedResp)(nil), // 7: openstack.ListServersDetailedResp
+ (*CreateServerReq)(nil), // 8: openstack.CreateServerReq
+ (*CreateServerResp)(nil), // 9: openstack.CreateServerResp
+ (*DeleteServerReq)(nil), // 10: openstack.DeleteServerReq
+ (*DeleteServerResp)(nil), // 11: openstack.DeleteServerResp
+ (*GetServersDetailedByIdReq)(nil), // 12: openstack.GetServersDetailedByIdReq
+ (*GetServersDetailedByIdResp)(nil), // 13: openstack.GetServersDetailedByIdResp
+ (*UpdateServerReq)(nil), // 14: openstack.UpdateServerReq
+ (*UpdateServerResp)(nil), // 15: openstack.UpdateServerResp
+ (*StartServerReq)(nil), // 16: openstack.StartServerReq
+ (*StartServerResp)(nil), // 17: openstack.StartServerResp
+ (*StopServerReq)(nil), // 18: openstack.StopServerReq
+ (*StopServerResp)(nil), // 19: openstack.StopServerResp
+ (*RebootServerReq)(nil), // 20: openstack.RebootServerReq
+ (*RebootServerResp)(nil), // 21: openstack.RebootServerResp
+ (*PauseServerReq)(nil), // 22: openstack.PauseServerReq
+ (*PauseServerResp)(nil), // 23: openstack.PauseServerResp
+ (*ListFlavorsDetailReq)(nil), // 24: openstack.ListFlavorsDetailReq
+ (*ListFlavorsDetailResp)(nil), // 25: openstack.ListFlavorsDetailResp
+ (*ShowNetworkDetailsReq)(nil), // 26: openstack.ShowNetworkDetailsReq
+ (*Network)(nil), // 27: openstack.Network
+ (*Segment)(nil), // 28: openstack.Segment
+ (*ShowNetworkDetailsResp)(nil), // 29: openstack.ShowNetworkDetailsResp
+ (*UpdateNetworkReq)(nil), // 30: openstack.UpdateNetworkReq
+ (*UpdateNetworkResp)(nil), // 31: openstack.UpdateNetworkResp
+ (*DeleteNetworkReq)(nil), // 32: openstack.DeleteNetworkReq
+ (*DeleteNetworkResp)(nil), // 33: openstack.DeleteNetworkResp
+ (*ListNetworksReq)(nil), // 34: openstack.ListNetworksReq
+ (*ListNetworksResp)(nil), // 35: openstack.ListNetworksResp
+ (*CreateNetworkReq)(nil), // 36: openstack.CreateNetworkReq
+ (*CreateNetworkResp)(nil), // 37: openstack.CreateNetworkResp
+ (*CreateSubnetReq)(nil), // 38: openstack.CreateSubnetReq
+ (*CreateSubnetResp)(nil), // 39: openstack.CreateSubnetResp
+ (*Subnet)(nil), // 40: openstack.Subnet
+ (*SubnetResp)(nil), // 41: openstack.SubnetResp
+ (*AllocationPools)(nil), // 42: openstack.Allocation_pools
+ (*BulkCreateNetworksReq)(nil), // 43: openstack.BulkCreateNetworksReq
+ (*BulkCreateNetworksResp)(nil), // 44: openstack.BulkCreateNetworksResp
+ (*ListNodesReq)(nil), // 45: openstack.ListNodesReq
+ (*ListNodesResp)(nil), // 46: openstack.ListNodesResp
+ (*CreateNodeReq)(nil), // 47: openstack.CreateNodeReq
+ (*CreateNodeResp)(nil), // 48: openstack.CreateNodeResp
+ (*DeleteNodeReq)(nil), // 49: openstack.DeleteNodeReq
+ (*DeleteNodeResp)(nil), // 50: openstack.DeleteNodeResp
+ (*ShowNodeDetailsReq)(nil), // 51: openstack.ShowNodeDetailsReq
+ (*ShowNodeDetailsResp)(nil), // 52: openstack.ShowNodeDetailsResp
+ (*CreateImageReq)(nil), // 53: openstack.CreateImageReq
+ (*Tags)(nil), // 54: openstack.Tags
+ (*CreateImageResp)(nil), // 55: openstack.CreateImageResp
+ (*ListImagesReq)(nil), // 56: openstack.ListImagesReq
+ (*ListImagesResp)(nil), // 57: openstack.ListImagesResp
+ (*DeleteImageReq)(nil), // 58: openstack.DeleteImageReq
+ (*DeleteImageResp)(nil), // 59: openstack.DeleteImageResp
+ (*UploadOsImageReq)(nil), // 60: openstack.UploadOsImageReq
+ (*UploadOsImageResp)(nil), // 61: openstack.UploadOsImageResp
+ (*ListVolumesReq)(nil), // 62: openstack.ListVolumesReq
+ (*ListVolumesResp)(nil), // 63: openstack.ListVolumesResp
+ (*ListVolumesDetailReq)(nil), // 64: openstack.ListVolumesDetailReq
+ (*ListVolumesDetailResp)(nil), // 65: openstack.ListVolumesDetailResp
+ (*CreateVolumeReq)(nil), // 66: openstack.CreateVolumeReq
+ (*CreateVolumeResp)(nil), // 67: openstack.CreateVolumeResp
+ (*DeleteVolumeReq)(nil), // 68: openstack.DeleteVolumeReq
+ (*DeleteVolumeResp)(nil), // 69: openstack.DeleteVolumeResp
+ (*UpdateVolumeReq)(nil), // 70: openstack.UpdateVolumeReq
+ (*UpdateVolumeResp)(nil), // 71: openstack.UpdateVolumeResp
+ (*ListVolumeTypesReq)(nil), // 72: openstack.ListVolumeTypesReq
+ (*ListVolumeTypesResp)(nil), // 73: openstack.ListVolumeTypesResp
+ (*CreateTypeReq)(nil), // 74: openstack.CreateTypeReq
+ (*CreateTypeResp)(nil), // 75: openstack.CreateTypeResp
+ (*DeleteTypeReq)(nil), // 76: openstack.DeleteTypeReq
+ (*DeleteTypeResp)(nil), // 77: openstack.DeleteTypeResp
+ (*GetComputeLimitsResp_Rate)(nil), // 78: openstack.GetComputeLimitsResp.Rate
+ (*GetComputeLimitsResp_Absolute)(nil), // 79: openstack.GetComputeLimitsResp.Absolute
+ (*GetComputeLimitsResp_Limits)(nil), // 80: openstack.GetComputeLimitsResp.Limits
+ (*GetVolumeLimitsResp_Rate)(nil), // 81: openstack.GetVolumeLimitsResp.Rate
+ (*GetVolumeLimitsResp_Absolute)(nil), // 82: openstack.GetVolumeLimitsResp.Absolute
+ (*GetVolumeLimitsResp_Limits)(nil), // 83: openstack.GetVolumeLimitsResp.Limits
+ (*ListServersResp_Links)(nil), // 84: openstack.ListServersResp.Links
+ (*ListServersResp_Servers)(nil), // 85: openstack.ListServersResp.Servers
+ (*ListServersResp_ServersLinks)(nil), // 86: openstack.ListServersResp.Servers_links
+ (*ListServersDetailedResp_Private)(nil), // 87: openstack.ListServersDetailedResp.Private
+ (*ListServersDetailedResp_Addresses)(nil), // 88: openstack.ListServersDetailedResp.Addresses
+ (*ListServersDetailedResp_ExtraSpecs)(nil), // 89: openstack.ListServersDetailedResp.Extra_specs
+ (*ListServersDetailedResp_Flavor)(nil), // 90: openstack.ListServersDetailedResp.Flavor
+ (*ListServersDetailedResp_Links)(nil), // 91: openstack.ListServersDetailedResp.Links
+ (*ListServersDetailedResp_Image)(nil), // 92: openstack.ListServersDetailedResp.Image
+ (*ListServersDetailedResp_Links1)(nil), // 93: openstack.ListServersDetailedResp.Links1
+ (*ListServersDetailedResp_Metadata)(nil), // 94: openstack.ListServersDetailedResp.Metadata
+ (*ListServersDetailedResp_SecurityGroups)(nil), // 95: openstack.ListServersDetailedResp.Security_groups
+ (*ListServersDetailedResp_Servers)(nil), // 96: openstack.ListServersDetailedResp.Servers
+ (*CreateServerReq_Networks)(nil), // 97: openstack.CreateServerReq.Networks
+ (*CreateServerReq_BlockDeviceMappingV2)(nil), // 98: openstack.CreateServerReq.Block_device_mapping_v2
+ (*CreateServerReq_Metadata)(nil), // 99: openstack.CreateServerReq.Metadata
+ (*CreateServerReq_Personality)(nil), // 100: openstack.CreateServerReq.Personality
+ (*CreateServerReq_SecurityGroups)(nil), // 101: openstack.CreateServerReq.Security_groups
+ (*CreateServerReq_Server)(nil), // 102: openstack.CreateServerReq.Server
+ (*CreateServerReq_OsSchHntSchedulerHints)(nil), // 103: openstack.CreateServerReq.Os_sch_hnt_scheduler_hints
+ (*CreateServerResp_Links)(nil), // 104: openstack.CreateServerResp.Links
+ (*CreateServerResp_SecurityGroups)(nil), // 105: openstack.CreateServerResp.Security_groups
+ (*CreateServerResp_Server)(nil), // 106: openstack.CreateServerResp.Server
+ (*GetServersDetailedByIdResp_Private)(nil), // 107: openstack.GetServersDetailedByIdResp.Private
+ (*GetServersDetailedByIdResp_Addresses)(nil), // 108: openstack.GetServersDetailedByIdResp.Addresses
+ (*GetServersDetailedByIdResp_ExtraSpecs)(nil), // 109: openstack.GetServersDetailedByIdResp.Extra_specs
+ (*GetServersDetailedByIdResp_Flavor)(nil), // 110: openstack.GetServersDetailedByIdResp.Flavor
+ (*GetServersDetailedByIdResp_Links)(nil), // 111: openstack.GetServersDetailedByIdResp.Links
+ (*GetServersDetailedByIdResp_Image)(nil), // 112: openstack.GetServersDetailedByIdResp.Image
+ (*GetServersDetailedByIdResp_Links1)(nil), // 113: openstack.GetServersDetailedByIdResp.Links1
+ (*GetServersDetailedByIdResp_Metadata)(nil), // 114: openstack.GetServersDetailedByIdResp.Metadata
+ (*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached)(nil), // 115: openstack.GetServersDetailedByIdResp.Os_extended_volumes_volumes_attached
+ (*GetServersDetailedByIdResp_Fault)(nil), // 116: openstack.GetServersDetailedByIdResp.Fault
+ (*GetServersDetailedByIdResp_SecurityGroups)(nil), // 117: openstack.GetServersDetailedByIdResp.Security_groups
+ (*GetServersDetailedByIdResp_Servers)(nil), // 118: openstack.GetServersDetailedByIdResp.Servers
+ (*UpdateServerReq_Server)(nil), // 119: openstack.UpdateServerReq.Server
+ (*UpdateServerResp_Private)(nil), // 120: openstack.UpdateServerResp.Private
+ (*UpdateServerResp_Addresses)(nil), // 121: openstack.UpdateServerResp.Addresses
+ (*UpdateServerResp_ExtraSpecs)(nil), // 122: openstack.UpdateServerResp.Extra_specs
+ (*UpdateServerResp_Flavor)(nil), // 123: openstack.UpdateServerResp.Flavor
+ (*UpdateServerResp_Links)(nil), // 124: openstack.UpdateServerResp.Links
+ (*UpdateServerResp_Image)(nil), // 125: openstack.UpdateServerResp.Image
+ (*UpdateServerResp_Links1)(nil), // 126: openstack.UpdateServerResp.Links1
+ (*UpdateServerResp_Metadata)(nil), // 127: openstack.UpdateServerResp.Metadata
+ (*UpdateServerResp_SecurityGroups)(nil), // 128: openstack.UpdateServerResp.Security_groups
+ (*UpdateServerResp_Server)(nil), // 129: openstack.UpdateServerResp.Server
+ (*StartServerReq_OsStart)(nil), // 130: openstack.StartServerReq.OsStart
+ (*StopServerReq_OsStop)(nil), // 131: openstack.StopServerReq.OsStop
+ (*RebootServerReq_Reboot)(nil), // 132: openstack.RebootServerReq.Reboot
+ (*PauseServerReq_OsPause)(nil), // 133: openstack.PauseServerReq.OsPause
+ (*ListFlavorsDetailResp_Flavor)(nil), // 134: openstack.ListFlavorsDetailResp.Flavor
+ (*ListFlavorsDetailResp_ExtraSpecs)(nil), // 135: openstack.ListFlavorsDetailResp.Extra_specs
+ (*ListFlavorsDetailResp_Links)(nil), // 136: openstack.ListFlavorsDetailResp.Links
+ (*ListNodesResp_Links)(nil), // 137: openstack.ListNodesResp.Links
+ (*ListNodesResp_Nodes)(nil), // 138: openstack.ListNodesResp.Nodes
+ (*CreateNodeReq_DriverInfo)(nil), // 139: openstack.CreateNodeReq.Driver_info
+ (*CreateNodeReq_Properties)(nil), // 140: openstack.CreateNodeReq.Properties
+ (*CreateNodeReq_InstanceInfo)(nil), // 141: openstack.CreateNodeReq.Instance_info
+ (*CreateNodeReq_NetworkData)(nil), // 142: openstack.CreateNodeReq.Network_data
+ (*CreateNodeResp_CleanStep)(nil), // 143: openstack.CreateNodeResp.Clean_step
+ (*CreateNodeResp_DeployStep)(nil), // 144: openstack.CreateNodeResp.Deploy_step
+ (*CreateNodeResp_DriverInfo)(nil), // 145: openstack.CreateNodeResp.Driver_info
+ (*CreateNodeResp_DriverInternalInfo)(nil), // 146: openstack.CreateNodeResp.Driver_internal_info
+ (*CreateNodeResp_Extra)(nil), // 147: openstack.CreateNodeResp.Extra
+ (*CreateNodeResp_InstanceInfo)(nil), // 148: openstack.CreateNodeResp.Instance_info
+ (*CreateNodeResp_Links)(nil), // 149: openstack.CreateNodeResp.Links
+ (*CreateNodeResp_NetworkData)(nil), // 150: openstack.CreateNodeResp.Network_data
+ (*CreateNodeResp_Portgroups)(nil), // 151: openstack.CreateNodeResp.Portgroups
+ (*CreateNodeResp_Ports)(nil), // 152: openstack.CreateNodeResp.Ports
+ (*CreateNodeResp_Properties)(nil), // 153: openstack.CreateNodeResp.Properties
+ (*CreateNodeResp_RaidConfig)(nil), // 154: openstack.CreateNodeResp.Raid_config
+ (*CreateNodeResp_States)(nil), // 155: openstack.CreateNodeResp.States
+ (*CreateNodeResp_TargetRaidConfig)(nil), // 156: openstack.CreateNodeResp.Target_raid_config
+ (*CreateNodeResp_Volume)(nil), // 157: openstack.CreateNodeResp.Volume
+ (*ShowNodeDetailsReq_Fields)(nil), // 158: openstack.ShowNodeDetailsReq.Fields
+ (*ShowNodeDetailsResp_CleanStep)(nil), // 159: openstack.ShowNodeDetailsResp.Clean_step
+ (*ShowNodeDetailsResp_DeployStep)(nil), // 160: openstack.ShowNodeDetailsResp.Deploy_step
+ (*ShowNodeDetailsResp_DriverInfo)(nil), // 161: openstack.ShowNodeDetailsResp.Driver_info
+ (*ShowNodeDetailsResp_DriverInternalInfo)(nil), // 162: openstack.ShowNodeDetailsResp.Driver_internal_info
+ (*ShowNodeDetailsResp_Extra)(nil), // 163: openstack.ShowNodeDetailsResp.Extra
+ (*ShowNodeDetailsResp_InstanceInfo)(nil), // 164: openstack.ShowNodeDetailsResp.Instance_info
+ (*ShowNodeDetailsResp_Links)(nil), // 165: openstack.ShowNodeDetailsResp.Links
+ (*ShowNodeDetailsResp_NetworkData)(nil), // 166: openstack.ShowNodeDetailsResp.Network_data
+ (*ShowNodeDetailsResp_Portgroups)(nil), // 167: openstack.ShowNodeDetailsResp.Portgroups
+ (*ShowNodeDetailsResp_Ports)(nil), // 168: openstack.ShowNodeDetailsResp.Ports
+ (*ShowNodeDetailsResp_Properties)(nil), // 169: openstack.ShowNodeDetailsResp.Properties
+ (*ShowNodeDetailsResp_RaidConfig)(nil), // 170: openstack.ShowNodeDetailsResp.Raid_config
+ (*ShowNodeDetailsResp_States)(nil), // 171: openstack.ShowNodeDetailsResp.States
+ (*ShowNodeDetailsResp_TargetRaidConfig)(nil), // 172: openstack.ShowNodeDetailsResp.Target_raid_config
+ (*ShowNodeDetailsResp_Volume)(nil), // 173: openstack.ShowNodeDetailsResp.Volume
+ (*ShowNodeDetailsResp_Traits)(nil), // 174: openstack.ShowNodeDetailsResp.Traits
+ (*CreateImageResp_Tags)(nil), // 175: openstack.CreateImageResp.Tags
+ (*CreateImageResp_Locations)(nil), // 176: openstack.CreateImageResp.Locations
+ (*ListImagesResp_Images)(nil), // 177: openstack.ListImagesResp.Images
+ (*ListImagesResp_Tags)(nil), // 178: openstack.ListImagesResp.Tags
+ (*ListVolumesResp_Links)(nil), // 179: openstack.ListVolumesResp.Links
+ (*ListVolumesResp_Volumes)(nil), // 180: openstack.ListVolumesResp.Volumes
+ (*ListVolumesDetailResp_Links)(nil), // 181: openstack.ListVolumesDetailResp.Links
+ (*ListVolumesDetailResp_Attachments)(nil), // 182: openstack.ListVolumesDetailResp.Attachments
+ (*ListVolumesDetailResp_Metadata)(nil), // 183: openstack.ListVolumesDetailResp.Metadata
+ (*ListVolumesDetailResp_VolumeDetail)(nil), // 184: openstack.ListVolumesDetailResp.VolumeDetail
+ (*CreateVolumeReq_Metadata)(nil), // 185: openstack.CreateVolumeReq.Metadata
+ (*CreateVolumeReq_Volume)(nil), // 186: openstack.CreateVolumeReq.Volume
+ (*CreateVolumeResp_Links)(nil), // 187: openstack.CreateVolumeResp.Links
+ (*CreateVolumeResp_Metadata)(nil), // 188: openstack.CreateVolumeResp.Metadata
+ (*CreateVolumeResp_Volume)(nil), // 189: openstack.CreateVolumeResp.Volume
+ (*CreateVolumeResp_Attachments)(nil), // 190: openstack.CreateVolumeResp.Attachments
+ (*UpdateVolumeReq_Metadata)(nil), // 191: openstack.UpdateVolumeReq.Metadata
+ (*UpdateVolumeReq_Volume)(nil), // 192: openstack.UpdateVolumeReq.Volume
+ (*UpdateVolumeResp_Links)(nil), // 193: openstack.UpdateVolumeResp.Links
+ (*UpdateVolumeResp_Metadata)(nil), // 194: openstack.UpdateVolumeResp.Metadata
+ (*UpdateVolumeResp_Volume)(nil), // 195: openstack.UpdateVolumeResp.Volume
+ (*UpdateVolumeResp_Attachments)(nil), // 196: openstack.UpdateVolumeResp.Attachments
+ (*ListVolumeTypesResp_ExtraSpecs)(nil), // 197: openstack.ListVolumeTypesResp.Extra_specs
+ (*ListVolumeTypesResp_VolumeTypes)(nil), // 198: openstack.ListVolumeTypesResp.Volume_types
+ (*CreateTypeReq_ExtraSpecs)(nil), // 199: openstack.CreateTypeReq.Extra_specs
+ (*CreateTypeReq_VolumeType)(nil), // 200: openstack.CreateTypeReq.Volume_type
+ (*CreateTypeResp_ExtraSpecs)(nil), // 201: openstack.CreateTypeResp.Extra_specs
+ (*CreateTypeResp_VolumeType)(nil), // 202: openstack.CreateTypeResp.Volume_type
+}
+var file_pcm_openstack_proto_depIdxs = []int32{
+ 80, // 0: openstack.GetComputeLimitsResp.limits:type_name -> openstack.GetComputeLimitsResp.Limits
+ 83, // 1: openstack.GetVolumeLimitsResp.limits:type_name -> openstack.GetVolumeLimitsResp.Limits
+ 85, // 2: openstack.ListServersResp.servers:type_name -> openstack.ListServersResp.Servers
+ 86, // 3: openstack.ListServersResp.servers_links:type_name -> openstack.ListServersResp.Servers_links
+ 96, // 4: openstack.ListServersDetailedResp.servers:type_name -> openstack.ListServersDetailedResp.Servers
+ 102, // 5: openstack.CreateServerReq.server:type_name -> openstack.CreateServerReq.Server
+ 106, // 6: openstack.CreateServerResp.server:type_name -> openstack.CreateServerResp.Server
+ 118, // 7: openstack.GetServersDetailedByIdResp.server:type_name -> openstack.GetServersDetailedByIdResp.Servers
+ 119, // 8: openstack.UpdateServerReq.server:type_name -> openstack.UpdateServerReq.Server
+ 129, // 9: openstack.UpdateServerResp.server:type_name -> openstack.UpdateServerResp.Server
+ 130, // 10: openstack.StartServerReq.osStart:type_name -> openstack.StartServerReq.OsStart
+ 131, // 11: openstack.StopServerReq.osStop:type_name -> openstack.StopServerReq.OsStop
+ 132, // 12: openstack.RebootServerReq.reboot:type_name -> openstack.RebootServerReq.Reboot
+ 133, // 13: openstack.PauseServerReq.osPause:type_name -> openstack.PauseServerReq.OsPause
+ 134, // 14: openstack.ListFlavorsDetailResp.flavors:type_name -> openstack.ListFlavorsDetailResp.Flavor
+ 27, // 15: openstack.ShowNetworkDetailsResp.network:type_name -> openstack.Network
+ 28, // 16: openstack.ShowNetworkDetailsResp.segments:type_name -> openstack.Segment
+ 27, // 17: openstack.UpdateNetworkReq.network:type_name -> openstack.Network
+ 28, // 18: openstack.UpdateNetworkReq.segments:type_name -> openstack.Segment
+ 27, // 19: openstack.UpdateNetworkResp.network:type_name -> openstack.Network
+ 28, // 20: openstack.UpdateNetworkResp.segments:type_name -> openstack.Segment
+ 27, // 21: openstack.ListNetworksResp.networks:type_name -> openstack.Network
+ 27, // 22: openstack.CreateNetworkReq.network:type_name -> openstack.Network
+ 27, // 23: openstack.CreateNetworkResp.network:type_name -> openstack.Network
+ 40, // 24: openstack.CreateSubnetReq.subnet:type_name -> openstack.Subnet
+ 41, // 25: openstack.CreateSubnetResp.subnet:type_name -> openstack.SubnetResp
+ 42, // 26: openstack.Subnet.allocation_pools:type_name -> openstack.Allocation_pools
+ 42, // 27: openstack.SubnetResp.allocation_pools:type_name -> openstack.Allocation_pools
+ 27, // 28: openstack.BulkCreateNetworksReq.networks:type_name -> openstack.Network
+ 28, // 29: openstack.BulkCreateNetworksReq.segments:type_name -> openstack.Segment
+ 27, // 30: openstack.BulkCreateNetworksResp.networks:type_name -> openstack.Network
+ 28, // 31: openstack.BulkCreateNetworksResp.segments:type_name -> openstack.Segment
+ 138, // 32: openstack.ListNodesResp.nodes:type_name -> openstack.ListNodesResp.Nodes
+ 139, // 33: openstack.CreateNodeReq.driver_info:type_name -> openstack.CreateNodeReq.Driver_info
+ 140, // 34: openstack.CreateNodeReq.properties:type_name -> openstack.CreateNodeReq.Properties
+ 141, // 35: openstack.CreateNodeReq.instance_info:type_name -> openstack.CreateNodeReq.Instance_info
+ 142, // 36: openstack.CreateNodeReq.network_data:type_name -> openstack.CreateNodeReq.Network_data
+ 145, // 37: openstack.CreateNodeResp.driver_info:type_name -> openstack.CreateNodeResp.Driver_info
+ 146, // 38: openstack.CreateNodeResp.driver_internal_info:type_name -> openstack.CreateNodeResp.Driver_internal_info
+ 153, // 39: openstack.CreateNodeResp.properties:type_name -> openstack.CreateNodeResp.Properties
+ 148, // 40: openstack.CreateNodeResp.instance_info:type_name -> openstack.CreateNodeResp.Instance_info
+ 147, // 41: openstack.CreateNodeResp.extra:type_name -> openstack.CreateNodeResp.Extra
+ 154, // 42: openstack.CreateNodeResp.raid_config:type_name -> openstack.CreateNodeResp.Raid_config
+ 156, // 43: openstack.CreateNodeResp.target_raid_config:type_name -> openstack.CreateNodeResp.Target_raid_config
+ 143, // 44: openstack.CreateNodeResp.clean_step:type_name -> openstack.CreateNodeResp.Clean_step
+ 144, // 45: openstack.CreateNodeResp.deploy_step:type_name -> openstack.CreateNodeResp.Deploy_step
+ 149, // 46: openstack.CreateNodeResp.links:type_name -> openstack.CreateNodeResp.Links
+ 152, // 47: openstack.CreateNodeResp.ports:type_name -> openstack.CreateNodeResp.Ports
+ 151, // 48: openstack.CreateNodeResp.portgroups:type_name -> openstack.CreateNodeResp.Portgroups
+ 155, // 49: openstack.CreateNodeResp.states:type_name -> openstack.CreateNodeResp.States
+ 157, // 50: openstack.CreateNodeResp.volume:type_name -> openstack.CreateNodeResp.Volume
+ 150, // 51: openstack.CreateNodeResp.network_data:type_name -> openstack.CreateNodeResp.Network_data
+ 158, // 52: openstack.ShowNodeDetailsReq.fields:type_name -> openstack.ShowNodeDetailsReq.Fields
+ 161, // 53: openstack.ShowNodeDetailsResp.driver_info:type_name -> openstack.ShowNodeDetailsResp.Driver_info
+ 162, // 54: openstack.ShowNodeDetailsResp.driver_internal_info:type_name -> openstack.ShowNodeDetailsResp.Driver_internal_info
+ 169, // 55: openstack.ShowNodeDetailsResp.properties:type_name -> openstack.ShowNodeDetailsResp.Properties
+ 164, // 56: openstack.ShowNodeDetailsResp.instance_info:type_name -> openstack.ShowNodeDetailsResp.Instance_info
+ 163, // 57: openstack.ShowNodeDetailsResp.extra:type_name -> openstack.ShowNodeDetailsResp.Extra
+ 170, // 58: openstack.ShowNodeDetailsResp.raid_config:type_name -> openstack.ShowNodeDetailsResp.Raid_config
+ 172, // 59: openstack.ShowNodeDetailsResp.target_raid_config:type_name -> openstack.ShowNodeDetailsResp.Target_raid_config
+ 159, // 60: openstack.ShowNodeDetailsResp.clean_step:type_name -> openstack.ShowNodeDetailsResp.Clean_step
+ 160, // 61: openstack.ShowNodeDetailsResp.deploy_step:type_name -> openstack.ShowNodeDetailsResp.Deploy_step
+ 165, // 62: openstack.ShowNodeDetailsResp.links:type_name -> openstack.ShowNodeDetailsResp.Links
+ 168, // 63: openstack.ShowNodeDetailsResp.ports:type_name -> openstack.ShowNodeDetailsResp.Ports
+ 167, // 64: openstack.ShowNodeDetailsResp.portgroups:type_name -> openstack.ShowNodeDetailsResp.Portgroups
+ 171, // 65: openstack.ShowNodeDetailsResp.states:type_name -> openstack.ShowNodeDetailsResp.States
+ 174, // 66: openstack.ShowNodeDetailsResp.traits:type_name -> openstack.ShowNodeDetailsResp.Traits
+ 173, // 67: openstack.ShowNodeDetailsResp.volume:type_name -> openstack.ShowNodeDetailsResp.Volume
+ 166, // 68: openstack.ShowNodeDetailsResp.network_data:type_name -> openstack.ShowNodeDetailsResp.Network_data
+ 54, // 69: openstack.CreateImageReq.tags:type_name -> openstack.Tags
+ 175, // 70: openstack.CreateImageResp.tags:type_name -> openstack.CreateImageResp.Tags
+ 176, // 71: openstack.CreateImageResp.locations:type_name -> openstack.CreateImageResp.Locations
+ 177, // 72: openstack.ListImagesResp.images:type_name -> openstack.ListImagesResp.Images
+ 180, // 73: openstack.ListVolumesResp.volumes:type_name -> openstack.ListVolumesResp.Volumes
+ 184, // 74: openstack.ListVolumesDetailResp.volumes:type_name -> openstack.ListVolumesDetailResp.VolumeDetail
+ 186, // 75: openstack.CreateVolumeReq.volume:type_name -> openstack.CreateVolumeReq.Volume
+ 189, // 76: openstack.CreateVolumeResp.volume:type_name -> openstack.CreateVolumeResp.Volume
+ 192, // 77: openstack.UpdateVolumeReq.volume:type_name -> openstack.UpdateVolumeReq.Volume
+ 195, // 78: openstack.UpdateVolumeResp.volume:type_name -> openstack.UpdateVolumeResp.Volume
+ 198, // 79: openstack.ListVolumeTypesResp.volume_types:type_name -> openstack.ListVolumeTypesResp.Volume_types
+ 200, // 80: openstack.CreateTypeReq.volume_type:type_name -> openstack.CreateTypeReq.Volume_type
+ 202, // 81: openstack.CreateTypeResp.volume_type:type_name -> openstack.CreateTypeResp.Volume_type
+ 78, // 82: openstack.GetComputeLimitsResp.Limits.rate:type_name -> openstack.GetComputeLimitsResp.Rate
+ 79, // 83: openstack.GetComputeLimitsResp.Limits.absolute:type_name -> openstack.GetComputeLimitsResp.Absolute
+ 81, // 84: openstack.GetVolumeLimitsResp.Limits.rate:type_name -> openstack.GetVolumeLimitsResp.Rate
+ 82, // 85: openstack.GetVolumeLimitsResp.Limits.absolute:type_name -> openstack.GetVolumeLimitsResp.Absolute
+ 84, // 86: openstack.ListServersResp.Servers.links:type_name -> openstack.ListServersResp.Links
+ 87, // 87: openstack.ListServersDetailedResp.Addresses.private:type_name -> openstack.ListServersDetailedResp.Private
+ 93, // 88: openstack.ListServersDetailedResp.Flavor.links:type_name -> openstack.ListServersDetailedResp.Links1
+ 91, // 89: openstack.ListServersDetailedResp.Image.links:type_name -> openstack.ListServersDetailedResp.Links
+ 88, // 90: openstack.ListServersDetailedResp.Servers.addresses:type_name -> openstack.ListServersDetailedResp.Addresses
+ 90, // 91: openstack.ListServersDetailedResp.Servers.flavor:type_name -> openstack.ListServersDetailedResp.Flavor
+ 92, // 92: openstack.ListServersDetailedResp.Servers.image:type_name -> openstack.ListServersDetailedResp.Image
+ 93, // 93: openstack.ListServersDetailedResp.Servers.links:type_name -> openstack.ListServersDetailedResp.Links1
+ 94, // 94: openstack.ListServersDetailedResp.Servers.metadata:type_name -> openstack.ListServersDetailedResp.Metadata
+ 95, // 95: openstack.ListServersDetailedResp.Servers.security_groups:type_name -> openstack.ListServersDetailedResp.Security_groups
+ 97, // 96: openstack.CreateServerReq.Server.networks:type_name -> openstack.CreateServerReq.Networks
+ 98, // 97: openstack.CreateServerReq.Server.block_device_mapping_v2:type_name -> openstack.CreateServerReq.Block_device_mapping_v2
+ 99, // 98: openstack.CreateServerReq.Server.metadata:type_name -> openstack.CreateServerReq.Metadata
+ 100, // 99: openstack.CreateServerReq.Server.personality:type_name -> openstack.CreateServerReq.Personality
+ 101, // 100: openstack.CreateServerReq.Server.security_groups:type_name -> openstack.CreateServerReq.Security_groups
+ 104, // 101: openstack.CreateServerResp.Server.links:type_name -> openstack.CreateServerResp.Links
+ 105, // 102: openstack.CreateServerResp.Server.security_groups:type_name -> openstack.CreateServerResp.Security_groups
+ 107, // 103: openstack.GetServersDetailedByIdResp.Addresses.private:type_name -> openstack.GetServersDetailedByIdResp.Private
+ 109, // 104: openstack.GetServersDetailedByIdResp.Flavor.extra_specs:type_name -> openstack.GetServersDetailedByIdResp.Extra_specs
+ 111, // 105: openstack.GetServersDetailedByIdResp.Image.links:type_name -> openstack.GetServersDetailedByIdResp.Links
+ 108, // 106: openstack.GetServersDetailedByIdResp.Servers.addresses:type_name -> openstack.GetServersDetailedByIdResp.Addresses
+ 110, // 107: openstack.GetServersDetailedByIdResp.Servers.flavor:type_name -> openstack.GetServersDetailedByIdResp.Flavor
+ 112, // 108: openstack.GetServersDetailedByIdResp.Servers.image:type_name -> openstack.GetServersDetailedByIdResp.Image
+ 113, // 109: openstack.GetServersDetailedByIdResp.Servers.links:type_name -> openstack.GetServersDetailedByIdResp.Links1
+ 114, // 110: openstack.GetServersDetailedByIdResp.Servers.metadata:type_name -> openstack.GetServersDetailedByIdResp.Metadata
+ 115, // 111: openstack.GetServersDetailedByIdResp.Servers.os_extended_volumes_volumes_attached:type_name -> openstack.GetServersDetailedByIdResp.Os_extended_volumes_volumes_attached
+ 116, // 112: openstack.GetServersDetailedByIdResp.Servers.fault:type_name -> openstack.GetServersDetailedByIdResp.Fault
+ 117, // 113: openstack.GetServersDetailedByIdResp.Servers.security_groups:type_name -> openstack.GetServersDetailedByIdResp.Security_groups
+ 120, // 114: openstack.UpdateServerResp.Addresses.private:type_name -> openstack.UpdateServerResp.Private
+ 122, // 115: openstack.UpdateServerResp.Flavor.extra_specs:type_name -> openstack.UpdateServerResp.Extra_specs
+ 124, // 116: openstack.UpdateServerResp.Image.links:type_name -> openstack.UpdateServerResp.Links
+ 121, // 117: openstack.UpdateServerResp.Server.addresses:type_name -> openstack.UpdateServerResp.Addresses
+ 123, // 118: openstack.UpdateServerResp.Server.flavor:type_name -> openstack.UpdateServerResp.Flavor
+ 125, // 119: openstack.UpdateServerResp.Server.image:type_name -> openstack.UpdateServerResp.Image
+ 126, // 120: openstack.UpdateServerResp.Server.links:type_name -> openstack.UpdateServerResp.Links1
+ 127, // 121: openstack.UpdateServerResp.Server.metadata:type_name -> openstack.UpdateServerResp.Metadata
+ 128, // 122: openstack.UpdateServerResp.Server.security_groups:type_name -> openstack.UpdateServerResp.Security_groups
+ 135, // 123: openstack.ListFlavorsDetailResp.Flavor.extra_specs:type_name -> openstack.ListFlavorsDetailResp.Extra_specs
+ 136, // 124: openstack.ListFlavorsDetailResp.Flavor.links:type_name -> openstack.ListFlavorsDetailResp.Links
+ 137, // 125: openstack.ListNodesResp.Nodes.links:type_name -> openstack.ListNodesResp.Links
+ 178, // 126: openstack.ListImagesResp.Images.tags:type_name -> openstack.ListImagesResp.Tags
+ 179, // 127: openstack.ListVolumesResp.Volumes.links:type_name -> openstack.ListVolumesResp.Links
+ 181, // 128: openstack.ListVolumesDetailResp.VolumeDetail.links:type_name -> openstack.ListVolumesDetailResp.Links
+ 182, // 129: openstack.ListVolumesDetailResp.VolumeDetail.attachments:type_name -> openstack.ListVolumesDetailResp.Attachments
+ 183, // 130: openstack.ListVolumesDetailResp.VolumeDetail.metadata:type_name -> openstack.ListVolumesDetailResp.Metadata
+ 185, // 131: openstack.CreateVolumeReq.Volume.metadata:type_name -> openstack.CreateVolumeReq.Metadata
+ 190, // 132: openstack.CreateVolumeResp.Volume.attachments:type_name -> openstack.CreateVolumeResp.Attachments
+ 187, // 133: openstack.CreateVolumeResp.Volume.links:type_name -> openstack.CreateVolumeResp.Links
+ 188, // 134: openstack.CreateVolumeResp.Volume.metadata:type_name -> openstack.CreateVolumeResp.Metadata
+ 191, // 135: openstack.UpdateVolumeReq.Volume.metadata:type_name -> openstack.UpdateVolumeReq.Metadata
+ 196, // 136: openstack.UpdateVolumeResp.Volume.attachments:type_name -> openstack.UpdateVolumeResp.Attachments
+ 193, // 137: openstack.UpdateVolumeResp.Volume.links:type_name -> openstack.UpdateVolumeResp.Links
+ 194, // 138: openstack.UpdateVolumeResp.Volume.metadata:type_name -> openstack.UpdateVolumeResp.Metadata
+ 197, // 139: openstack.ListVolumeTypesResp.Volume_types.extra_specs:type_name -> openstack.ListVolumeTypesResp.Extra_specs
+ 199, // 140: openstack.CreateTypeReq.Volume_type.extra_specs:type_name -> openstack.CreateTypeReq.Extra_specs
+ 201, // 141: openstack.CreateTypeResp.Volume_type.extra_specs:type_name -> openstack.CreateTypeResp.Extra_specs
+ 0, // 142: openstack.Openstack.GetComputeLimits:input_type -> openstack.GetComputeLimitsReq
+ 2, // 143: openstack.Openstack.GetVolumeLimits:input_type -> openstack.GetVolumeLimitsReq
+ 4, // 144: openstack.Openstack.ListServers:input_type -> openstack.ListServersReq
+ 6, // 145: openstack.Openstack.ListServersDetailed:input_type -> openstack.ListServersDetailedReq
+ 8, // 146: openstack.Openstack.CreateServer:input_type -> openstack.CreateServerReq
+ 10, // 147: openstack.Openstack.DeleteServer:input_type -> openstack.DeleteServerReq
+ 12, // 148: openstack.Openstack.GetServersDetailedById:input_type -> openstack.GetServersDetailedByIdReq
+ 14, // 149: openstack.Openstack.UpdateServer:input_type -> openstack.UpdateServerReq
+ 16, // 150: openstack.Openstack.StartServer:input_type -> openstack.StartServerReq
+ 18, // 151: openstack.Openstack.StopServer:input_type -> openstack.StopServerReq
+ 20, // 152: openstack.Openstack.RebootServer:input_type -> openstack.RebootServerReq
+ 22, // 153: openstack.Openstack.PauseServer:input_type -> openstack.PauseServerReq
+ 24, // 154: openstack.Openstack.ListFlavorsDetail:input_type -> openstack.ListFlavorsDetailReq
+ 26, // 155: openstack.Openstack.ShowNetworkDetails:input_type -> openstack.ShowNetworkDetailsReq
+ 30, // 156: openstack.Openstack.UpdateNetwork:input_type -> openstack.UpdateNetworkReq
+ 32, // 157: openstack.Openstack.DeleteNetwork:input_type -> openstack.DeleteNetworkReq
+ 34, // 158: openstack.Openstack.ListNetworks:input_type -> openstack.ListNetworksReq
+ 36, // 159: openstack.Openstack.CreateNetwork:input_type -> openstack.CreateNetworkReq
+ 43, // 160: openstack.Openstack.BulkCreateNetworks:input_type -> openstack.BulkCreateNetworksReq
+ 38, // 161: openstack.Openstack.CreateSubnet:input_type -> openstack.CreateSubnetReq
+ 53, // 162: openstack.Openstack.CreateImage:input_type -> openstack.CreateImageReq
+ 56, // 163: openstack.Openstack.ListImages:input_type -> openstack.ListImagesReq
+ 58, // 164: openstack.Openstack.DeleteImage:input_type -> openstack.DeleteImageReq
+ 60, // 165: openstack.Openstack.UploadImage:input_type -> openstack.UploadOsImageReq
+ 45, // 166: openstack.Openstack.ListNodes:input_type -> openstack.ListNodesReq
+ 47, // 167: openstack.Openstack.CreateNode:input_type -> openstack.CreateNodeReq
+ 49, // 168: openstack.Openstack.DeleteNode:input_type -> openstack.DeleteNodeReq
+ 51, // 169: openstack.Openstack.ShowNodeDetails:input_type -> openstack.ShowNodeDetailsReq
+ 62, // 170: openstack.Openstack.ListVolumes:input_type -> openstack.ListVolumesReq
+ 64, // 171: openstack.Openstack.ListVolumesDetail:input_type -> openstack.ListVolumesDetailReq
+ 66, // 172: openstack.Openstack.CreateVolume:input_type -> openstack.CreateVolumeReq
+ 68, // 173: openstack.Openstack.DeleteVolume:input_type -> openstack.DeleteVolumeReq
+ 70, // 174: openstack.Openstack.UpdateVolume:input_type -> openstack.UpdateVolumeReq
+ 72, // 175: openstack.Openstack.ListVolumeTypes:input_type -> openstack.ListVolumeTypesReq
+ 74, // 176: openstack.Openstack.CreateVolumeTypes:input_type -> openstack.CreateTypeReq
+ 76, // 177: openstack.Openstack.DeleteVolumeTypes:input_type -> openstack.DeleteTypeReq
+ 1, // 178: openstack.Openstack.GetComputeLimits:output_type -> openstack.GetComputeLimitsResp
+ 3, // 179: openstack.Openstack.GetVolumeLimits:output_type -> openstack.GetVolumeLimitsResp
+ 5, // 180: openstack.Openstack.ListServers:output_type -> openstack.ListServersResp
+ 7, // 181: openstack.Openstack.ListServersDetailed:output_type -> openstack.ListServersDetailedResp
+ 9, // 182: openstack.Openstack.CreateServer:output_type -> openstack.CreateServerResp
+ 11, // 183: openstack.Openstack.DeleteServer:output_type -> openstack.DeleteServerResp
+ 13, // 184: openstack.Openstack.GetServersDetailedById:output_type -> openstack.GetServersDetailedByIdResp
+ 15, // 185: openstack.Openstack.UpdateServer:output_type -> openstack.UpdateServerResp
+ 17, // 186: openstack.Openstack.StartServer:output_type -> openstack.StartServerResp
+ 19, // 187: openstack.Openstack.StopServer:output_type -> openstack.StopServerResp
+ 21, // 188: openstack.Openstack.RebootServer:output_type -> openstack.RebootServerResp
+ 23, // 189: openstack.Openstack.PauseServer:output_type -> openstack.PauseServerResp
+ 25, // 190: openstack.Openstack.ListFlavorsDetail:output_type -> openstack.ListFlavorsDetailResp
+ 29, // 191: openstack.Openstack.ShowNetworkDetails:output_type -> openstack.ShowNetworkDetailsResp
+ 31, // 192: openstack.Openstack.UpdateNetwork:output_type -> openstack.UpdateNetworkResp
+ 33, // 193: openstack.Openstack.DeleteNetwork:output_type -> openstack.DeleteNetworkResp
+ 35, // 194: openstack.Openstack.ListNetworks:output_type -> openstack.ListNetworksResp
+ 37, // 195: openstack.Openstack.CreateNetwork:output_type -> openstack.CreateNetworkResp
+ 44, // 196: openstack.Openstack.BulkCreateNetworks:output_type -> openstack.BulkCreateNetworksResp
+ 39, // 197: openstack.Openstack.CreateSubnet:output_type -> openstack.CreateSubnetResp
+ 55, // 198: openstack.Openstack.CreateImage:output_type -> openstack.CreateImageResp
+ 57, // 199: openstack.Openstack.ListImages:output_type -> openstack.ListImagesResp
+ 59, // 200: openstack.Openstack.DeleteImage:output_type -> openstack.DeleteImageResp
+ 61, // 201: openstack.Openstack.UploadImage:output_type -> openstack.UploadOsImageResp
+ 46, // 202: openstack.Openstack.ListNodes:output_type -> openstack.ListNodesResp
+ 48, // 203: openstack.Openstack.CreateNode:output_type -> openstack.CreateNodeResp
+ 50, // 204: openstack.Openstack.DeleteNode:output_type -> openstack.DeleteNodeResp
+ 52, // 205: openstack.Openstack.ShowNodeDetails:output_type -> openstack.ShowNodeDetailsResp
+ 63, // 206: openstack.Openstack.ListVolumes:output_type -> openstack.ListVolumesResp
+ 65, // 207: openstack.Openstack.ListVolumesDetail:output_type -> openstack.ListVolumesDetailResp
+ 67, // 208: openstack.Openstack.CreateVolume:output_type -> openstack.CreateVolumeResp
+ 69, // 209: openstack.Openstack.DeleteVolume:output_type -> openstack.DeleteVolumeResp
+ 71, // 210: openstack.Openstack.UpdateVolume:output_type -> openstack.UpdateVolumeResp
+ 73, // 211: openstack.Openstack.ListVolumeTypes:output_type -> openstack.ListVolumeTypesResp
+ 75, // 212: openstack.Openstack.CreateVolumeTypes:output_type -> openstack.CreateTypeResp
+ 77, // 213: openstack.Openstack.DeleteVolumeTypes:output_type -> openstack.DeleteTypeResp
+ 178, // [178:214] is the sub-list for method output_type
+ 142, // [142:178] is the sub-list for method input_type
+ 142, // [142:142] is the sub-list for extension type_name
+ 142, // [142:142] is the sub-list for extension extendee
+ 0, // [0:142] is the sub-list for field type_name
+}
+
+func init() { file_pcm_openstack_proto_init() }
+func file_pcm_openstack_proto_init() {
+ if File_pcm_openstack_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_pcm_openstack_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetComputeLimitsReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetComputeLimitsResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetVolumeLimitsReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetVolumeLimitsResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StartServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StartServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StopServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StopServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RebootServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RebootServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PauseServerReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PauseServerResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListFlavorsDetailReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListFlavorsDetailResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNetworkDetailsReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Network); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Segment); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNetworkDetailsResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateNetworkReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateNetworkResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteNetworkReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteNetworkResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNetworksReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNetworksResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNetworkReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNetworkResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateSubnetReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateSubnetResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Subnet); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SubnetResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AllocationPools); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BulkCreateNetworksReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*BulkCreateNetworksResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNodesReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNodesResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteNodeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteNodeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateImageReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Tags); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateImageResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListImagesReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListImagesResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteImageReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteImageResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UploadOsImageReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UploadOsImageResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteVolumeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteVolumeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumeTypesReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumeTypesResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteTypeReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeleteTypeResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetComputeLimitsResp_Rate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetComputeLimitsResp_Absolute); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetComputeLimitsResp_Limits); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetVolumeLimitsResp_Rate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetVolumeLimitsResp_Absolute); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetVolumeLimitsResp_Limits); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersResp_Servers); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersResp_ServersLinks); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Private); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Addresses); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Flavor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Links1); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_SecurityGroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListServersDetailedResp_Servers); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_Networks); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_BlockDeviceMappingV2); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_Personality); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_SecurityGroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_Server); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerReq_OsSchHntSchedulerHints); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerResp_SecurityGroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateServerResp_Server); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Private); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Addresses); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Flavor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Links1); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Fault); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_SecurityGroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetServersDetailedByIdResp_Servers); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerReq_Server); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Private); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Addresses); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Flavor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Image); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Links1); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_SecurityGroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateServerResp_Server); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StartServerReq_OsStart); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StopServerReq_OsStop); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RebootServerReq_Reboot); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PauseServerReq_OsPause); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListFlavorsDetailResp_Flavor); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListFlavorsDetailResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListFlavorsDetailResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNodesResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListNodesResp_Nodes); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeReq_DriverInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeReq_Properties); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeReq_InstanceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeReq_NetworkData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_CleanStep); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_DeployStep); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_DriverInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_DriverInternalInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Extra); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_InstanceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_NetworkData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Portgroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Ports); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Properties); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_RaidConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_States); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_TargetRaidConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateNodeResp_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsReq_Fields); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_CleanStep); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_DeployStep); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_DriverInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_DriverInternalInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Extra); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_InstanceInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_NetworkData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Portgroups); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Ports); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Properties); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_RaidConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_States); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_TargetRaidConfig); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[174].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ShowNodeDetailsResp_Traits); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[175].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateImageResp_Tags); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[176].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateImageResp_Locations); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[177].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListImagesResp_Images); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[178].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListImagesResp_Tags); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[179].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[180].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesResp_Volumes); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[181].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[182].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailResp_Attachments); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[183].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[184].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumesDetailResp_VolumeDetail); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[185].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeReq_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[186].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeReq_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[187].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[188].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[189].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeResp_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[190].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateVolumeResp_Attachments); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[191].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeReq_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[192].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeReq_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[193].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeResp_Links); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[194].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeResp_Metadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[195].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeResp_Volume); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[196].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UpdateVolumeResp_Attachments); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[197].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumeTypesResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[198].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListVolumeTypesResp_VolumeTypes); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[199].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeReq_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[200].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeReq_VolumeType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[201].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeResp_ExtraSpecs); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_pcm_openstack_proto_msgTypes[202].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CreateTypeResp_VolumeType); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_pcm_openstack_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 203,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_pcm_openstack_proto_goTypes,
+ DependencyIndexes: file_pcm_openstack_proto_depIdxs,
+ MessageInfos: file_pcm_openstack_proto_msgTypes,
+ }.Build()
+ File_pcm_openstack_proto = out.File
+ file_pcm_openstack_proto_rawDesc = nil
+ file_pcm_openstack_proto_goTypes = nil
+ file_pcm_openstack_proto_depIdxs = nil
+}
diff --git a/openstack/pcm-openstack_grpc.pb.go b/openstack/pcm-openstack_grpc.pb.go
new file mode 100644
index 0000000..5ece26c
--- /dev/null
+++ b/openstack/pcm-openstack_grpc.pb.go
@@ -0,0 +1,1416 @@
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.3.0
+// - protoc v3.19.4
+// source: pcm-openstack.proto
+
+package openstack
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.32.0 or later.
+const _ = grpc.SupportPackageIsVersion7
+
+const (
+ Openstack_GetComputeLimits_FullMethodName = "/openstack.Openstack/GetComputeLimits"
+ Openstack_GetVolumeLimits_FullMethodName = "/openstack.Openstack/GetVolumeLimits"
+ Openstack_ListServers_FullMethodName = "/openstack.Openstack/ListServers"
+ Openstack_ListServersDetailed_FullMethodName = "/openstack.Openstack/ListServersDetailed"
+ Openstack_CreateServer_FullMethodName = "/openstack.Openstack/CreateServer"
+ Openstack_DeleteServer_FullMethodName = "/openstack.Openstack/DeleteServer"
+ Openstack_GetServersDetailedById_FullMethodName = "/openstack.Openstack/GetServersDetailedById"
+ Openstack_UpdateServer_FullMethodName = "/openstack.Openstack/UpdateServer"
+ Openstack_StartServer_FullMethodName = "/openstack.Openstack/StartServer"
+ Openstack_StopServer_FullMethodName = "/openstack.Openstack/StopServer"
+ Openstack_RebootServer_FullMethodName = "/openstack.Openstack/RebootServer"
+ Openstack_PauseServer_FullMethodName = "/openstack.Openstack/PauseServer"
+ Openstack_ListFlavorsDetail_FullMethodName = "/openstack.Openstack/ListFlavorsDetail"
+ Openstack_ShowNetworkDetails_FullMethodName = "/openstack.Openstack/ShowNetworkDetails"
+ Openstack_UpdateNetwork_FullMethodName = "/openstack.Openstack/UpdateNetwork"
+ Openstack_DeleteNetwork_FullMethodName = "/openstack.Openstack/DeleteNetwork"
+ Openstack_ListNetworks_FullMethodName = "/openstack.Openstack/ListNetworks"
+ Openstack_CreateNetwork_FullMethodName = "/openstack.Openstack/CreateNetwork"
+ Openstack_BulkCreateNetworks_FullMethodName = "/openstack.Openstack/BulkCreateNetworks"
+ Openstack_CreateSubnet_FullMethodName = "/openstack.Openstack/CreateSubnet"
+ Openstack_CreateImage_FullMethodName = "/openstack.Openstack/CreateImage"
+ Openstack_ListImages_FullMethodName = "/openstack.Openstack/ListImages"
+ Openstack_DeleteImage_FullMethodName = "/openstack.Openstack/DeleteImage"
+ Openstack_UploadImage_FullMethodName = "/openstack.Openstack/UploadImage"
+ Openstack_ListNodes_FullMethodName = "/openstack.Openstack/ListNodes"
+ Openstack_CreateNode_FullMethodName = "/openstack.Openstack/CreateNode"
+ Openstack_DeleteNode_FullMethodName = "/openstack.Openstack/DeleteNode"
+ Openstack_ShowNodeDetails_FullMethodName = "/openstack.Openstack/ShowNodeDetails"
+ Openstack_ListVolumes_FullMethodName = "/openstack.Openstack/ListVolumes"
+ Openstack_ListVolumesDetail_FullMethodName = "/openstack.Openstack/ListVolumesDetail"
+ Openstack_CreateVolume_FullMethodName = "/openstack.Openstack/CreateVolume"
+ Openstack_DeleteVolume_FullMethodName = "/openstack.Openstack/DeleteVolume"
+ Openstack_UpdateVolume_FullMethodName = "/openstack.Openstack/UpdateVolume"
+ Openstack_ListVolumeTypes_FullMethodName = "/openstack.Openstack/ListVolumeTypes"
+ Openstack_CreateVolumeTypes_FullMethodName = "/openstack.Openstack/CreateVolumeTypes"
+ Openstack_DeleteVolumeTypes_FullMethodName = "/openstack.Openstack/DeleteVolumeTypes"
+)
+
+// OpenstackClient is the client API for Openstack service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+type OpenstackClient interface {
+ // Overview
+ GetComputeLimits(ctx context.Context, in *GetComputeLimitsReq, opts ...grpc.CallOption) (*GetComputeLimitsResp, error)
+ GetVolumeLimits(ctx context.Context, in *GetVolumeLimitsReq, opts ...grpc.CallOption) (*GetVolumeLimitsResp, error)
+ // Servers
+ ListServers(ctx context.Context, in *ListServersReq, opts ...grpc.CallOption) (*ListServersResp, error)
+ ListServersDetailed(ctx context.Context, in *ListServersDetailedReq, opts ...grpc.CallOption) (*ListServersDetailedResp, error)
+ CreateServer(ctx context.Context, in *CreateServerReq, opts ...grpc.CallOption) (*CreateServerResp, error)
+ DeleteServer(ctx context.Context, in *DeleteServerReq, opts ...grpc.CallOption) (*DeleteServerResp, error)
+ GetServersDetailedById(ctx context.Context, in *GetServersDetailedByIdReq, opts ...grpc.CallOption) (*GetServersDetailedByIdResp, error)
+ UpdateServer(ctx context.Context, in *UpdateServerReq, opts ...grpc.CallOption) (*UpdateServerResp, error)
+ StartServer(ctx context.Context, in *StartServerReq, opts ...grpc.CallOption) (*StartServerResp, error)
+ StopServer(ctx context.Context, in *StopServerReq, opts ...grpc.CallOption) (*StopServerResp, error)
+ RebootServer(ctx context.Context, in *RebootServerReq, opts ...grpc.CallOption) (*RebootServerResp, error)
+ PauseServer(ctx context.Context, in *PauseServerReq, opts ...grpc.CallOption) (*PauseServerResp, error)
+ ListFlavorsDetail(ctx context.Context, in *ListFlavorsDetailReq, opts ...grpc.CallOption) (*ListFlavorsDetailResp, error)
+ // network
+ ShowNetworkDetails(ctx context.Context, in *ShowNetworkDetailsReq, opts ...grpc.CallOption) (*ShowNetworkDetailsResp, error)
+ UpdateNetwork(ctx context.Context, in *UpdateNetworkReq, opts ...grpc.CallOption) (*UpdateNetworkResp, error)
+ DeleteNetwork(ctx context.Context, in *DeleteNetworkReq, opts ...grpc.CallOption) (*DeleteNetworkResp, error)
+ ListNetworks(ctx context.Context, in *ListNetworksReq, opts ...grpc.CallOption) (*ListNetworksResp, error)
+ CreateNetwork(ctx context.Context, in *CreateNetworkReq, opts ...grpc.CallOption) (*CreateNetworkResp, error)
+ BulkCreateNetworks(ctx context.Context, in *BulkCreateNetworksReq, opts ...grpc.CallOption) (*BulkCreateNetworksResp, error)
+ CreateSubnet(ctx context.Context, in *CreateSubnetReq, opts ...grpc.CallOption) (*CreateSubnetResp, error)
+ // Images from glance
+ CreateImage(ctx context.Context, in *CreateImageReq, opts ...grpc.CallOption) (*CreateImageResp, error)
+ ListImages(ctx context.Context, in *ListImagesReq, opts ...grpc.CallOption) (*ListImagesResp, error)
+ DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error)
+ UploadImage(ctx context.Context, in *UploadOsImageReq, opts ...grpc.CallOption) (*UploadOsImageResp, error)
+ // Bare Metal
+ ListNodes(ctx context.Context, in *ListNodesReq, opts ...grpc.CallOption) (*ListNodesResp, error)
+ CreateNode(ctx context.Context, in *CreateNodeReq, opts ...grpc.CallOption) (*CreateNodeResp, error)
+ DeleteNode(ctx context.Context, in *DeleteNodeReq, opts ...grpc.CallOption) (*DeleteNodeResp, error)
+ ShowNodeDetails(ctx context.Context, in *ShowNodeDetailsReq, opts ...grpc.CallOption) (*ShowNodeDetailsResp, error)
+ // cinder(block storage) volumes
+ ListVolumes(ctx context.Context, in *ListVolumesReq, opts ...grpc.CallOption) (*ListVolumesResp, error)
+ ListVolumesDetail(ctx context.Context, in *ListVolumesDetailReq, opts ...grpc.CallOption) (*ListVolumesDetailResp, error)
+ CreateVolume(ctx context.Context, in *CreateVolumeReq, opts ...grpc.CallOption) (*CreateVolumeResp, error)
+ DeleteVolume(ctx context.Context, in *DeleteVolumeReq, opts ...grpc.CallOption) (*DeleteVolumeResp, error)
+ UpdateVolume(ctx context.Context, in *UpdateVolumeReq, opts ...grpc.CallOption) (*UpdateVolumeResp, error)
+ ListVolumeTypes(ctx context.Context, in *ListVolumeTypesReq, opts ...grpc.CallOption) (*ListVolumeTypesResp, error)
+ CreateVolumeTypes(ctx context.Context, in *CreateTypeReq, opts ...grpc.CallOption) (*CreateTypeResp, error)
+ DeleteVolumeTypes(ctx context.Context, in *DeleteTypeReq, opts ...grpc.CallOption) (*DeleteTypeResp, error)
+}
+
+type openstackClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewOpenstackClient(cc grpc.ClientConnInterface) OpenstackClient {
+ return &openstackClient{cc}
+}
+
+func (c *openstackClient) GetComputeLimits(ctx context.Context, in *GetComputeLimitsReq, opts ...grpc.CallOption) (*GetComputeLimitsResp, error) {
+ out := new(GetComputeLimitsResp)
+ err := c.cc.Invoke(ctx, Openstack_GetComputeLimits_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) GetVolumeLimits(ctx context.Context, in *GetVolumeLimitsReq, opts ...grpc.CallOption) (*GetVolumeLimitsResp, error) {
+ out := new(GetVolumeLimitsResp)
+ err := c.cc.Invoke(ctx, Openstack_GetVolumeLimits_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListServers(ctx context.Context, in *ListServersReq, opts ...grpc.CallOption) (*ListServersResp, error) {
+ out := new(ListServersResp)
+ err := c.cc.Invoke(ctx, Openstack_ListServers_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListServersDetailed(ctx context.Context, in *ListServersDetailedReq, opts ...grpc.CallOption) (*ListServersDetailedResp, error) {
+ out := new(ListServersDetailedResp)
+ err := c.cc.Invoke(ctx, Openstack_ListServersDetailed_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateServer(ctx context.Context, in *CreateServerReq, opts ...grpc.CallOption) (*CreateServerResp, error) {
+ out := new(CreateServerResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteServer(ctx context.Context, in *DeleteServerReq, opts ...grpc.CallOption) (*DeleteServerResp, error) {
+ out := new(DeleteServerResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) GetServersDetailedById(ctx context.Context, in *GetServersDetailedByIdReq, opts ...grpc.CallOption) (*GetServersDetailedByIdResp, error) {
+ out := new(GetServersDetailedByIdResp)
+ err := c.cc.Invoke(ctx, Openstack_GetServersDetailedById_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) UpdateServer(ctx context.Context, in *UpdateServerReq, opts ...grpc.CallOption) (*UpdateServerResp, error) {
+ out := new(UpdateServerResp)
+ err := c.cc.Invoke(ctx, Openstack_UpdateServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) StartServer(ctx context.Context, in *StartServerReq, opts ...grpc.CallOption) (*StartServerResp, error) {
+ out := new(StartServerResp)
+ err := c.cc.Invoke(ctx, Openstack_StartServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) StopServer(ctx context.Context, in *StopServerReq, opts ...grpc.CallOption) (*StopServerResp, error) {
+ out := new(StopServerResp)
+ err := c.cc.Invoke(ctx, Openstack_StopServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) RebootServer(ctx context.Context, in *RebootServerReq, opts ...grpc.CallOption) (*RebootServerResp, error) {
+ out := new(RebootServerResp)
+ err := c.cc.Invoke(ctx, Openstack_RebootServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) PauseServer(ctx context.Context, in *PauseServerReq, opts ...grpc.CallOption) (*PauseServerResp, error) {
+ out := new(PauseServerResp)
+ err := c.cc.Invoke(ctx, Openstack_PauseServer_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListFlavorsDetail(ctx context.Context, in *ListFlavorsDetailReq, opts ...grpc.CallOption) (*ListFlavorsDetailResp, error) {
+ out := new(ListFlavorsDetailResp)
+ err := c.cc.Invoke(ctx, Openstack_ListFlavorsDetail_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ShowNetworkDetails(ctx context.Context, in *ShowNetworkDetailsReq, opts ...grpc.CallOption) (*ShowNetworkDetailsResp, error) {
+ out := new(ShowNetworkDetailsResp)
+ err := c.cc.Invoke(ctx, Openstack_ShowNetworkDetails_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) UpdateNetwork(ctx context.Context, in *UpdateNetworkReq, opts ...grpc.CallOption) (*UpdateNetworkResp, error) {
+ out := new(UpdateNetworkResp)
+ err := c.cc.Invoke(ctx, Openstack_UpdateNetwork_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteNetwork(ctx context.Context, in *DeleteNetworkReq, opts ...grpc.CallOption) (*DeleteNetworkResp, error) {
+ out := new(DeleteNetworkResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteNetwork_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListNetworks(ctx context.Context, in *ListNetworksReq, opts ...grpc.CallOption) (*ListNetworksResp, error) {
+ out := new(ListNetworksResp)
+ err := c.cc.Invoke(ctx, Openstack_ListNetworks_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateNetwork(ctx context.Context, in *CreateNetworkReq, opts ...grpc.CallOption) (*CreateNetworkResp, error) {
+ out := new(CreateNetworkResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateNetwork_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) BulkCreateNetworks(ctx context.Context, in *BulkCreateNetworksReq, opts ...grpc.CallOption) (*BulkCreateNetworksResp, error) {
+ out := new(BulkCreateNetworksResp)
+ err := c.cc.Invoke(ctx, Openstack_BulkCreateNetworks_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateSubnet(ctx context.Context, in *CreateSubnetReq, opts ...grpc.CallOption) (*CreateSubnetResp, error) {
+ out := new(CreateSubnetResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateSubnet_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateImage(ctx context.Context, in *CreateImageReq, opts ...grpc.CallOption) (*CreateImageResp, error) {
+ out := new(CreateImageResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateImage_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListImages(ctx context.Context, in *ListImagesReq, opts ...grpc.CallOption) (*ListImagesResp, error) {
+ out := new(ListImagesResp)
+ err := c.cc.Invoke(ctx, Openstack_ListImages_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error) {
+ out := new(DeleteImageResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteImage_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) UploadImage(ctx context.Context, in *UploadOsImageReq, opts ...grpc.CallOption) (*UploadOsImageResp, error) {
+ out := new(UploadOsImageResp)
+ err := c.cc.Invoke(ctx, Openstack_UploadImage_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListNodes(ctx context.Context, in *ListNodesReq, opts ...grpc.CallOption) (*ListNodesResp, error) {
+ out := new(ListNodesResp)
+ err := c.cc.Invoke(ctx, Openstack_ListNodes_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateNode(ctx context.Context, in *CreateNodeReq, opts ...grpc.CallOption) (*CreateNodeResp, error) {
+ out := new(CreateNodeResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateNode_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteNode(ctx context.Context, in *DeleteNodeReq, opts ...grpc.CallOption) (*DeleteNodeResp, error) {
+ out := new(DeleteNodeResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteNode_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ShowNodeDetails(ctx context.Context, in *ShowNodeDetailsReq, opts ...grpc.CallOption) (*ShowNodeDetailsResp, error) {
+ out := new(ShowNodeDetailsResp)
+ err := c.cc.Invoke(ctx, Openstack_ShowNodeDetails_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListVolumes(ctx context.Context, in *ListVolumesReq, opts ...grpc.CallOption) (*ListVolumesResp, error) {
+ out := new(ListVolumesResp)
+ err := c.cc.Invoke(ctx, Openstack_ListVolumes_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListVolumesDetail(ctx context.Context, in *ListVolumesDetailReq, opts ...grpc.CallOption) (*ListVolumesDetailResp, error) {
+ out := new(ListVolumesDetailResp)
+ err := c.cc.Invoke(ctx, Openstack_ListVolumesDetail_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateVolume(ctx context.Context, in *CreateVolumeReq, opts ...grpc.CallOption) (*CreateVolumeResp, error) {
+ out := new(CreateVolumeResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateVolume_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteVolume(ctx context.Context, in *DeleteVolumeReq, opts ...grpc.CallOption) (*DeleteVolumeResp, error) {
+ out := new(DeleteVolumeResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteVolume_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) UpdateVolume(ctx context.Context, in *UpdateVolumeReq, opts ...grpc.CallOption) (*UpdateVolumeResp, error) {
+ out := new(UpdateVolumeResp)
+ err := c.cc.Invoke(ctx, Openstack_UpdateVolume_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) ListVolumeTypes(ctx context.Context, in *ListVolumeTypesReq, opts ...grpc.CallOption) (*ListVolumeTypesResp, error) {
+ out := new(ListVolumeTypesResp)
+ err := c.cc.Invoke(ctx, Openstack_ListVolumeTypes_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) CreateVolumeTypes(ctx context.Context, in *CreateTypeReq, opts ...grpc.CallOption) (*CreateTypeResp, error) {
+ out := new(CreateTypeResp)
+ err := c.cc.Invoke(ctx, Openstack_CreateVolumeTypes_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *openstackClient) DeleteVolumeTypes(ctx context.Context, in *DeleteTypeReq, opts ...grpc.CallOption) (*DeleteTypeResp, error) {
+ out := new(DeleteTypeResp)
+ err := c.cc.Invoke(ctx, Openstack_DeleteVolumeTypes_FullMethodName, in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// OpenstackServer is the server API for Openstack service.
+// All implementations must embed UnimplementedOpenstackServer
+// for forward compatibility
+type OpenstackServer interface {
+ // Overview
+ GetComputeLimits(context.Context, *GetComputeLimitsReq) (*GetComputeLimitsResp, error)
+ GetVolumeLimits(context.Context, *GetVolumeLimitsReq) (*GetVolumeLimitsResp, error)
+ // Servers
+ ListServers(context.Context, *ListServersReq) (*ListServersResp, error)
+ ListServersDetailed(context.Context, *ListServersDetailedReq) (*ListServersDetailedResp, error)
+ CreateServer(context.Context, *CreateServerReq) (*CreateServerResp, error)
+ DeleteServer(context.Context, *DeleteServerReq) (*DeleteServerResp, error)
+ GetServersDetailedById(context.Context, *GetServersDetailedByIdReq) (*GetServersDetailedByIdResp, error)
+ UpdateServer(context.Context, *UpdateServerReq) (*UpdateServerResp, error)
+ StartServer(context.Context, *StartServerReq) (*StartServerResp, error)
+ StopServer(context.Context, *StopServerReq) (*StopServerResp, error)
+ RebootServer(context.Context, *RebootServerReq) (*RebootServerResp, error)
+ PauseServer(context.Context, *PauseServerReq) (*PauseServerResp, error)
+ ListFlavorsDetail(context.Context, *ListFlavorsDetailReq) (*ListFlavorsDetailResp, error)
+ // network
+ ShowNetworkDetails(context.Context, *ShowNetworkDetailsReq) (*ShowNetworkDetailsResp, error)
+ UpdateNetwork(context.Context, *UpdateNetworkReq) (*UpdateNetworkResp, error)
+ DeleteNetwork(context.Context, *DeleteNetworkReq) (*DeleteNetworkResp, error)
+ ListNetworks(context.Context, *ListNetworksReq) (*ListNetworksResp, error)
+ CreateNetwork(context.Context, *CreateNetworkReq) (*CreateNetworkResp, error)
+ BulkCreateNetworks(context.Context, *BulkCreateNetworksReq) (*BulkCreateNetworksResp, error)
+ CreateSubnet(context.Context, *CreateSubnetReq) (*CreateSubnetResp, error)
+ // Images from glance
+ CreateImage(context.Context, *CreateImageReq) (*CreateImageResp, error)
+ ListImages(context.Context, *ListImagesReq) (*ListImagesResp, error)
+ DeleteImage(context.Context, *DeleteImageReq) (*DeleteImageResp, error)
+ UploadImage(context.Context, *UploadOsImageReq) (*UploadOsImageResp, error)
+ // Bare Metal
+ ListNodes(context.Context, *ListNodesReq) (*ListNodesResp, error)
+ CreateNode(context.Context, *CreateNodeReq) (*CreateNodeResp, error)
+ DeleteNode(context.Context, *DeleteNodeReq) (*DeleteNodeResp, error)
+ ShowNodeDetails(context.Context, *ShowNodeDetailsReq) (*ShowNodeDetailsResp, error)
+ // cinder(block storage) volumes
+ ListVolumes(context.Context, *ListVolumesReq) (*ListVolumesResp, error)
+ ListVolumesDetail(context.Context, *ListVolumesDetailReq) (*ListVolumesDetailResp, error)
+ CreateVolume(context.Context, *CreateVolumeReq) (*CreateVolumeResp, error)
+ DeleteVolume(context.Context, *DeleteVolumeReq) (*DeleteVolumeResp, error)
+ UpdateVolume(context.Context, *UpdateVolumeReq) (*UpdateVolumeResp, error)
+ ListVolumeTypes(context.Context, *ListVolumeTypesReq) (*ListVolumeTypesResp, error)
+ CreateVolumeTypes(context.Context, *CreateTypeReq) (*CreateTypeResp, error)
+ DeleteVolumeTypes(context.Context, *DeleteTypeReq) (*DeleteTypeResp, error)
+ mustEmbedUnimplementedOpenstackServer()
+}
+
+// UnimplementedOpenstackServer must be embedded to have forward compatible implementations.
+type UnimplementedOpenstackServer struct {
+}
+
+func (UnimplementedOpenstackServer) GetComputeLimits(context.Context, *GetComputeLimitsReq) (*GetComputeLimitsResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetComputeLimits not implemented")
+}
+func (UnimplementedOpenstackServer) GetVolumeLimits(context.Context, *GetVolumeLimitsReq) (*GetVolumeLimitsResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetVolumeLimits not implemented")
+}
+func (UnimplementedOpenstackServer) ListServers(context.Context, *ListServersReq) (*ListServersResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListServers not implemented")
+}
+func (UnimplementedOpenstackServer) ListServersDetailed(context.Context, *ListServersDetailedReq) (*ListServersDetailedResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListServersDetailed not implemented")
+}
+func (UnimplementedOpenstackServer) CreateServer(context.Context, *CreateServerReq) (*CreateServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateServer not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteServer(context.Context, *DeleteServerReq) (*DeleteServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteServer not implemented")
+}
+func (UnimplementedOpenstackServer) GetServersDetailedById(context.Context, *GetServersDetailedByIdReq) (*GetServersDetailedByIdResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetServersDetailedById not implemented")
+}
+func (UnimplementedOpenstackServer) UpdateServer(context.Context, *UpdateServerReq) (*UpdateServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateServer not implemented")
+}
+func (UnimplementedOpenstackServer) StartServer(context.Context, *StartServerReq) (*StartServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method StartServer not implemented")
+}
+func (UnimplementedOpenstackServer) StopServer(context.Context, *StopServerReq) (*StopServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method StopServer not implemented")
+}
+func (UnimplementedOpenstackServer) RebootServer(context.Context, *RebootServerReq) (*RebootServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method RebootServer not implemented")
+}
+func (UnimplementedOpenstackServer) PauseServer(context.Context, *PauseServerReq) (*PauseServerResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method PauseServer not implemented")
+}
+func (UnimplementedOpenstackServer) ListFlavorsDetail(context.Context, *ListFlavorsDetailReq) (*ListFlavorsDetailResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListFlavorsDetail not implemented")
+}
+func (UnimplementedOpenstackServer) ShowNetworkDetails(context.Context, *ShowNetworkDetailsReq) (*ShowNetworkDetailsResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ShowNetworkDetails not implemented")
+}
+func (UnimplementedOpenstackServer) UpdateNetwork(context.Context, *UpdateNetworkReq) (*UpdateNetworkResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateNetwork not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteNetwork(context.Context, *DeleteNetworkReq) (*DeleteNetworkResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteNetwork not implemented")
+}
+func (UnimplementedOpenstackServer) ListNetworks(context.Context, *ListNetworksReq) (*ListNetworksResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListNetworks not implemented")
+}
+func (UnimplementedOpenstackServer) CreateNetwork(context.Context, *CreateNetworkReq) (*CreateNetworkResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateNetwork not implemented")
+}
+func (UnimplementedOpenstackServer) BulkCreateNetworks(context.Context, *BulkCreateNetworksReq) (*BulkCreateNetworksResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method BulkCreateNetworks not implemented")
+}
+func (UnimplementedOpenstackServer) CreateSubnet(context.Context, *CreateSubnetReq) (*CreateSubnetResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateSubnet not implemented")
+}
+func (UnimplementedOpenstackServer) CreateImage(context.Context, *CreateImageReq) (*CreateImageResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateImage not implemented")
+}
+func (UnimplementedOpenstackServer) ListImages(context.Context, *ListImagesReq) (*ListImagesResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListImages not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteImage(context.Context, *DeleteImageReq) (*DeleteImageResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteImage not implemented")
+}
+func (UnimplementedOpenstackServer) UploadImage(context.Context, *UploadOsImageReq) (*UploadOsImageResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UploadImage not implemented")
+}
+func (UnimplementedOpenstackServer) ListNodes(context.Context, *ListNodesReq) (*ListNodesResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListNodes not implemented")
+}
+func (UnimplementedOpenstackServer) CreateNode(context.Context, *CreateNodeReq) (*CreateNodeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateNode not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteNode(context.Context, *DeleteNodeReq) (*DeleteNodeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteNode not implemented")
+}
+func (UnimplementedOpenstackServer) ShowNodeDetails(context.Context, *ShowNodeDetailsReq) (*ShowNodeDetailsResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ShowNodeDetails not implemented")
+}
+func (UnimplementedOpenstackServer) ListVolumes(context.Context, *ListVolumesReq) (*ListVolumesResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListVolumes not implemented")
+}
+func (UnimplementedOpenstackServer) ListVolumesDetail(context.Context, *ListVolumesDetailReq) (*ListVolumesDetailResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListVolumesDetail not implemented")
+}
+func (UnimplementedOpenstackServer) CreateVolume(context.Context, *CreateVolumeReq) (*CreateVolumeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateVolume not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteVolume(context.Context, *DeleteVolumeReq) (*DeleteVolumeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteVolume not implemented")
+}
+func (UnimplementedOpenstackServer) UpdateVolume(context.Context, *UpdateVolumeReq) (*UpdateVolumeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateVolume not implemented")
+}
+func (UnimplementedOpenstackServer) ListVolumeTypes(context.Context, *ListVolumeTypesReq) (*ListVolumeTypesResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListVolumeTypes not implemented")
+}
+func (UnimplementedOpenstackServer) CreateVolumeTypes(context.Context, *CreateTypeReq) (*CreateTypeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateVolumeTypes not implemented")
+}
+func (UnimplementedOpenstackServer) DeleteVolumeTypes(context.Context, *DeleteTypeReq) (*DeleteTypeResp, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteVolumeTypes not implemented")
+}
+func (UnimplementedOpenstackServer) mustEmbedUnimplementedOpenstackServer() {}
+
+// UnsafeOpenstackServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to OpenstackServer will
+// result in compilation errors.
+type UnsafeOpenstackServer interface {
+ mustEmbedUnimplementedOpenstackServer()
+}
+
+func RegisterOpenstackServer(s grpc.ServiceRegistrar, srv OpenstackServer) {
+ s.RegisterService(&Openstack_ServiceDesc, srv)
+}
+
+func _Openstack_GetComputeLimits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetComputeLimitsReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).GetComputeLimits(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_GetComputeLimits_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).GetComputeLimits(ctx, req.(*GetComputeLimitsReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_GetVolumeLimits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetVolumeLimitsReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).GetVolumeLimits(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_GetVolumeLimits_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).GetVolumeLimits(ctx, req.(*GetVolumeLimitsReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListServers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListServersReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListServers(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListServers_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListServers(ctx, req.(*ListServersReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListServersDetailed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListServersDetailedReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListServersDetailed(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListServersDetailed_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListServersDetailed(ctx, req.(*ListServersDetailedReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateServer(ctx, req.(*CreateServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteServer(ctx, req.(*DeleteServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_GetServersDetailedById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetServersDetailedByIdReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).GetServersDetailedById(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_GetServersDetailedById_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).GetServersDetailedById(ctx, req.(*GetServersDetailedByIdReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_UpdateServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).UpdateServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_UpdateServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).UpdateServer(ctx, req.(*UpdateServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_StartServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StartServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).StartServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_StartServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).StartServer(ctx, req.(*StartServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_StopServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(StopServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).StopServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_StopServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).StopServer(ctx, req.(*StopServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_RebootServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RebootServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).RebootServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_RebootServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).RebootServer(ctx, req.(*RebootServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_PauseServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PauseServerReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).PauseServer(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_PauseServer_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).PauseServer(ctx, req.(*PauseServerReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListFlavorsDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListFlavorsDetailReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListFlavorsDetail(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListFlavorsDetail_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListFlavorsDetail(ctx, req.(*ListFlavorsDetailReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ShowNetworkDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ShowNetworkDetailsReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ShowNetworkDetails(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ShowNetworkDetails_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ShowNetworkDetails(ctx, req.(*ShowNetworkDetailsReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_UpdateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateNetworkReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).UpdateNetwork(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_UpdateNetwork_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).UpdateNetwork(ctx, req.(*UpdateNetworkReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteNetworkReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteNetwork(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteNetwork_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteNetwork(ctx, req.(*DeleteNetworkReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListNetworksReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListNetworks(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListNetworks_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListNetworks(ctx, req.(*ListNetworksReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateNetworkReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateNetwork(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateNetwork_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateNetwork(ctx, req.(*CreateNetworkReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_BulkCreateNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(BulkCreateNetworksReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).BulkCreateNetworks(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_BulkCreateNetworks_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).BulkCreateNetworks(ctx, req.(*BulkCreateNetworksReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateSubnet_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateSubnetReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateSubnet(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateSubnet_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateSubnet(ctx, req.(*CreateSubnetReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateImageReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateImage(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateImage_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateImage(ctx, req.(*CreateImageReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListImages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListImagesReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListImages(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListImages_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListImages(ctx, req.(*ListImagesReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteImageReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteImage(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteImage_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteImage(ctx, req.(*DeleteImageReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_UploadImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UploadOsImageReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).UploadImage(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_UploadImage_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).UploadImage(ctx, req.(*UploadOsImageReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListNodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListNodesReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListNodes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListNodes_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListNodes(ctx, req.(*ListNodesReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateNodeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateNode(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateNode_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateNode(ctx, req.(*CreateNodeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteNode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteNodeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteNode(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteNode_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteNode(ctx, req.(*DeleteNodeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ShowNodeDetails_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ShowNodeDetailsReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ShowNodeDetails(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ShowNodeDetails_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ShowNodeDetails(ctx, req.(*ShowNodeDetailsReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListVolumesReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListVolumes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListVolumes_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListVolumes(ctx, req.(*ListVolumesReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListVolumesDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListVolumesDetailReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListVolumesDetail(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListVolumesDetail_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListVolumesDetail(ctx, req.(*ListVolumesDetailReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateVolumeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateVolume(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateVolume_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateVolume(ctx, req.(*CreateVolumeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteVolumeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteVolume(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteVolume_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteVolume(ctx, req.(*DeleteVolumeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_UpdateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateVolumeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).UpdateVolume(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_UpdateVolume_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).UpdateVolume(ctx, req.(*UpdateVolumeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_ListVolumeTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListVolumeTypesReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).ListVolumeTypes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_ListVolumeTypes_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).ListVolumeTypes(ctx, req.(*ListVolumeTypesReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_CreateVolumeTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateTypeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).CreateVolumeTypes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_CreateVolumeTypes_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).CreateVolumeTypes(ctx, req.(*CreateTypeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Openstack_DeleteVolumeTypes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteTypeReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(OpenstackServer).DeleteVolumeTypes(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: Openstack_DeleteVolumeTypes_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(OpenstackServer).DeleteVolumeTypes(ctx, req.(*DeleteTypeReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// Openstack_ServiceDesc is the grpc.ServiceDesc for Openstack service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var Openstack_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "openstack.Openstack",
+ HandlerType: (*OpenstackServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "GetComputeLimits",
+ Handler: _Openstack_GetComputeLimits_Handler,
+ },
+ {
+ MethodName: "GetVolumeLimits",
+ Handler: _Openstack_GetVolumeLimits_Handler,
+ },
+ {
+ MethodName: "ListServers",
+ Handler: _Openstack_ListServers_Handler,
+ },
+ {
+ MethodName: "ListServersDetailed",
+ Handler: _Openstack_ListServersDetailed_Handler,
+ },
+ {
+ MethodName: "CreateServer",
+ Handler: _Openstack_CreateServer_Handler,
+ },
+ {
+ MethodName: "DeleteServer",
+ Handler: _Openstack_DeleteServer_Handler,
+ },
+ {
+ MethodName: "GetServersDetailedById",
+ Handler: _Openstack_GetServersDetailedById_Handler,
+ },
+ {
+ MethodName: "UpdateServer",
+ Handler: _Openstack_UpdateServer_Handler,
+ },
+ {
+ MethodName: "StartServer",
+ Handler: _Openstack_StartServer_Handler,
+ },
+ {
+ MethodName: "StopServer",
+ Handler: _Openstack_StopServer_Handler,
+ },
+ {
+ MethodName: "RebootServer",
+ Handler: _Openstack_RebootServer_Handler,
+ },
+ {
+ MethodName: "PauseServer",
+ Handler: _Openstack_PauseServer_Handler,
+ },
+ {
+ MethodName: "ListFlavorsDetail",
+ Handler: _Openstack_ListFlavorsDetail_Handler,
+ },
+ {
+ MethodName: "ShowNetworkDetails",
+ Handler: _Openstack_ShowNetworkDetails_Handler,
+ },
+ {
+ MethodName: "UpdateNetwork",
+ Handler: _Openstack_UpdateNetwork_Handler,
+ },
+ {
+ MethodName: "DeleteNetwork",
+ Handler: _Openstack_DeleteNetwork_Handler,
+ },
+ {
+ MethodName: "ListNetworks",
+ Handler: _Openstack_ListNetworks_Handler,
+ },
+ {
+ MethodName: "CreateNetwork",
+ Handler: _Openstack_CreateNetwork_Handler,
+ },
+ {
+ MethodName: "BulkCreateNetworks",
+ Handler: _Openstack_BulkCreateNetworks_Handler,
+ },
+ {
+ MethodName: "CreateSubnet",
+ Handler: _Openstack_CreateSubnet_Handler,
+ },
+ {
+ MethodName: "CreateImage",
+ Handler: _Openstack_CreateImage_Handler,
+ },
+ {
+ MethodName: "ListImages",
+ Handler: _Openstack_ListImages_Handler,
+ },
+ {
+ MethodName: "DeleteImage",
+ Handler: _Openstack_DeleteImage_Handler,
+ },
+ {
+ MethodName: "UploadImage",
+ Handler: _Openstack_UploadImage_Handler,
+ },
+ {
+ MethodName: "ListNodes",
+ Handler: _Openstack_ListNodes_Handler,
+ },
+ {
+ MethodName: "CreateNode",
+ Handler: _Openstack_CreateNode_Handler,
+ },
+ {
+ MethodName: "DeleteNode",
+ Handler: _Openstack_DeleteNode_Handler,
+ },
+ {
+ MethodName: "ShowNodeDetails",
+ Handler: _Openstack_ShowNodeDetails_Handler,
+ },
+ {
+ MethodName: "ListVolumes",
+ Handler: _Openstack_ListVolumes_Handler,
+ },
+ {
+ MethodName: "ListVolumesDetail",
+ Handler: _Openstack_ListVolumesDetail_Handler,
+ },
+ {
+ MethodName: "CreateVolume",
+ Handler: _Openstack_CreateVolume_Handler,
+ },
+ {
+ MethodName: "DeleteVolume",
+ Handler: _Openstack_DeleteVolume_Handler,
+ },
+ {
+ MethodName: "UpdateVolume",
+ Handler: _Openstack_UpdateVolume_Handler,
+ },
+ {
+ MethodName: "ListVolumeTypes",
+ Handler: _Openstack_ListVolumeTypes_Handler,
+ },
+ {
+ MethodName: "CreateVolumeTypes",
+ Handler: _Openstack_CreateVolumeTypes_Handler,
+ },
+ {
+ MethodName: "DeleteVolumeTypes",
+ Handler: _Openstack_DeleteVolumeTypes_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "pcm-openstack.proto",
+}
diff --git a/openstackclient/openstack.go b/openstackclient/openstack.go
new file mode 100644
index 0000000..ae314c6
--- /dev/null
+++ b/openstackclient/openstack.go
@@ -0,0 +1,460 @@
+// Code generated by goctl. DO NOT EDIT.
+// Source: pcm-openstack.proto
+
+package openstackclient
+
+import (
+ "context"
+
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+
+ "github.com/zeromicro/go-zero/zrpc"
+ "google.golang.org/grpc"
+)
+
+type (
+ AllocationPools = openstack.AllocationPools
+ BulkCreateNetworksReq = openstack.BulkCreateNetworksReq
+ BulkCreateNetworksResp = openstack.BulkCreateNetworksResp
+ CreateImageReq = openstack.CreateImageReq
+ CreateImageResp = openstack.CreateImageResp
+ CreateImageResp_Locations = openstack.CreateImageResp_Locations
+ CreateImageResp_Tags = openstack.CreateImageResp_Tags
+ CreateNetworkReq = openstack.CreateNetworkReq
+ CreateNetworkResp = openstack.CreateNetworkResp
+ CreateNodeReq = openstack.CreateNodeReq
+ CreateNodeReq_DriverInfo = openstack.CreateNodeReq_DriverInfo
+ CreateNodeReq_InstanceInfo = openstack.CreateNodeReq_InstanceInfo
+ CreateNodeReq_NetworkData = openstack.CreateNodeReq_NetworkData
+ CreateNodeReq_Properties = openstack.CreateNodeReq_Properties
+ CreateNodeResp = openstack.CreateNodeResp
+ CreateNodeResp_CleanStep = openstack.CreateNodeResp_CleanStep
+ CreateNodeResp_DeployStep = openstack.CreateNodeResp_DeployStep
+ CreateNodeResp_DriverInfo = openstack.CreateNodeResp_DriverInfo
+ CreateNodeResp_DriverInternalInfo = openstack.CreateNodeResp_DriverInternalInfo
+ CreateNodeResp_Extra = openstack.CreateNodeResp_Extra
+ CreateNodeResp_InstanceInfo = openstack.CreateNodeResp_InstanceInfo
+ CreateNodeResp_Links = openstack.CreateNodeResp_Links
+ CreateNodeResp_NetworkData = openstack.CreateNodeResp_NetworkData
+ CreateNodeResp_Portgroups = openstack.CreateNodeResp_Portgroups
+ CreateNodeResp_Ports = openstack.CreateNodeResp_Ports
+ CreateNodeResp_Properties = openstack.CreateNodeResp_Properties
+ CreateNodeResp_RaidConfig = openstack.CreateNodeResp_RaidConfig
+ CreateNodeResp_States = openstack.CreateNodeResp_States
+ CreateNodeResp_TargetRaidConfig = openstack.CreateNodeResp_TargetRaidConfig
+ CreateNodeResp_Volume = openstack.CreateNodeResp_Volume
+ CreateServerReq = openstack.CreateServerReq
+ CreateServerReq_BlockDeviceMappingV2 = openstack.CreateServerReq_BlockDeviceMappingV2
+ CreateServerReq_Metadata = openstack.CreateServerReq_Metadata
+ CreateServerReq_Networks = openstack.CreateServerReq_Networks
+ CreateServerReq_OsSchHntSchedulerHints = openstack.CreateServerReq_OsSchHntSchedulerHints
+ CreateServerReq_Personality = openstack.CreateServerReq_Personality
+ CreateServerReq_SecurityGroups = openstack.CreateServerReq_SecurityGroups
+ CreateServerReq_Server = openstack.CreateServerReq_Server
+ CreateServerResp = openstack.CreateServerResp
+ CreateServerResp_Links = openstack.CreateServerResp_Links
+ CreateServerResp_SecurityGroups = openstack.CreateServerResp_SecurityGroups
+ CreateServerResp_Server = openstack.CreateServerResp_Server
+ CreateSubnetReq = openstack.CreateSubnetReq
+ CreateSubnetResp = openstack.CreateSubnetResp
+ CreateTypeReq = openstack.CreateTypeReq
+ CreateTypeReq_ExtraSpecs = openstack.CreateTypeReq_ExtraSpecs
+ CreateTypeReq_VolumeType = openstack.CreateTypeReq_VolumeType
+ CreateTypeResp = openstack.CreateTypeResp
+ CreateTypeResp_ExtraSpecs = openstack.CreateTypeResp_ExtraSpecs
+ CreateTypeResp_VolumeType = openstack.CreateTypeResp_VolumeType
+ CreateVolumeReq = openstack.CreateVolumeReq
+ CreateVolumeReq_Metadata = openstack.CreateVolumeReq_Metadata
+ CreateVolumeReq_Volume = openstack.CreateVolumeReq_Volume
+ CreateVolumeResp = openstack.CreateVolumeResp
+ CreateVolumeResp_Attachments = openstack.CreateVolumeResp_Attachments
+ CreateVolumeResp_Links = openstack.CreateVolumeResp_Links
+ CreateVolumeResp_Metadata = openstack.CreateVolumeResp_Metadata
+ CreateVolumeResp_Volume = openstack.CreateVolumeResp_Volume
+ DeleteImageReq = openstack.DeleteImageReq
+ DeleteImageResp = openstack.DeleteImageResp
+ DeleteNetworkReq = openstack.DeleteNetworkReq
+ DeleteNetworkResp = openstack.DeleteNetworkResp
+ DeleteNodeReq = openstack.DeleteNodeReq
+ DeleteNodeResp = openstack.DeleteNodeResp
+ DeleteServerReq = openstack.DeleteServerReq
+ DeleteServerResp = openstack.DeleteServerResp
+ DeleteTypeReq = openstack.DeleteTypeReq
+ DeleteTypeResp = openstack.DeleteTypeResp
+ DeleteVolumeReq = openstack.DeleteVolumeReq
+ DeleteVolumeResp = openstack.DeleteVolumeResp
+ GetComputeLimitsReq = openstack.GetComputeLimitsReq
+ GetComputeLimitsResp = openstack.GetComputeLimitsResp
+ GetComputeLimitsResp_Absolute = openstack.GetComputeLimitsResp_Absolute
+ GetComputeLimitsResp_Limits = openstack.GetComputeLimitsResp_Limits
+ GetComputeLimitsResp_Rate = openstack.GetComputeLimitsResp_Rate
+ GetServersDetailedByIdReq = openstack.GetServersDetailedByIdReq
+ GetServersDetailedByIdResp = openstack.GetServersDetailedByIdResp
+ GetServersDetailedByIdResp_Addresses = openstack.GetServersDetailedByIdResp_Addresses
+ GetServersDetailedByIdResp_ExtraSpecs = openstack.GetServersDetailedByIdResp_ExtraSpecs
+ GetServersDetailedByIdResp_Fault = openstack.GetServersDetailedByIdResp_Fault
+ GetServersDetailedByIdResp_Flavor = openstack.GetServersDetailedByIdResp_Flavor
+ GetServersDetailedByIdResp_Image = openstack.GetServersDetailedByIdResp_Image
+ GetServersDetailedByIdResp_Links = openstack.GetServersDetailedByIdResp_Links
+ GetServersDetailedByIdResp_Links1 = openstack.GetServersDetailedByIdResp_Links1
+ GetServersDetailedByIdResp_Metadata = openstack.GetServersDetailedByIdResp_Metadata
+ GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached = openstack.GetServersDetailedByIdResp_OsExtendedVolumesVolumesAttached
+ GetServersDetailedByIdResp_Private = openstack.GetServersDetailedByIdResp_Private
+ GetServersDetailedByIdResp_SecurityGroups = openstack.GetServersDetailedByIdResp_SecurityGroups
+ GetServersDetailedByIdResp_Servers = openstack.GetServersDetailedByIdResp_Servers
+ GetVolumeLimitsReq = openstack.GetVolumeLimitsReq
+ GetVolumeLimitsResp = openstack.GetVolumeLimitsResp
+ GetVolumeLimitsResp_Absolute = openstack.GetVolumeLimitsResp_Absolute
+ GetVolumeLimitsResp_Limits = openstack.GetVolumeLimitsResp_Limits
+ GetVolumeLimitsResp_Rate = openstack.GetVolumeLimitsResp_Rate
+ ListFlavorsDetailReq = openstack.ListFlavorsDetailReq
+ ListFlavorsDetailResp = openstack.ListFlavorsDetailResp
+ ListFlavorsDetailResp_ExtraSpecs = openstack.ListFlavorsDetailResp_ExtraSpecs
+ ListFlavorsDetailResp_Flavor = openstack.ListFlavorsDetailResp_Flavor
+ ListFlavorsDetailResp_Links = openstack.ListFlavorsDetailResp_Links
+ ListImagesReq = openstack.ListImagesReq
+ ListImagesResp = openstack.ListImagesResp
+ ListImagesResp_Images = openstack.ListImagesResp_Images
+ ListImagesResp_Tags = openstack.ListImagesResp_Tags
+ ListNetworksReq = openstack.ListNetworksReq
+ ListNetworksResp = openstack.ListNetworksResp
+ ListNodesReq = openstack.ListNodesReq
+ ListNodesResp = openstack.ListNodesResp
+ ListNodesResp_Links = openstack.ListNodesResp_Links
+ ListNodesResp_Nodes = openstack.ListNodesResp_Nodes
+ ListServersDetailedReq = openstack.ListServersDetailedReq
+ ListServersDetailedResp = openstack.ListServersDetailedResp
+ ListServersDetailedResp_Addresses = openstack.ListServersDetailedResp_Addresses
+ ListServersDetailedResp_ExtraSpecs = openstack.ListServersDetailedResp_ExtraSpecs
+ ListServersDetailedResp_Flavor = openstack.ListServersDetailedResp_Flavor
+ ListServersDetailedResp_Image = openstack.ListServersDetailedResp_Image
+ ListServersDetailedResp_Links = openstack.ListServersDetailedResp_Links
+ ListServersDetailedResp_Links1 = openstack.ListServersDetailedResp_Links1
+ ListServersDetailedResp_Metadata = openstack.ListServersDetailedResp_Metadata
+ ListServersDetailedResp_Private = openstack.ListServersDetailedResp_Private
+ ListServersDetailedResp_SecurityGroups = openstack.ListServersDetailedResp_SecurityGroups
+ ListServersDetailedResp_Servers = openstack.ListServersDetailedResp_Servers
+ ListServersReq = openstack.ListServersReq
+ ListServersResp = openstack.ListServersResp
+ ListServersResp_Links = openstack.ListServersResp_Links
+ ListServersResp_Servers = openstack.ListServersResp_Servers
+ ListServersResp_ServersLinks = openstack.ListServersResp_ServersLinks
+ ListVolumeTypesReq = openstack.ListVolumeTypesReq
+ ListVolumeTypesResp = openstack.ListVolumeTypesResp
+ ListVolumeTypesResp_ExtraSpecs = openstack.ListVolumeTypesResp_ExtraSpecs
+ ListVolumeTypesResp_VolumeTypes = openstack.ListVolumeTypesResp_VolumeTypes
+ ListVolumesDetailReq = openstack.ListVolumesDetailReq
+ ListVolumesDetailResp = openstack.ListVolumesDetailResp
+ ListVolumesDetailResp_Attachments = openstack.ListVolumesDetailResp_Attachments
+ ListVolumesDetailResp_Links = openstack.ListVolumesDetailResp_Links
+ ListVolumesDetailResp_Metadata = openstack.ListVolumesDetailResp_Metadata
+ ListVolumesDetailResp_VolumeDetail = openstack.ListVolumesDetailResp_VolumeDetail
+ ListVolumesReq = openstack.ListVolumesReq
+ ListVolumesResp = openstack.ListVolumesResp
+ ListVolumesResp_Links = openstack.ListVolumesResp_Links
+ ListVolumesResp_Volumes = openstack.ListVolumesResp_Volumes
+ Network = openstack.Network
+ PauseServerReq = openstack.PauseServerReq
+ PauseServerReq_OsPause = openstack.PauseServerReq_OsPause
+ PauseServerResp = openstack.PauseServerResp
+ RebootServerReq = openstack.RebootServerReq
+ RebootServerReq_Reboot = openstack.RebootServerReq_Reboot
+ RebootServerResp = openstack.RebootServerResp
+ Segment = openstack.Segment
+ ShowNetworkDetailsReq = openstack.ShowNetworkDetailsReq
+ ShowNetworkDetailsResp = openstack.ShowNetworkDetailsResp
+ ShowNodeDetailsReq = openstack.ShowNodeDetailsReq
+ ShowNodeDetailsReq_Fields = openstack.ShowNodeDetailsReq_Fields
+ ShowNodeDetailsResp = openstack.ShowNodeDetailsResp
+ ShowNodeDetailsResp_CleanStep = openstack.ShowNodeDetailsResp_CleanStep
+ ShowNodeDetailsResp_DeployStep = openstack.ShowNodeDetailsResp_DeployStep
+ ShowNodeDetailsResp_DriverInfo = openstack.ShowNodeDetailsResp_DriverInfo
+ ShowNodeDetailsResp_DriverInternalInfo = openstack.ShowNodeDetailsResp_DriverInternalInfo
+ ShowNodeDetailsResp_Extra = openstack.ShowNodeDetailsResp_Extra
+ ShowNodeDetailsResp_InstanceInfo = openstack.ShowNodeDetailsResp_InstanceInfo
+ ShowNodeDetailsResp_Links = openstack.ShowNodeDetailsResp_Links
+ ShowNodeDetailsResp_NetworkData = openstack.ShowNodeDetailsResp_NetworkData
+ ShowNodeDetailsResp_Portgroups = openstack.ShowNodeDetailsResp_Portgroups
+ ShowNodeDetailsResp_Ports = openstack.ShowNodeDetailsResp_Ports
+ ShowNodeDetailsResp_Properties = openstack.ShowNodeDetailsResp_Properties
+ ShowNodeDetailsResp_RaidConfig = openstack.ShowNodeDetailsResp_RaidConfig
+ ShowNodeDetailsResp_States = openstack.ShowNodeDetailsResp_States
+ ShowNodeDetailsResp_TargetRaidConfig = openstack.ShowNodeDetailsResp_TargetRaidConfig
+ ShowNodeDetailsResp_Traits = openstack.ShowNodeDetailsResp_Traits
+ ShowNodeDetailsResp_Volume = openstack.ShowNodeDetailsResp_Volume
+ StartServerReq = openstack.StartServerReq
+ StartServerReq_OsStart = openstack.StartServerReq_OsStart
+ StartServerResp = openstack.StartServerResp
+ StopServerReq = openstack.StopServerReq
+ StopServerReq_OsStop = openstack.StopServerReq_OsStop
+ StopServerResp = openstack.StopServerResp
+ Subnet = openstack.Subnet
+ SubnetResp = openstack.SubnetResp
+ Tags = openstack.Tags
+ UpdateNetworkReq = openstack.UpdateNetworkReq
+ UpdateNetworkResp = openstack.UpdateNetworkResp
+ UpdateServerReq = openstack.UpdateServerReq
+ UpdateServerReq_Server = openstack.UpdateServerReq_Server
+ UpdateServerResp = openstack.UpdateServerResp
+ UpdateServerResp_Addresses = openstack.UpdateServerResp_Addresses
+ UpdateServerResp_ExtraSpecs = openstack.UpdateServerResp_ExtraSpecs
+ UpdateServerResp_Flavor = openstack.UpdateServerResp_Flavor
+ UpdateServerResp_Image = openstack.UpdateServerResp_Image
+ UpdateServerResp_Links = openstack.UpdateServerResp_Links
+ UpdateServerResp_Links1 = openstack.UpdateServerResp_Links1
+ UpdateServerResp_Metadata = openstack.UpdateServerResp_Metadata
+ UpdateServerResp_Private = openstack.UpdateServerResp_Private
+ UpdateServerResp_SecurityGroups = openstack.UpdateServerResp_SecurityGroups
+ UpdateServerResp_Server = openstack.UpdateServerResp_Server
+ UpdateVolumeReq = openstack.UpdateVolumeReq
+ UpdateVolumeReq_Metadata = openstack.UpdateVolumeReq_Metadata
+ UpdateVolumeReq_Volume = openstack.UpdateVolumeReq_Volume
+ UpdateVolumeResp = openstack.UpdateVolumeResp
+ UpdateVolumeResp_Attachments = openstack.UpdateVolumeResp_Attachments
+ UpdateVolumeResp_Links = openstack.UpdateVolumeResp_Links
+ UpdateVolumeResp_Metadata = openstack.UpdateVolumeResp_Metadata
+ UpdateVolumeResp_Volume = openstack.UpdateVolumeResp_Volume
+ UploadOsImageReq = openstack.UploadOsImageReq
+ UploadOsImageResp = openstack.UploadOsImageResp
+
+ Openstack interface {
+ // Overview
+ GetComputeLimits(ctx context.Context, in *GetComputeLimitsReq, opts ...grpc.CallOption) (*GetComputeLimitsResp, error)
+ GetVolumeLimits(ctx context.Context, in *GetVolumeLimitsReq, opts ...grpc.CallOption) (*GetVolumeLimitsResp, error)
+ // Servers
+ ListServers(ctx context.Context, in *ListServersReq, opts ...grpc.CallOption) (*ListServersResp, error)
+ ListServersDetailed(ctx context.Context, in *ListServersDetailedReq, opts ...grpc.CallOption) (*ListServersDetailedResp, error)
+ CreateServer(ctx context.Context, in *CreateServerReq, opts ...grpc.CallOption) (*CreateServerResp, error)
+ DeleteServer(ctx context.Context, in *DeleteServerReq, opts ...grpc.CallOption) (*DeleteServerResp, error)
+ GetServersDetailedById(ctx context.Context, in *GetServersDetailedByIdReq, opts ...grpc.CallOption) (*GetServersDetailedByIdResp, error)
+ UpdateServer(ctx context.Context, in *UpdateServerReq, opts ...grpc.CallOption) (*UpdateServerResp, error)
+ StartServer(ctx context.Context, in *StartServerReq, opts ...grpc.CallOption) (*StartServerResp, error)
+ StopServer(ctx context.Context, in *StopServerReq, opts ...grpc.CallOption) (*StopServerResp, error)
+ RebootServer(ctx context.Context, in *RebootServerReq, opts ...grpc.CallOption) (*RebootServerResp, error)
+ PauseServer(ctx context.Context, in *PauseServerReq, opts ...grpc.CallOption) (*PauseServerResp, error)
+ ListFlavorsDetail(ctx context.Context, in *ListFlavorsDetailReq, opts ...grpc.CallOption) (*ListFlavorsDetailResp, error)
+ // network
+ ShowNetworkDetails(ctx context.Context, in *ShowNetworkDetailsReq, opts ...grpc.CallOption) (*ShowNetworkDetailsResp, error)
+ UpdateNetwork(ctx context.Context, in *UpdateNetworkReq, opts ...grpc.CallOption) (*UpdateNetworkResp, error)
+ DeleteNetwork(ctx context.Context, in *DeleteNetworkReq, opts ...grpc.CallOption) (*DeleteNetworkResp, error)
+ ListNetworks(ctx context.Context, in *ListNetworksReq, opts ...grpc.CallOption) (*ListNetworksResp, error)
+ CreateNetwork(ctx context.Context, in *CreateNetworkReq, opts ...grpc.CallOption) (*CreateNetworkResp, error)
+ BulkCreateNetworks(ctx context.Context, in *BulkCreateNetworksReq, opts ...grpc.CallOption) (*BulkCreateNetworksResp, error)
+ CreateSubnet(ctx context.Context, in *CreateSubnetReq, opts ...grpc.CallOption) (*CreateSubnetResp, error)
+ // Images from glance
+ CreateImage(ctx context.Context, in *CreateImageReq, opts ...grpc.CallOption) (*CreateImageResp, error)
+ ListImages(ctx context.Context, in *ListImagesReq, opts ...grpc.CallOption) (*ListImagesResp, error)
+ DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error)
+ UploadImage(ctx context.Context, in *UploadOsImageReq, opts ...grpc.CallOption) (*UploadOsImageResp, error)
+ // Bare Metal
+ ListNodes(ctx context.Context, in *ListNodesReq, opts ...grpc.CallOption) (*ListNodesResp, error)
+ CreateNode(ctx context.Context, in *CreateNodeReq, opts ...grpc.CallOption) (*CreateNodeResp, error)
+ DeleteNode(ctx context.Context, in *DeleteNodeReq, opts ...grpc.CallOption) (*DeleteNodeResp, error)
+ ShowNodeDetails(ctx context.Context, in *ShowNodeDetailsReq, opts ...grpc.CallOption) (*ShowNodeDetailsResp, error)
+ // cinder(block storage) volumes
+ ListVolumes(ctx context.Context, in *ListVolumesReq, opts ...grpc.CallOption) (*ListVolumesResp, error)
+ ListVolumesDetail(ctx context.Context, in *ListVolumesDetailReq, opts ...grpc.CallOption) (*ListVolumesDetailResp, error)
+ CreateVolume(ctx context.Context, in *CreateVolumeReq, opts ...grpc.CallOption) (*CreateVolumeResp, error)
+ DeleteVolume(ctx context.Context, in *DeleteVolumeReq, opts ...grpc.CallOption) (*DeleteVolumeResp, error)
+ UpdateVolume(ctx context.Context, in *UpdateVolumeReq, opts ...grpc.CallOption) (*UpdateVolumeResp, error)
+ ListVolumeTypes(ctx context.Context, in *ListVolumeTypesReq, opts ...grpc.CallOption) (*ListVolumeTypesResp, error)
+ CreateVolumeTypes(ctx context.Context, in *CreateTypeReq, opts ...grpc.CallOption) (*CreateTypeResp, error)
+ DeleteVolumeTypes(ctx context.Context, in *DeleteTypeReq, opts ...grpc.CallOption) (*DeleteTypeResp, error)
+ }
+
+ defaultOpenstack struct {
+ cli zrpc.Client
+ }
+)
+
+func NewOpenstack(cli zrpc.Client) Openstack {
+ return &defaultOpenstack{
+ cli: cli,
+ }
+}
+
+// Overview
+func (m *defaultOpenstack) GetComputeLimits(ctx context.Context, in *GetComputeLimitsReq, opts ...grpc.CallOption) (*GetComputeLimitsResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.GetComputeLimits(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) GetVolumeLimits(ctx context.Context, in *GetVolumeLimitsReq, opts ...grpc.CallOption) (*GetVolumeLimitsResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.GetVolumeLimits(ctx, in, opts...)
+}
+
+// Servers
+func (m *defaultOpenstack) ListServers(ctx context.Context, in *ListServersReq, opts ...grpc.CallOption) (*ListServersResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListServers(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListServersDetailed(ctx context.Context, in *ListServersDetailedReq, opts ...grpc.CallOption) (*ListServersDetailedResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListServersDetailed(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateServer(ctx context.Context, in *CreateServerReq, opts ...grpc.CallOption) (*CreateServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteServer(ctx context.Context, in *DeleteServerReq, opts ...grpc.CallOption) (*DeleteServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) GetServersDetailedById(ctx context.Context, in *GetServersDetailedByIdReq, opts ...grpc.CallOption) (*GetServersDetailedByIdResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.GetServersDetailedById(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) UpdateServer(ctx context.Context, in *UpdateServerReq, opts ...grpc.CallOption) (*UpdateServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.UpdateServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) StartServer(ctx context.Context, in *StartServerReq, opts ...grpc.CallOption) (*StartServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.StartServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) StopServer(ctx context.Context, in *StopServerReq, opts ...grpc.CallOption) (*StopServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.StopServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) RebootServer(ctx context.Context, in *RebootServerReq, opts ...grpc.CallOption) (*RebootServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.RebootServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) PauseServer(ctx context.Context, in *PauseServerReq, opts ...grpc.CallOption) (*PauseServerResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.PauseServer(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListFlavorsDetail(ctx context.Context, in *ListFlavorsDetailReq, opts ...grpc.CallOption) (*ListFlavorsDetailResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListFlavorsDetail(ctx, in, opts...)
+}
+
+// network
+func (m *defaultOpenstack) ShowNetworkDetails(ctx context.Context, in *ShowNetworkDetailsReq, opts ...grpc.CallOption) (*ShowNetworkDetailsResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ShowNetworkDetails(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) UpdateNetwork(ctx context.Context, in *UpdateNetworkReq, opts ...grpc.CallOption) (*UpdateNetworkResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.UpdateNetwork(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteNetwork(ctx context.Context, in *DeleteNetworkReq, opts ...grpc.CallOption) (*DeleteNetworkResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteNetwork(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListNetworks(ctx context.Context, in *ListNetworksReq, opts ...grpc.CallOption) (*ListNetworksResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListNetworks(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateNetwork(ctx context.Context, in *CreateNetworkReq, opts ...grpc.CallOption) (*CreateNetworkResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateNetwork(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) BulkCreateNetworks(ctx context.Context, in *BulkCreateNetworksReq, opts ...grpc.CallOption) (*BulkCreateNetworksResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.BulkCreateNetworks(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateSubnet(ctx context.Context, in *CreateSubnetReq, opts ...grpc.CallOption) (*CreateSubnetResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateSubnet(ctx, in, opts...)
+}
+
+// Images from glance
+func (m *defaultOpenstack) CreateImage(ctx context.Context, in *CreateImageReq, opts ...grpc.CallOption) (*CreateImageResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateImage(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListImages(ctx context.Context, in *ListImagesReq, opts ...grpc.CallOption) (*ListImagesResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListImages(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteImage(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) UploadImage(ctx context.Context, in *UploadOsImageReq, opts ...grpc.CallOption) (*UploadOsImageResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.UploadImage(ctx, in, opts...)
+}
+
+// Bare Metal
+func (m *defaultOpenstack) ListNodes(ctx context.Context, in *ListNodesReq, opts ...grpc.CallOption) (*ListNodesResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListNodes(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateNode(ctx context.Context, in *CreateNodeReq, opts ...grpc.CallOption) (*CreateNodeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateNode(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteNode(ctx context.Context, in *DeleteNodeReq, opts ...grpc.CallOption) (*DeleteNodeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteNode(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ShowNodeDetails(ctx context.Context, in *ShowNodeDetailsReq, opts ...grpc.CallOption) (*ShowNodeDetailsResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ShowNodeDetails(ctx, in, opts...)
+}
+
+// cinder(block storage) volumes
+func (m *defaultOpenstack) ListVolumes(ctx context.Context, in *ListVolumesReq, opts ...grpc.CallOption) (*ListVolumesResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListVolumes(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListVolumesDetail(ctx context.Context, in *ListVolumesDetailReq, opts ...grpc.CallOption) (*ListVolumesDetailResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListVolumesDetail(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateVolume(ctx context.Context, in *CreateVolumeReq, opts ...grpc.CallOption) (*CreateVolumeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateVolume(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteVolume(ctx context.Context, in *DeleteVolumeReq, opts ...grpc.CallOption) (*DeleteVolumeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteVolume(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) UpdateVolume(ctx context.Context, in *UpdateVolumeReq, opts ...grpc.CallOption) (*UpdateVolumeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.UpdateVolume(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) ListVolumeTypes(ctx context.Context, in *ListVolumeTypesReq, opts ...grpc.CallOption) (*ListVolumeTypesResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.ListVolumeTypes(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) CreateVolumeTypes(ctx context.Context, in *CreateTypeReq, opts ...grpc.CallOption) (*CreateTypeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.CreateVolumeTypes(ctx, in, opts...)
+}
+
+func (m *defaultOpenstack) DeleteVolumeTypes(ctx context.Context, in *DeleteTypeReq, opts ...grpc.CallOption) (*DeleteTypeResp, error) {
+ client := openstack.NewOpenstackClient(m.cli.Conn())
+ return client.DeleteVolumeTypes(ctx, in, opts...)
+}
diff --git a/pb/pcm-openstack.proto b/pb/pcm-openstack.proto
new file mode 100644
index 0000000..5a22058
--- /dev/null
+++ b/pb/pcm-openstack.proto
@@ -0,0 +1,2034 @@
+syntax = "proto3";
+
+package openstack;
+option go_package = "/openstack";
+
+
+
+
+/******************Overview Start*************************/
+message GetComputeLimitsReq{
+}
+
+message GetComputeLimitsResp{
+
+ message Rate{
+ }
+ message Absolute{
+ int64 maxServerMeta = 1;
+ int64 maxPersonality = 2;
+ int64 totalServerGroupsUsed = 3;
+ int64 maxImageMeta = 4;
+ int64 maxPersonalitySize = 5;
+ int64 maxTotalKeypairs = 6;
+ int64 maxSecurityGroupRules = 7;
+ int64 maxServerGroups = 8;
+ int64 totalCoresUsed = 9;
+ int64 totalRAMUsed = 10;
+ int64 totalInstancesUsed = 11;
+ int64 maxSecurityGroups = 12;
+ int64 totalFloatingIpsUsed = 13;
+ int64 maxTotalCores = 14;
+ int64 maxServerGroupMembers = 15;
+ int64 maxTotalFloatingIps = 16;
+ int64 totalSecurityGroupsUsed = 17;
+ int64 maxTotalInstances = 18;
+ int64 maxTotalRAMSize = 19;
+ }
+
+ Limits limits = 1;
+ message Limits{
+ repeated Rate rate = 1;
+ Absolute absolute =2;
+ }
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg = 4;// @gotags: copier:"ErrorMsg"
+
+}
+message GetVolumeLimitsReq{
+
+}
+message GetVolumeLimitsResp{
+
+ message Rate{
+ }
+ message Absolute{
+ int32 totalSnapshotsUsed = 1;
+ int32 maxTotalBackups = 2;
+ int32 maxTotalVolumeGigabytes = 3;
+ int32 maxTotalSnapshots = 4;
+ int32 maxTotalBackupGigabytes = 5;
+ int32 totalBackupGigabytesUsed = 6;
+ int32 maxTotalVolumes = 7;
+ int32 totalVolumesUsed = 8;
+ int32 totalBackupsUsed = 9;
+ int32 totalGigabytesUsed = 10;
+ }
+ message Limits{
+ repeated Rate rate= 1;
+ Absolute absolute = 2;
+ }
+ Limits limits = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg = 4;// @gotags: copier:"ErrorMsg"
+}
+/******************Overview End*************************/
+
+
+/******************List servers Start*************************/
+message ListServersReq{
+ int32 limit = 1; // @gotags: copier:"Limit"
+ int32 offset = 2; // @gotags: copier:"Offset"
+ /*string access_ip_v4 = 1; // 按应使用的 IPv4 地址筛选服务器列表结果 以访问服务器 @gotags: copier:"accessIpV4"
+ string access_ip_v6 = 2; //按应使用的 IPv6 地址筛选服务器列表结果 以访问服务器。@gotags: copier:"Limit"
+ bool all_tenants = 3; //指定查询参数以列出所有实例 适用于所有项目 @gotags: copier:"Offset"
+ string auto_disk_config =4; //通过服务器的设置过滤服务器列表结果 @gotags: copier:"ModelArtsType"
+ string availability_zone =5;// 按服务器可用性区域筛选服务器列表结果 @gotags: copier:"ModelArtsType"
+ string changes_since =6 [json_name="changes-since"]; // 按服务器上次使用的日期和时间戳筛选响应 状态已更改 @gotags: copier:"ModelArtsType"
+ string config_drive =7; //按服务器的配置驱动器设置过滤服务器列表结果 @gotags: copier:"ConfigDrive"
+ string created_at =8; //按创建服务器时的日期和时间戳筛选服务器列表结果@gotags: copier:"CreatedAt"
+ bool deleted =9; //仅显示已删除的项目 @gotags: copier:"Deleted"
+ string description =10; //筛选服务器列表结果@gotags: copier:"Description"
+ string flavor =11; // 按特定实例筛选响应,作为 UUID@gotags: copier:"Flavor"
+ string host =12; // 按计算节点的主机名筛选服务器列表结果@gotags: copier:"Host"
+ string hostname =13; // 按服务器的主机名筛选服务器列表结果@gotags: copier:"Hostname"
+ string image =14; //按图像筛选响应,作为 UUID。@gotags: copier:"Image"
+ string ip =15; // 用于筛选结果的 IPv4 地址@gotags: copier:"Ip"
+ string ip6 =16; // 用于筛选结果的 IPv6 地址@gotags: copier:"Ip6"
+ string kernel_id =17; // 按内核映像的 UUID 筛选服务器列表结果 使用 AMI 时@gotags: copier:"KernelId"
+ string key_name =18; // 按密钥对名称筛选服务器列表结果@gotags: copier:"KeyName"
+ int64 launch_index =19; // 服务器已启动@gotags: copier:"LaunchIndex"
+ string launched_at =20; // 按启动实例时的日期和时间戳筛选服务器列表结果。@gotags: copier:"LaunchedAt"
+ int64 limit =21; // 请求项目的页面大小。@gotags: copier:"Limit"
+ string locked_by =22; //按锁定服务器的人员筛选服务器列表结果,可能的值 可以是或 。@gotags: copier:"LockedBy"
+ string marker =23; // 上次看到的项目的 ID。@gotags: copier:"Marker"
+ string name =24; // 按服务器名称(字符串形式)筛选响应@gotags: copier:"Name"
+ string node =25; // 按节点筛选服务器列表结果@gotags: copier:"Node"
+ int64 power_state =26; //按服务器电源状态筛选服务器列表结果@gotags: copier:"PowerState"
+ int64 progress =27; //按服务器的进度筛选服务器列表结果@gotags: copier:"Progress"
+ string project_id =28; // 按给定的项目 ID 筛选服务器列表@gotags: copier:"ProjectId"
+ string ramdisk_id =29; // 当出现时,按虚拟硬盘镜像的UUID过滤服务器列表结果 使用 AMI@gotags: copier:"RamdiskId"
+ string reservation_id =30; // 服务器多次创建调用返回的预留 ID@gotags: copier:"ReservationId"
+ string root_device_name =31; //按服务器的根设备名称筛选服务器列表结果@gotags: copier:"RootDeviceName"
+ string soft_deleted =32;// 按状态筛选服务器列表。此参数仅有效 指定筛选器参数时@gotags: copier:"SoftDeleted"
+ string sort_dir =33; //排序方向@gotags: copier:"SortDir"
+ string sort_key =34; //按服务器属性排序@gotags: copier:"SortKey"
+ string status =35; //按服务器状态(字符串形式)筛选响应@gotags: copier:"Status"
+ string task_state =36;//按任务状态筛选服务器列表结果@gotags: copier:"TaskState"
+ string terminated_at=37; //按实例终止时的日期和时间戳筛选服务器列表结果@gotags: copier:"TerminatedAt"
+ string user_id=38; //按给定的用户 ID 过滤服务器列表@gotags: copier:"UserId"
+ string uuid=39; //按服务器的 UUID 筛选服务器列表结果@gotags: copier:"Uuid"
+ string vm_state =40;// 按 VM 状态筛选服务器列表结果@gotags: copier:"VmState"
+ string not_tags =41 [json_name="not-tags"]; //用于筛选服务器列表的标记列表。@gotags: copier:"NotTags"
+ string not_tags_any = 42 [json_name="not-tags-any"]; // 用于筛选服务器列表的标记列表@gotags: copier:"NotTagsAny"
+ string tags = 43; //用于筛选服务器列表的标记列表@gotags: copier:"Tags"
+ string tags_any =44 [json_name="tags-any"];//用于筛选服务器列表的标记列表@gotags: copier:"TagsAny"
+ string changes_before =45 [json_name="changes-before"]; //按上次更改服务器时的日期和时间戳筛选响应。@gotags: copier:"ChangesBefore"
+ string locked =46; //指定查询参数以列出所有锁定或解锁的内容 实例。@gotags: copier:"Locked"*/
+}
+
+message ListServersResp{
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Servers {
+ string id = 1; //The UUID of the server
+ repeated Links links = 2; //有关资源的链接。
+ string name = 3; //The server name
+ }
+
+ message Servers_links {
+ string href = 1;
+ string rel = 2;
+ }
+ repeated Servers servers = 1; //对象列表。server
+ repeated Servers_links servers_links = 2; //链接到下一个服务器
+ int32 code = 3; // @gotags: copier:"Code"
+ string msg = 4; // @gotags: copier:"Msg"
+ string error_msg =5;// @gotags: copier:"ErrorMsg"
+}
+
+message ListServersDetailedReq {
+
+}
+
+message ListServersDetailedResp {
+ message Private {
+ string OS_EXT_IPS_MAC_mac_addr = 1 [json_name="OS-EXT-IPS-MAC:mac_addr"];
+ string OS_EXT_IPS_type = 2 [json_name="OS-EXT-IPS:type"];
+ string addr = 3;
+ uint32 version = 4;
+ }
+
+ message Addresses {
+ repeated Private private = 1;
+ }
+
+ message Extra_specs {
+ }
+
+ message Flavor {
+/* uint32 disk = 1;
+ uint32 ephemeral = 2;
+ Extra_specs extra_specs = 3;
+ string original_name = 4;
+ uint32 ram = 5;
+ uint32 swap = 6;
+ uint32 vcpus = 7;*/
+ string id =1;
+ repeated Links1 links = 2;
+ }
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Image {
+ string id = 1;
+ repeated Links links = 2;
+ }
+
+ message Links1 {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Metadata {
+
+ }
+
+ message Security_groups {
+ string name = 1;
+ }
+
+ message Servers {
+ string TaskState = 1 [json_name="OS-EXT-STS:task_state,omitempty"];
+ string VmState = 15[json_name="OS-EXT-STS:vm_state,omitempty"];
+ string OS_EXT_SRV_ATTR_Instance_Name = 6 [json_name="OS-EXT-SRV-ATTR:instance_name"];
+ string OS_SRV_USG_Launched_At = 16[json_name="OS-SRV-USG:launched_at"];
+ string OS_DCF_DiskConfig = 44[json_name="OS-DCF:diskConfig"];
+ int32 OS_EXT_STS_Power_State = 13[json_name="OS-EXT-SRV-ATTR:power_state"];
+ string OS_EXT_AZ_availability_zone = 2 [json_name="OS-EXT-AZ:availability_zone"];
+ string OS_EXT_SRV_ATTR_Host = 3 [json_name="OS-EXT-SRV-ATTR:host"];
+ string OS_SRV_USG_Terminated_At = 17[json_name="OS-SRV-USG:terminated_at"];
+ repeated string os_extended_volumes_volumes_attached = 35 [json_name="os-extended-volumes:volumes_attached"];
+ string OS_EXT_SRV_ATTR_Hypervisor_Hostname = 5 [json_name="OS-EXT-SRV-ATTR:hypervisor_hostname"];
+
+ /* string OS_EXT_SRV_ATTR_kernel_id = 7 [json_name="OS-EXT-SRV-ATTR:kernel_id"];
+ uint32 OS_EXT_SRV_ATTR_launch_index = 8 [json_name="OS-EXT-SRV-ATTR:launch_index"];
+ string OS_EXT_SRV_ATTR_ramdisk_id = 9 [json_name="OS-EXT-SRV-ATTR:ramdisk_id"];
+ string OS_EXT_SRV_ATTR_reservation_id = 10 [json_name="OS-EXT-SRV-ATTR:reservation_id"];
+ string OS_EXT_SRV_ATTR_root_device_name = 11 [json_name="OS-EXT-SRV-ATTR:root_device_name"];
+ string OS_EXT_SRV_ATTR_user_data = 12 [json_name="OS-EXT-SRV-ATTR:user_data"];
+ string OS_EXT_STS_task_state = 14[json_name="OS-EXT-SRV-ATTR:task_state"];
+ string OS_EXT_SRV_ATTR_hostname = 4 [json_name="OS-EXT-SRV-ATTR:hostname"];*/
+
+ string accessIPv4 = 18;
+ string accessIPv6 = 19;
+ Addresses addresses = 20;
+ string config_drive = 21;
+ string description = 23;
+ Flavor flavor = 24;
+ string hostId = 25;
+ string host_status = 26;
+ string id = 27;
+ Image image = 28;
+ string key_name = 29;
+ repeated Links1 links = 30;
+ bool locked = 31;
+ string locked_reason = 32;
+ Metadata metadata = 33;
+ string name = 34;
+
+ uint32 progress = 36;
+ repeated Security_groups security_groups = 37;
+ string status = 38;
+ repeated string tags = 39;
+ string tenant_id = 40;
+ string trusted_image_certificates = 41;
+ string updated = 42;
+ string user_id = 43;
+ }
+
+ repeated Servers servers = 1; // @gotags: copier:"ServersDetailed"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+/******************List servers end*************************/
+
+
+/******************create servers start*********************/
+
+//The message is consistent with the wdbsite,
+//so see the detailed annontation via web,https://docs.openstack.org/api-ref/compute/
+
+
+//req
+message CreateServerReq {
+
+ message Networks {
+ string uuid = 1; // @gotags: copier:"Uuid"
+ string port = 2;
+ string fixed_ip = 3;
+ string tag = 4;
+ }
+
+ message Block_device_mapping_v2 {
+ string boot_index = 1; // @gotags: copier:"BootIndex"
+ bool delete_on_termination = 2; // @gotags: copier:"DeleteOnTermination"
+ string destination_type = 3;
+ string device_name = 4;
+ string device_type = 5;
+ string disk_bus = 6;
+ string guest_format = 7;
+ bool no_device = 8;
+ string source_type = 9; // @gotags: copier:"SourceType"
+ string uuid = 10; // @gotags: copier:"Uuid"
+ string volume_size = 11;
+ string tag = 12;
+ string volume_type = 13; // @gotags: copier:"VolumeType"
+ }
+
+ message Metadata {
+ string My_Server_Name = 1 [json_name="My Server Name"];
+ }
+
+ message Personality {
+ string path = 1;
+ string contents = 2;
+ }
+
+ message Security_groups {
+ string name = 1;
+ }
+
+ message Server {
+ string flavorRef = 1; // @gotags: copier:"FlavorRef"
+ string name = 2; // @gotags: copier:"Name"
+ repeated Networks networks = 3; // @gotags: copier:"Networks"
+ string imageRef = 10; // @gotags: copier:"ImageRef"
+ string accessIPv4 = 4;
+ string accessIPv6 = 5;
+ string adminPass = 6;
+ string availability_zone = 7;
+ repeated Block_device_mapping_v2 block_device_mapping_v2 = 8; // @gotags: copier:"BlockDeviceMappingV2"
+ bool config_drive = 9;
+ string key_name = 11;
+ Metadata metadata = 12;
+ string OS_DCF_diskConfig = 13 [json_name="OS-DCF:diskConfig"]; // @gotags: copier:"OSDCFDiskConfig"
+ repeated Personality personality = 14;
+ repeated Security_groups security_groups = 15;
+ string user_data = 16;
+ string description = 17;
+ string hostname = 18;
+ repeated string tags = 19;
+ repeated string trusted_image_certificates = 20;
+ string host = 21;
+ string hypervisor_hostname = 22;
+ }
+
+ message Os_sch_hnt_scheduler_hints {
+ repeated string same_host = 1;
+ string build_near_host_ip = 2;
+ string cidr = 3;
+ repeated string different_cell = 4;
+ repeated string different_host = 5;
+ string group = 6;
+ string query = 7;
+ string target_cell = 8;
+ }
+
+ Server server = 1; // @gotags: copier:"Server"
+ // Os_sch_hnt_scheduler_hints OS_SCH_HNT_scheduler_hints = 2 [json_name="OS-SCH-HNT:scheduler_hints"];
+}
+
+
+//resp
+message CreateServerResp{
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Security_groups {
+ string name = 1; // @gotags: copier:"Name"
+ }
+
+ message Server {
+ string id = 1; // @gotags: copier:"Id"
+ repeated Links links = 2; //
+ string OS_DCF_diskConfig = 3 [json_name="OS-DCF:diskConfig"]; // @gotags: copier:"OSDCFDiskConfig"
+ repeated Security_groups security_groups = 4; // @gotags: copier:"SecurityGroups"
+ string adminPass =5; // @gotags: copier:"AdminPass"
+ }
+
+ Server server = 1; // @gotags: copier:"Server"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+
+}
+/******************create server end*************************/
+
+/******************Delete server start*************************/
+//The message is consistent with the wdbsite,
+//so see the detailed annontation via web,https://docs.openstack.org/api-ref/compute/
+
+//Req
+message DeleteServerReq{
+ string server_id = 1; // @gotags: copier:"ServerId"
+}
+
+//Resp
+message DeleteServerResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+/******************Delete server end*************************/
+
+/******************ListServerDetailedById server start*************************/
+//The message is consistent with the wdbsite,
+//so see the detailed annontation via web,https://docs.openstack.org/api-ref/compute/
+
+//Req
+message GetServersDetailedByIdReq{
+ string server_id = 1;
+
+}
+
+//Resp
+message GetServersDetailedByIdResp{
+
+ message Private {
+ string OS_EXT_IPS_MAC_mac_addr = 1 [json_name="OS-EXT-IPS-MAC:mac_addr"];
+ string OS_EXT_IPS_type = 2[json_name="OS-EXT-IPS:type"];
+ string addr = 3;
+ uint32 version = 4;
+ }
+
+ message Addresses {
+ repeated Private private = 1;
+ }
+
+ message Extra_specs {
+ }
+
+ message Flavor {
+ string id = 1;
+ string links = 2;
+ uint32 vcpus = 3;
+ uint32 ram = 4;
+ uint32 disk = 5;
+ uint32 ephemeral = 6;
+ uint32 swap = 7;
+ string original_name = 8;
+ Extra_specs extra_specs = 9;
+ }
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Image {
+ string id = 1;
+ repeated Links links = 2;
+ }
+
+ message Links1 {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Metadata {
+ }
+
+ message Os_extended_volumes_volumes_attached {
+ string id = 1;
+ bool delete_on_termination = 2;
+ }
+
+ message Fault {
+ uint32 code = 1;
+ string created = 2;
+ string message = 3;
+ string details = 4;
+ }
+
+ message Security_groups {
+ string name = 1;
+ }
+
+ message Servers {
+ string accessIPv4 = 1;
+ string accessIPv6 = 2;
+ Addresses addresses = 3;
+ string config_drive = 4;
+ string created = 5;
+ Flavor flavor = 6;
+ string hostId = 7;
+ string id = 8;
+ Image image = 9;
+ string key_name = 10;
+ repeated Links1 links = 11;
+ Metadata metadata = 12;
+ string name = 13;
+ string OS_DCF_diskConfig = 14[json_name = "OS-DCF:diskConfig"];
+ string OS_EXT_AZ_availability_zone = 15[json_name = "OS-EXT-AZ:availability_zone"];
+ string OS_EXT_SRV_ATTR_host = 16[json_name = "OS-EXT-SRV-ATTR:host"];
+ string OS_EXT_SRV_ATTR_hostname = 17[json_name = "OS-EXT-SRV-ATTR:hostname"];
+ string OS_EXT_SRV_ATTR_hypervisor_hostname = 18[json_name = "OS-EXT-SRV-ATTR:hypervisor_hostname"];
+ string OS_EXT_SRV_ATTR_instance_name = 19[json_name = "OS-EXT-SRV-ATTR:instance_name"];
+ string OS_EXT_SRV_ATTR_kernel_id = 20[json_name = "OS-EXT-SRV-ATTR:kernel_id"];
+ uint32 OS_EXT_SRV_ATTR_launch_index = 21[json_name = "OS-EXT-SRV-ATTR:launch_index"];
+ string OS_EXT_SRV_ATTR_ramdisk_id = 22[json_name = "OS-EXT-SRV-ATTR:ramdisk_id"];
+ string OS_EXT_SRV_ATTR_reservation_id = 23[json_name = "OS-EXT-SRV-ATTR:reservation_id"];
+ string OS_EXT_SRV_ATTR_root_device_name = 24[json_name = "OS-EXT-SRV-ATTR:root_device_name"];
+ string OS_EXT_SRV_ATTR_user_data = 25[json_name = "OS-EXT-SRV-ATTR:user_data"];
+ uint32 OS_EXT_STS_power_state = 26[json_name = "OS-EXT-STS:power_state"];
+ string OS_EXT_STS_task_state = 27[json_name = "OS-EXT-STS:task_state"];
+ string OS_EXT_STS_vm_state = 28[json_name = "OS-EXT-STS:vm_state"];
+ repeated Os_extended_volumes_volumes_attached os_extended_volumes_volumes_attached = 29[json_name = "os-extended-volumes:volumes_attached"];
+ string OS_SRV_USG_launched_at = 30[json_name = "OS-SRV-USG:launched_at"];
+ string OS_SRV_USG_terminated_at = 31[json_name = "OS-SRV-USG:terminated_at"];
+ string status = 32;
+ string tenant_id = 33;
+ string updated = 34;
+ string user_id = 35;
+ Fault fault = 36;
+ uint32 progress = 37;
+ repeated Security_groups security_groups = 38;
+ bool locked = 39;
+ string host_status = 40;
+ string description = 41;
+ repeated string tags = 42;
+ string trusted_image_certificates = 43;
+ repeated string server_groups = 44;
+ string locked_reason = 45;
+ }
+
+ Servers server = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+
+}
+
+/******************update server Start*************************/
+message UpdateServerReq{
+
+ message Server {
+ string accessIPv4 = 1;
+ string accessIPv6 = 2;
+ string OS_DCF_diskConfig = 3[json_name = "OS-DCF:diskConfig"];
+ string name = 4;
+ string description = 5;
+ }
+ string server_id =1;
+ Server server = 2;
+}
+
+message UpdateServerResp{
+ message Private {
+ string OS_EXT_IPS_MAC_mac_addr = 1[json_name = "OS-EXT-IPS-MAC:mac_addr"];
+ string OS_EXT_IPS_type = 2[json_name = "OS-EXT-IPS:type"];
+ string addr = 3;
+ uint32 version = 4;
+ }
+
+ message Addresses {
+ repeated Private private = 1;
+ }
+
+ message Extra_specs {
+ }
+
+ message Flavor {
+ uint32 disk = 1;
+ uint32 ephemeral = 2;
+ Extra_specs extra_specs = 3;
+ string original_name = 4;
+ uint32 ram = 5;
+ uint32 swap = 6;
+ uint32 vcpus = 7;
+ }
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Image {
+ string id = 1;
+ repeated Links links = 2;
+ }
+
+ message Links1 {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Metadata {
+ string My_Server_Name = 1[json_name = "My Server Name"];
+ }
+
+ message Security_groups {
+ string name = 1;
+ }
+
+ message Server {
+ string OS_DCF_diskConfig = 1[json_name = "OS-DCF:diskConfig"];
+ string OS_EXT_AZ_availability_zone = 2[json_name = "OS-EXT-AZ:availability_zone"];
+ string OS_EXT_SRV_ATTR_host = 3[json_name = "OS-EXT-SRV-ATTR:host"];
+ string OS_EXT_SRV_ATTR_hostname = 4[json_name = "OS-EXT-SRV-ATTR:hostname"];
+ string OS_EXT_SRV_ATTR_hypervisor_hostname = 5[json_name = "OS-EXT-SRV-ATTR:hypervisor_hostname"];
+ string OS_EXT_SRV_ATTR_instance_name = 6[json_name = "OS-EXT-SRV-ATTR:instance_name"];
+ string OS_EXT_SRV_ATTR_kernel_id = 7[json_name = "OS-EXT-SRV-ATTR:kernel_id"];
+ uint32 OS_EXT_SRV_ATTR_launch_index = 8[json_name = "OS-EXT-SRV-ATTR:launch_index"];
+ string OS_EXT_SRV_ATTR_ramdisk_id = 9[json_name = "OS-EXT-SRV-ATTR:ramdisk_id"];
+ string OS_EXT_SRV_ATTR_reservation_id = 10[json_name = "OS-EXT-SRV-ATTR:reservation_id"];
+ string OS_EXT_SRV_ATTR_root_device_name = 11[json_name = "OS-EXT-SRV-ATTR:root_device_name"];
+ string OS_EXT_SRV_ATTR_user_data = 12[json_name = "OS-EXT-SRV-ATTR:user_data"];
+ uint32 OS_EXT_STS_power_state = 13[json_name = "OS-EXT-STS:power_state"];
+ string OS_EXT_STS_task_state = 14[json_name = "OS-EXT-STS:task_state"];
+ string OS_EXT_STS_vm_state = 15[json_name = "OS-EXT-STS:vm_state"];
+ string OS_SRV_USG_launched_at = 16[json_name = "OS-SRV-USG:launched_at"];
+ string OS_SRV_USG_terminated_at = 17[json_name = "OS-SRV-USG:terminated_at"];
+ string accessIPv4 = 18;
+ string accessIPv6 = 19;
+ Addresses addresses = 20;
+ string config_drive = 21;
+ string created = 22;
+ string description = 23;
+ Flavor flavor = 24;
+ string hostId = 25;
+ string host_status = 26;
+ string id = 27;
+ Image image = 28;
+ string key_name = 29;
+ repeated Links1 links = 30;
+ bool locked = 31;
+ string locked_reason = 32;
+ Metadata metadata = 33;
+ string name = 34;
+ repeated string os_extended_volumes_volumes_attached = 35[json_name = "os-extended-volumes:volumes_attached"];
+ uint32 progress = 36;
+ repeated Security_groups security_groups = 37;
+ repeated string server_groups = 38;
+ string status = 39;
+ repeated string tags = 40;
+ string tenant_id = 41;
+ string trusted_image_certificates = 42;
+ string updated = 43;
+ string user_id = 44;
+ }
+
+ Server server = 1;
+ string msg =2; // @gotags: copier:"Msg"
+ int32 code =3; // @gotags: copier:"Code"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+
+message StartServerReq{
+ string server_id = 1;
+ OsStart osStart=2;
+ message OsStart{
+ string os_start = 1[json_name = "os-start"];
+ }
+}
+message StartServerResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+message StopServerReq{
+ string server_id = 1;
+ OsStop osStop=2;
+ message OsStop{
+ string os_stop = 1[json_name = "os-stop"];
+ }
+}
+message StopServerResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+message RebootServerReq{
+ string server_id = 1;
+ message Reboot {
+ string type = 1;
+ }
+ Reboot reboot = 2;
+}
+message RebootServerResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+message PauseServerReq{
+ string server_id = 1;
+ OsPause osPause=2;
+ message OsPause{
+ string pause = 1;
+ }
+}
+message PauseServerResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+/******************update server end*************************/
+
+/******************ListFlavorsDetail start*************************/
+
+message ListFlavorsDetailReq{
+ string sort_key =1;
+ string sort_dir =2;
+ int32 limit =3;
+ string marker =4;
+ int32 minDisk =5;
+ int32 minRam =6;
+ string is_public =7;
+}
+message ListFlavorsDetailResp{
+ repeated Flavor flavors =1; // @gotags: copier:"Flavor"
+ string msg =2; // @gotags: copier:"Msg"
+ int32 code =3; // @gotags: copier:"Code"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+
+ message Flavor {
+ string name = 1;
+ string description =2;
+ string id =3;
+ int32 disk = 4;
+ uint32 ephemeral = 5;
+ Extra_specs extra_specs = 6;
+ string original_name = 7;
+ int32 ram = 8;
+ int32 swap = 9;
+ int32 vcpus = 10;
+ repeated Links links = 11;
+ string OS_FLV_EXT_DATA_ephemeral = 12[json_name = "OS-FLV-EXT-DATA:ephemeral"];
+ string OS_FLV_DISABLED_disabled = 13[json_name = "OS-FLV-DISABLED:disabled"];
+ float rxtx_factor =15;
+ bool os_flavor_access_is_public = 16[json_name = "os-flavor-access:is_public"];
+ }
+ message Extra_specs {
+ }
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+}
+
+/******************ListFlavorsDetail end*************************/
+
+/******************networks*************************/
+/******************Show network details Start*************************/
+message ShowNetworkDetailsReq{
+ string network_id = 1; //网络ID
+ string fields = 2; //可选,希望服务器返回的字段
+}
+
+message Network{
+ bool admin_state_up = 1; // @gotags: copier:"AdminStateUp"
+ repeated string availability_zone_hints = 2;// @gotags: copier:"AvailabilityZoneHints"
+ repeated string availability_zones = 3; // @gotags: copier:"AvailabilityZones"
+ string created_at = 4;// @gotags: copier:"CreatedAt"
+ string dns_domain = 5;// @gotags: copier:"DnsDomain"
+ string id = 6; // @gotags: copier:"Id"
+ string ipv4_address_scope = 7; // @gotags: copier:"Ipv4AddressScope"
+ string ipv6_address_scope = 8; // @gotags: copier:"Ipv6AddressScope"
+ bool l2_adjacency = 9; // @gotags: copier:"L2Adjacency"
+ int64 mtu = 10; // @gotags: copier:"Mtu"
+ string name = 11; // @gotags: copier:"Name"
+ bool port_security_enabled = 12; // @gotags: copier:"PortSecurityEnabled"
+ string project_id = 13; // @gotags: copier:"ProjectId"
+ string qos_policy_id = 14; // @gotags: copier:"QosPolicyId"
+ int64 revision_number = 15;// @gotags: copier:"RevisionNumber"
+ bool router_external = 16 [json_name = "router:external"]; // @gotags: copier:"RouterExternal"
+ bool shared = 17; // @gotags: copier:"Shared"
+ string status = 18; // @gotags: copier:"Status"
+ repeated string subnets = 19; // @gotags: copier:"Subnets"
+ repeated string tags = 20; // @gotags: copier:"Tags"
+ string tenant_id = 21; // @gotags: copier:"TenantId"
+ string updated_at = 22; // @gotags: copier:"UpdatedAt"
+ bool vlan_transparent = 23; // @gotags: copier:"VlanTransparent"
+ string description = 24;// @gotags: copier:"Description"
+ bool is_default = 25; // @gotags: copier:"IsDefault"
+}
+
+message Segment{
+ string provider_network_type = 1 [json_name = "provider:network_type"]; //此网络映射到的物理网络的类型
+ string provider_physical_network = 2 [json_name = "provider:physical_network"]; //实现该网络/分段的物理网络
+ int64 provider_segmentation_id = 3 [json_name = "provider:segmentation_id"]; //物理网络上隔离段的ID,network_type属性定义分段模型
+}
+
+message ShowNetworkDetailsResp{
+ Network network = 1; //一个网络对象
+ bool admin_state_up = 2; //网络的管理状态,是向上(true)还是向下(false)
+ repeated string availability_zone_hints = 3; //网络的可用性区域候选者
+ repeated string availability_zones = 4; //网络的可用性区域
+ string created_at = 5; //创建资源的时间
+ string dns_domain = 6; //有效的DNS域
+ string id = 7; //网络ID
+ string ipv4_address_scope = 8; //与网络关联的IPv4地址作用域的ID
+ string ipv6_address_scope = 9; //与网络关联的IPv6地址作用域的ID
+ bool l2_adjacency = 10; //指示L2连接是否在整个网络中可用
+ int64 mtu = 11; //要寻址分段的最大传输单元(MTU)值,IPv4最小值为68,IPv6最小值为1280
+ string name = 12; //人类可读的网络名称
+ bool port_security_enabled = 13; //网络的端口安全状态。有效值为启用(true)和禁用(false)
+ string project_id = 14; //项目ID
+ string provider_network_type = 15 [json_name = "provider:network_type"]; //此网络映射到的物理网络的类型,例如flat、vlan、vxlan或gre。有效值取决于网络后端
+ string provider_physical_network = 16 [json_name = "provider:physical_network"]; //实现该网络/分段的物理网络
+ int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"]; //物理网络上隔离段的ID,network_type属性定义分段模型
+ string qos_policy_id = 18; //与网络关联的QoS策略的ID
+ int64 revision_number = 19; //资源的修订号
+ bool router_external = 20 [json_name = "router:external"]; //定义网络是否可用于创建浮动IP,只有具有此标志的网络才能作为路由器的外部网关
+ repeated Segment segments = 21; //提供程序段对象的列表
+ bool shared = 22; //指示是否在所有租户之间共享此网络,默认情况下,只有管理用户才能更改此值
+ string status = 23; //网络状态,值为ACTIVE、DOWN、BUILD或ERROR
+ repeated string subnets = 24; //关联的子网
+ string tenant_id = 25; //项目的ID
+ string updated_at = 26; //资源更新的时间
+ bool vlan_transparent = 27; //指示网络的VLAN透明模式,为VLAN透明(true)或非VLAN透明(false)
+ string description = 28; //人类可读的资源描述
+ bool is_default = 29; //网络是否为默认池
+ repeated string tags = 30; //资源上的标记列表
+ string msg =31; // @gotags: copier:"Msg"
+ int32 code =32; // @gotags: copier:"Code"
+ string error_msg =33;// @gotags: copier:"ErrorMsg"
+}
+/******************Show network details End*************************/
+
+
+/******************Update network Start*************************/
+message UpdateNetworkReq{
+ string network_id = 1;
+ Network network = 2;
+ bool admin_state_up = 3;
+ string dns_domain = 4;
+ int64 mtu = 5;
+ string name = 6;
+ bool port_security_enabled = 7;
+ string provider_network_type = 8 [json_name = "provider:network_type"];
+ string provider_physical_network = 9 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 10 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 11;
+ bool router_external = 12 [json_name = "router:external"];
+ repeated Segment segments = 13;
+ bool shared = 14;
+ string description = 15;
+ bool is_default = 16;
+}
+
+message UpdateNetworkResp{
+ Network network = 1;
+ bool admin_state_up = 2;
+ repeated string availability_zone_hints = 3;
+ repeated string availability_zones = 4;
+ string created_at = 5;
+ string dns_domain = 6;
+ string id = 7;
+ string ipv4_address_scope = 8;
+ string ipv6_address_scope = 9;
+ bool l2_adjacency = 10;
+ int64 mtu = 11;
+ string name = 12;
+ bool port_security_enabled = 13;
+ string project_id = 14;
+ string provider_network_type = 15 [json_name = "provider:network_type"];
+ string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 18;
+ int64 revision_number = 19;
+ bool router_external = 20 [json_name = "router:external"];
+ repeated Segment segments = 21;
+ bool shared = 22;
+ string status = 23;
+ repeated string subnets = 24;
+ string tenant_id = 25;
+ string updated_at = 26;
+ string description = 27;
+ bool is_default = 28;
+ repeated string tags = 29;
+ string msg =30; // @gotags: copier:"Msg"
+ int32 code =31; // @gotags: copier:"Code"
+ string error_msg =32;// @gotags: copier:"ErrorMsg"
+}
+/******************Update network End*************************/
+
+
+/******************Delete network Start*************************/
+message DeleteNetworkReq{
+ string network_id = 1; // @gotags: copier:"NetworkId"
+}
+
+message DeleteNetworkResp{
+ string msg =1; // @gotags: copier:"Msg"
+ int32 code =2; // @gotags: copier:"Code"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+/******************Delete network End*************************/
+
+
+/******************List networks Start*************************/
+message ListNetworksReq{
+ /* bool admin_state_up = 1;
+ string id = 2;
+ int64 mtu = 3;
+ string name = 4;
+ string project_id = 5;
+ string provider_network_type = 6 [json_name = "provider:network_type"];
+ string provider_physical_network = 7 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 8 [json_name = "provider:segmentation_id"];
+ int64 revision_number = 9;
+ bool router_external = 10 [json_name = "router:external"];
+ bool shared = 11;
+ string status = 12;
+ string tenant_id = 13;
+ bool vlan_transparent = 14;
+ string description = 15;
+ bool is_default = 16;
+ string tags = 17;
+ string tags_any = 18 [json_name = "tags-any"];
+ string not_tags = 19 [json_name = "not-tags"];
+ string not_tags_any = 20[json_name = "not-tags-any"];
+ string sort_dir = 21;
+ string sort_key = 22;
+ string fields = 23;*/
+}
+
+message ListNetworksResp{
+ repeated Network networks = 1; // @gotags: copier:"Networks"
+ /* bool admin_state_up = 2;
+ repeated string availability_zone_hints = 3;
+ repeated string availability_zones = 4;
+ string created_at = 5;
+ string dns_domain = 6;
+ string id = 7;
+ string ipv4_address_scope = 8;
+ string ipv6_address_scope = 9;
+ bool l2_adjacency = 10;
+ int64 mtu = 11;
+ string name = 12;
+ bool port_security_enabled = 13;
+ string project_id = 14;
+ string provider_network_type = 15 [json_name = "provider:network_type"];
+ string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 18;
+ int64 revision_number = 19;
+ bool router_external = 20 [json_name = "router:external"];
+ repeated Segment segments = 21;
+ bool shared = 22;
+ string status = 23;
+ repeated string subnets = 24;
+ string tenant_id = 25;
+ string updated_at = 26;
+ bool vlan_transparent = 27;
+ string description = 28;
+ bool is_default = 29;
+ repeated string tags = 30;*/
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+/******************List networks End*************************/
+
+
+/******************Create network Start*************************/
+message CreateNetworkReq{
+ Network network = 1; // @gotags: copier:"Network"
+ /* bool admin_state_up = 2;
+ string dns_domain = 3;
+ int64 mtu = 4;
+ string name = 5;
+ bool port_security_enabled = 6;
+ string project_id = 7;
+ string provider_network_type = 8 [json_name = "provider:network_type"];
+ string provider_physical_network = 9 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 10 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 11;
+ bool router_external = 12 [json_name = "router:external"];
+ repeated Segment segments = 13;
+ bool shared = 14;
+ string tenant_id = 15;
+ bool vlan_transparent = 16;
+ string description = 17;
+ bool is_default = 18;
+ repeated string availability_zone_hints = 19;*/
+}
+
+message CreateNetworkResp{
+ Network network = 1; // @gotags: copier:"Network"
+ /* bool admin_state_up = 2;
+ repeated string availability_zone_hints = 3;
+ repeated string availability_zones = 4;
+ string created_at = 5;
+ string dns_domain = 6;
+ string id = 7;
+ string ipv4_address_scope = 8;
+ string ipv6_address_scope = 9;
+ bool l2_adjacency = 10;
+ int64 mtu = 11;
+ string name = 12;
+ bool port_security_enabled = 13;
+ string project_id = 14;
+ string provider_network_type = 15 [json_name = "provider:network_type"];
+ string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 18;
+ int64 revision_number = 19;
+ bool router_external = 20 [json_name = "router:external"];
+ repeated Segment segments = 21;
+ bool shared = 22;
+ string status = 23;
+ repeated string subnets = 24;
+ string updated_at = 25;
+ bool vlan_transparent = 26;
+ string description = 27;
+ bool is_default = 28;
+ repeated string tags = 29;*/
+ int32 code = 30; // @gotags: copier:"Code"
+ string msg = 31; // @gotags: copier:"Msg"
+ string error_msg =32;// @gotags: copier:"ErrorMsg"
+}
+/******************Create network End*************************/
+message CreateSubnetReq{
+ Subnet subnet = 1; // @gotags: copier:"Subnet"
+}
+
+message CreateSubnetResp{
+ SubnetResp subnet = 1; // @gotags: copier:"SubnetResp"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+
+message Subnet {
+ string network_id =1; //@gotags: copier:"NetworkId"
+ string name =2; //@gotags: copier:"Name"
+ string cidr =3; //@gotags: copier:"Cidr"
+ int32 ip_version =4; //@gotags: copier:"IpVersion"
+ string gateway_ip =5; //@gotags: copier:"GatewayIp"
+ bool enable_dhcp =6; //@gotags: copier:"EnableDhcp"
+ repeated Allocation_pools allocation_pools =7; //@gotags: copier:"AllocationPools"
+ repeated string dns_nameservers =8; //@gotags: copier:"DnsNameservers"
+ repeated string host_routes =9; //@gotags: copier:"HostRoutes"
+
+}
+
+message SubnetResp {
+ string name =1;
+ string cidr =2;
+ int32 ip_version =3;
+ string gateway_ip =4;
+ bool enable_dhcp =5;
+ repeated Allocation_pools allocation_pools =6; //@gotags: copier:"Allocation_pools"
+ repeated string dns_nameservers =7;
+ repeated string host_routes =8;
+ string network_id =9;
+ string segment_id =10;
+ string project_id =11;
+ string tenant_id =12 ;
+ string dns_publish_fixed_ip =13;
+ string id =14;
+ string created_at =15;
+ string description =16;
+ string ipv6_address_mode =17;
+ string ipv6_ra_mode =18;
+ string revision_number =19;
+ repeated string service_types =20;
+ string subnetpool_id =21;
+ repeated string tags =22;
+ string updated_at =23;
+}
+
+message Allocation_pools {
+ string start = 1; // @gotags: copier:"Start"
+ string end = 2; // @gotags: copier:"End"
+}
+/******************Create subnets start*************************/
+
+/******************Create subnets End*************************/
+
+
+/******************Bulk create networks Start*************************/
+message BulkCreateNetworksReq{
+ repeated Network networks = 1;
+ bool admin_state_up = 2;
+ string dns_domain = 3;
+ int64 mtu = 4;
+ string name = 5;
+ bool port_security_enabled = 6;
+ string project_id = 7;
+ string provider_network_type = 8 [json_name = "provider:network_type"];
+ string provider_physical_network = 9 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 10 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 11;
+ bool router_external = 12 [json_name = "router:external"];
+ repeated Segment segments = 13;
+ bool shared = 14;
+ string tenant_id = 15;
+ bool vlan_transparent = 16;
+ string description = 17;
+ repeated string availability_zone_hints = 18;
+}
+
+message BulkCreateNetworksResp{
+ repeated Network networks = 1;
+ bool admin_state_up = 2;
+ repeated string availability_zone_hints = 3;
+ repeated string availability_zones = 4;
+ string created_at = 5;
+ string dns_domain = 6;
+ string id = 7;
+ string ipv4_address_scope = 8;
+ string ipv6_address_scope = 9;
+ bool l2_adjacency = 10;
+ int64 mtu = 11;
+ string name = 12;
+ bool port_security_enabled = 13;
+ string project_id = 14;
+ string provider_network_type = 15 [json_name = "provider:network_type"];
+ string provider_physical_network = 16 [json_name = "provider:physical_network"];
+ int64 provider_segmentation_id = 17 [json_name = "provider:segmentation_id"];
+ string qos_policy_id = 18;
+ int64 revision_number = 19;
+ bool router_external = 20 [json_name = "router:external"];
+ repeated Segment segments = 21;
+ bool shared = 22;
+ string status = 23;
+ repeated string subnets = 24;
+ string tenant_id = 25;
+ string updated_at = 26;
+ bool vlan_transparent = 27;
+ string description = 28;
+ bool is_default = 29;
+ repeated string tags = 30;
+ int32 code = 31; // @gotags: copier:"Code"
+ string msg = 32; // @gotags: copier:"Msg"
+ string error_msg =33;// @gotags: copier:"ErrorMsg"
+}
+/******************Bulk create networks End*************************/
+
+/******************WangQi Bare Metal API Start*************************/
+/****************** Bare Metal ListNodes Start*************************/
+message ListNodesReq {
+ string instance_uuid = 1;
+ bool maintenance = 2;
+ bool associated = 3;
+ string provision_state = 4;
+ bool sharded = 5;
+ string driver = 6;
+ string resource_class = 7;
+ string conductor_group = 8;
+ string conductor =9;
+ string fault =10;
+ string owner =11;
+ string lessee =12;
+ repeated string shard =13;
+ int64 limit =14;
+ string marker =15;
+ string sort_dir =16;
+ string sort_key =17;
+ bool detail =18;
+ string parent_node =19;
+ string include_children =20;
+}
+
+message ListNodesResp {
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Nodes {
+ string instance_uuid = 1;
+ repeated Links links = 2;
+ bool maintenance = 3;
+ string name = 4;
+ string power_state = 5;
+ string provision_state = 6;
+ string uuid = 7;
+ }
+
+ repeated Nodes nodes = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+/******************Bare Metal ListNodes End*************************/
+/****************** Bare Metal createNode Start*************************/
+message CreateNodeReq {
+ message Driver_info {
+ string ipmi_username = 1;
+ string ipmi_password = 2;
+ }
+
+ string name = 1;
+ string driver = 2;
+ Driver_info driver_info = 3;
+ string power_interface = 4;
+ string resource_class = 5;
+ string boot_interface = 6;
+ string conductor_group = 7;
+ string console_interface = 8;
+ string deploy_interface = 9;
+ string inspect_interface = 10;
+ string management_interface = 11;
+ string network_interface = 12;
+ string rescue_interface = 13;
+ string storage_interface = 14;
+ string uuid = 15;
+ string vendor_interface = 16;
+ string owner = 17;
+ string description = 18;
+ string lessee = 19;
+ string shard = 20;
+ Properties properties = 21;
+ bool automated_clean = 22;
+ string bios_interface = 23;
+ string chassis_uuid =24;
+ Instance_info instance_info = 25;
+ string instance_uuid =26;
+ bool maintenance = 27;
+ bool maintenance_reason = 28;
+ Network_data network_data = 29;
+ string parent_node =30;
+ bool protected =31;
+ string protected_reason =32;
+ bool retired =33;
+ string retired_reason =34;
+
+ message Properties {
+ }
+ message Instance_info {
+ }
+ message Network_data{
+
+ }
+ int32 code = 35; // @gotags: copier:"Code"
+ string msg = 36; // @gotags: copier:"Msg"
+ string error_msg =37;// @gotags: copier:"ErrorMsg"
+}
+
+message CreateNodeResp {
+ message Clean_step {
+ }
+
+ message Deploy_step {
+ }
+
+ message Driver_info {
+ string ipmi_password = 1;
+ string ipmi_username = 2;
+ }
+
+ message Driver_internal_info {
+ }
+
+ message Extra {
+ }
+
+ message Instance_info {
+ }
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Network_data {
+ }
+
+ message Portgroups {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Ports {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Properties {
+ }
+
+ message Raid_config {
+ }
+
+ message States {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Target_raid_config {
+ }
+
+ message Volume {
+ string href = 1;
+ string rel = 2;
+ }
+
+ string allocation_uuid = 1;
+ string name = 2;
+ string power_state = 3;
+ string target_power_state = 4;
+ string provision_state = 5;
+ string target_provision_state = 6;
+ bool maintenance = 7;
+ string maintenance_reason = 8;
+ string fault = 9;
+ string last_error = 10;
+ string reservation = 11;
+ string driver = 12;
+ Driver_info driver_info = 13;
+ Driver_internal_info driver_internal_info = 14;
+ Properties properties = 15;
+ Instance_info instance_info = 16;
+ string instance_uuid = 17;
+ string chassis_uuid = 18;
+ Extra extra = 19;
+ bool console_enabled = 20;
+ Raid_config raid_config = 21;
+ Target_raid_config target_raid_config = 22;
+ Clean_step clean_step = 23;
+ Deploy_step deploy_step = 24;
+ repeated Links links = 25;
+ repeated Ports ports = 26;
+ repeated Portgroups portgroups = 27;
+ repeated States states = 28;
+ string resource_class = 29;
+ string boot_interface = 30;
+ string console_interface = 31;
+ string deploy_interface = 32;
+ string conductor_group = 33;
+ string inspect_interface = 34;
+ string management_interface = 35;
+ string network_interface = 36;
+ string power_interface = 37;
+ string raid_interface = 38;
+ string rescue_interface = 39;
+ string storage_interface = 40;
+ repeated string traits = 41;
+ string vendor_interface = 42;
+ repeated Volume volume = 43;
+ bool protected = 44;
+ string protected_reason = 45;
+ string conductor =46;
+ string owner = 47;
+ string lessee = 48;
+ string shard = 49;
+ string description = 50;
+ string automated_clean = 51;
+ string bios_interface = 52;
+ Network_data network_data = 53;
+ bool retired = 54;
+ string retired_reason = 55;
+ string created_at = 56;
+ string inspection_finished_at = 57;
+ string inspection_started_at = 58;
+ string updated_at = 59;
+ string uuid = 60;
+ string provision_updated_at = 61;
+ int32 code = 62; // @gotags: copier:"Code"
+ string msg = 63; // @gotags: copier:"Msg"
+ string error_msg =65;// @gotags: copier:"ErrorMsg"
+}
+/******************Bare Metal createNode End*************************/
+/****************** Bare Metal DeleteNode Start*************************/
+message DeleteNodeReq{
+ string node_ident = 1;
+}
+message DeleteNodeResp{
+ int32 code = 1; // @gotags: copier:"Code"
+ string msg = 2; // @gotags: copier:"Msg"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+/****************** Bare Metal DeleteNode End*************************/
+/****************** Bare Metal ShowNodeDetailsReq Start******************/
+message ShowNodeDetailsReq{
+ string node_ident = 1;
+ repeated Fields fields = 2;
+
+ message Fields{
+ }
+}
+
+message ShowNodeDetailsResp{
+ message Clean_step {
+ }
+
+ message Deploy_step {
+ }
+
+ message Driver_info {
+ string ipmi_password = 1;
+ string ipmi_username = 2;
+ }
+
+ message Driver_internal_info {
+ string clean_steps = 1;
+ }
+
+ message Extra {
+ }
+
+ message Instance_info {
+ }
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Network_data {
+ }
+
+ message Portgroups {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Ports {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Properties {
+ }
+
+ message Raid_config {
+ }
+
+ message States {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Target_raid_config {
+ }
+
+ message Volume {
+ string href = 1;
+ string rel = 2;
+ }
+ message Traits{
+
+ }
+
+ string uuid = 1;
+ string name = 2;
+ string power_state = 3;
+ string target_power_state = 4;
+ string provision_state = 5;
+ string target_provision_state = 6;
+ bool maintenance = 7;
+ string maintenance_reason = 8;
+ string fault = 9;
+ string last_error = 10;
+ string reservation =11;
+ string driver = 12;
+ Driver_info driver_info = 13;
+ Driver_internal_info driver_internal_info = 14;
+ Properties properties = 15;
+ Instance_info instance_info = 16;
+ string instance_uuid = 17;
+ string chassis_uuid = 18;
+ Extra extra = 19;
+ bool console_enabled = 20;
+ Raid_config raid_config = 21;
+ Target_raid_config target_raid_config = 22;
+ Clean_step clean_step = 23;
+ Deploy_step deploy_step = 24;
+ repeated Links links = 25;
+ repeated Ports ports = 26;
+ repeated Portgroups portgroups = 27;
+ repeated States states = 28;
+ string resource_class = 29;
+ string bios_interface = 30;
+ string boot_interface = 31;
+ string console_interface = 32;
+ string deploy_interface = 33;
+ string inspect_interface = 34;
+ string management_interface =35;
+ string network_interface = 36;
+ string power_interface = 37;
+ string raid_interface = 38;
+ string rescue_interface = 39;
+ string storage_interface = 40;
+ repeated Traits traits = 41;
+ string vendor_interface = 42;
+ repeated Volume volume = 43;
+ string conductor_group = 44;
+ bool protected = 45;
+ string protected_reason = 46;
+ string owner = 47;
+ string lessee = 48;
+ string shard = 49;
+ string description = 50;
+ string conductor = 51;
+ string allocation_uuid = 52;
+ string created_at = 53;
+ string inspection_finished_at = 54;
+ string inspection_started_at = 55;
+ Network_data network_data = 57;
+ string provision_updated_at = 58;
+ bool retired = 59;
+ string retired_reason = 60;
+ string updated_at = 61;
+ int32 code = 62; // @gotags: copier:"Code"
+ string msg = 63; // @gotags: copier:"Msg"
+ string error_msg =64;// @gotags: copier:"ErrorMsg"
+}
+/****************** Bare Metal ShowNodeDetailsResp End********************/
+/******************WangQi Bare Metal API End*************************/
+
+/******************WangQi Images API start*************************/
+message CreateImageReq{
+ string container_format = 1;
+ string disk_format = 2;
+ string id = 3;
+ int64 min_disk =4;
+ int64 min_ram =5;
+ string name = 6;
+ bool protected =7;
+ repeated Tags tags = 43;
+ string visibility = 44;
+}
+message Tags{
+}
+
+message CreateImageResp{
+ string Location = 1;
+ string OpenStack_image_import_methods = 2 [json_name="OpenStack-image-import-methods"];
+ string OpenStack_image_store_ids = 3 [json_name="OpenStack-image-store-ids"];
+ string checksum = 4;
+ string container_format = 5;
+ string created_at = 6;
+ string disk_format = 7;
+ string file = 8;
+ string id = 9;
+ uint32 min_disk = 10;
+ uint32 min_ram = 11;
+ string name = 12;
+ string os_hash_algo = 13;
+ string os_hash_value = 14;
+ bool os_hidden = 15;
+ bool protected = 16;
+ string owner = 17;
+ string schema = 18;
+ string self = 19;
+ int64 size = 20;
+ string status = 21;
+ string updated_at = 22;
+ string visibility = 23;
+ int64 virtual_size = 24;
+ string direct_url =25;
+ repeated Tags tags = 26;
+ repeated Locations locations = 27;
+ message Tags{
+
+ }
+ message Locations{
+
+ }
+ int32 code = 28; // @gotags: copier:"Code"
+ string msg = 29; // @gotags: copier:"Msg"
+ string error_msg =30;// @gotags: copier:"ErrorMsg"
+}
+
+
+message ListImagesReq{
+ int32 limit = 1; // @gotags: copier:"Limit"
+ /* string marker =2; // @gotags: copier:"Marker"
+ string name =3; // @gotags: copier:"Name"
+ string owner = 4; // @gotags: copier:"Owner"
+ bool protected =5; // @gotags: copier:"Protected"
+ int32 status =6; // @gotags: copier:"Status"
+ string tag = 7; // @gotags: copier:"tag"
+ string visibility =8; // @gotags: copier:"visibility"
+ bool os_hidden =9;
+ string member_status =10;
+ string size_max =11;
+ string size_min =12;
+ string created_at =13;
+ string updated_at =14;
+ string sort_dir =15;
+ string sort_key =16;
+ string sort =17;*/
+}
+
+message ListImagesResp{
+ string first =1;
+ string next =2;
+ string schema = 3;
+ repeated Images images = 4;
+ message Images{
+ string status = 1;
+ string name = 2;
+ repeated Tags tags = 3;
+ string container_format = 4;
+ string created_at = 5;
+ string disk_format = 6;
+ string updated_at = 7;
+ string visibility = 8;
+ string self = 9;
+ uint32 min_disk = 10;
+ bool protected = 11;
+ string id = 12;
+ string file = 13;
+ string checksum = 14;
+ string os_hash_algo = 15;
+ string os_hash_value = 16;
+ bool os_hidden = 17;
+ string owner = 18;
+ uint32 size = 19;
+ uint32 min_ram = 20;
+ string schema = 21;
+ int32 virtual_size = 22;
+ }
+ message Tags {
+ }
+ int32 code = 5; // @gotags: copier:"Code"
+ string msg = 6; // @gotags: copier:"Msg"
+ string error_msg =7;// @gotags: copier:"ErrorMsg"
+}
+
+
+
+message DeleteImageReq{
+ string image_id = 1; // @gotags: copier:"imageId"
+}
+message DeleteImageResp{
+ int32 code = 1; // @gotags: copier:"Code"
+ string msg = 2; // @gotags: copier:"Msg"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+message UploadOsImageReq{
+ string image_id = 1; // @gotags: copier:"ImageId"
+
+}
+
+message UploadOsImageResp{
+ int32 code = 1; // @gotags: copier:"Code"
+ string msg = 2; // @gotags: copier:"Msg"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+/******************WangQi Images API End*************************/
+
+/******************WangQi volumes API start*************************/
+message ListVolumesReq{
+ string project_id = 1; // @gotags: copier:"ProjectId"
+ string all_tenants =2;
+ string sort =3;
+ int32 limit =4;
+ int32 offset =5;
+ string marker =6;
+ bool with_count =7;
+ string created_at =8;
+ bool consumes_quota =9;
+ string updated_at =10;
+}
+
+message ListVolumesResp{
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Volumes {
+ string id = 1;
+ repeated Links links = 2;
+ string name = 3;
+ }
+
+ repeated Volumes volumes = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+
+}
+
+message ListVolumesDetailReq{
+ string all_tenants =2;
+ string sort =3;
+ int32 limit =4;
+ int32 offset =5;
+ string marker =6;
+ bool with_count =7;
+ string created_at =8;
+ bool consumes_quota =9;
+ string updated_at =10;
+}
+
+message ListVolumesDetailResp{
+ repeated VolumeDetail volumes = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Attachments {
+ string server_id = 1;
+ string attachment_id = 2;
+ string attached_at =3;
+ string host_name =4;
+ string volume_id=5;
+ string device =6;
+ string id=7;
+ }
+ message Metadata{
+
+ }
+
+ message VolumeDetail {
+ string id = 1;
+ repeated Links links = 2;
+ string name = 3;
+ string migration_status =4;
+ repeated Attachments attachments = 5;
+ string availability_zone =6;
+ string os_vol_host_attr_host =7 [json_name="os-vol-host-attr:host"];
+ bool encrypted =8;
+ string encryption_key_id=9;
+ string updated_at=10;
+ string replication_status =11;
+ string snapshot_id =12;
+ int32 size =13;
+ string user_id =14;
+ string os_vol_tenant_attr_tenant_id =15 [json_name="os-vol-tenant-attr:tenant_id"];
+ string os_vol_mig_status_attr_migstat =16 [json_name="os-vol-mig-status-attr:migstat"];
+ Metadata metadata =17;
+ string status =18;
+ string description =19;
+ bool multiattach =20;
+ string source_volid =21;
+ string consistencygroup_id =22;
+ string os_vol_mig_status_attr_name_id =23 [json_name="os-vol-mig-status-attr:name_id"];
+ string bootable =24;
+ string created_at =25;
+ string volume_type =26;
+ string volume_type_id =27;
+ string group_id =28;
+ string provider_id =29;
+ string service_uuid =30;
+ bool shared_targets =31;
+ string cluster_name =32;
+ bool consumes_quota =33;
+ int32 count =34;
+
+ }
+}
+
+message CreateVolumeReq{
+ string project_id = 1; // @gotags: copier:"ProjectId"
+ Volume volume = 2;
+ // Os_ch_hnt_scheduler_hints OS_SCH_HNT_scheduler_hints = 3 [json_name="Os-sch-hnt:scheduler_hints"];
+ message Metadata {
+ }
+
+ message Volume {
+ int32 size = 1; // @gotags: copier:"Size"
+ string availability_zone =2; // @gotags: copier:"AvailabilityZone"
+ string name = 3; // @gotags: copier:"Name"
+ string volume_type =4; // @gotags: copier:"VolumeType"
+ string description =5; // @gotags: copier:"Description"
+ Metadata metadata = 11;
+
+ }
+
+ /* message Os_ch_hnt_scheduler_hints {
+ repeated string same_host = 1;
+ }*/
+}
+message CreateVolumeResp{
+
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Metadata {
+ }
+
+ message Volume {
+ repeated Attachments attachments = 1;
+ string availability_zone = 2;
+ string bootable = 3;
+ string consistencygroup_id = 4;
+ string created_at = 5;
+ string description = 6;
+ bool encrypted = 7;
+ string id = 8;
+ repeated Links links = 9;
+ Metadata metadata = 10;
+ string migration_status = 11;
+ bool multiattach = 12;
+ string name = 13;
+ string replication_status = 14;
+ uint32 size = 15;
+ string snapshot_id = 16;
+ string source_volid = 17;
+ string status = 18;
+ string updated_at = 19;
+ string user_id = 20;
+ string volume_type = 21;
+ string group_id = 22;
+ string provider_id = 23;
+ string service_uuid = 24;
+ bool shared_targets = 25;
+ string cluster_name = 26;
+ string volume_type_id = 27;
+ bool consumes_quota = 28;
+ }
+
+ message Attachments{
+ string server_id = 1;
+ string attachment_id = 2;
+ string attached_at = 3;
+ string host_name = 4;
+ string volume_id = 5;
+ string device = 6;
+ string id = 7;
+ }
+
+ Volume volume = 1; // @gotags: copier:"Volume"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+
+
+message DeleteVolumeReq{
+ // string project_id =1;
+ string volume_id =2;
+ bool cascade =3;
+ bool force =4;
+}
+
+message DeleteVolumeResp{
+ int32 code = 1; // @gotags: copier:"Code"
+ string msg = 2; // @gotags: copier:"Msg"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+
+message UpdateVolumeReq{
+ message Metadata {
+ string name = 1;
+ }
+
+ message Volume {
+ string name = 1;
+ string description = 2;
+ Metadata metadata = 3;
+ }
+ string project_id = 1;
+ string volume_type_id = 2;
+ Volume volume = 3;
+}
+
+message UpdateVolumeResp{
+ message Links {
+ string href = 1;
+ string rel = 2;
+ }
+
+ message Metadata {
+ string name = 1;
+ }
+
+ message Volume {
+ repeated Attachments attachments = 1;
+ string availability_zone = 2;
+ string bootable = 3;
+ string consistencygroup_id = 4;
+ string created_at = 5;
+ string description = 6;
+ bool encrypted = 7;
+ string id = 8;
+ repeated Links links = 9;
+ Metadata metadata = 10;
+ string migration_status = 11;
+ bool multiattach = 12;
+ string name = 13;
+ string replication_status = 14;
+ uint32 size = 15;
+ string snapshot_id = 16;
+ string source_volid = 17;
+ string status = 18;
+ string updated_at = 19;
+ string user_id = 20;
+ string volume_type = 21;
+ string group_id = 22;
+ string provider_id = 23;
+ string service_uuid = 24;
+ bool shared_targets = 25;
+ string cluster_name = 26;
+ string volume_type_id = 27;
+ bool consumes_quota = 28;
+ }
+ message Attachments{
+ string server_id = 1;
+ string attachment_id = 2;
+ string attached_at = 3;
+ string host_name = 4;
+ string volume_id = 5;
+ string device = 6;
+ string id = 7;
+ }
+
+ Volume volume = 1;
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+
+message ListVolumeTypesReq{
+ string project_id =1;
+ string sort =2;
+ bool is_public =3;
+ int32 limit=4;
+ int32 offset =5;
+ string marker =6;
+}
+
+message ListVolumeTypesResp{
+
+ message Extra_specs {
+ string capabilities = 1;
+ }
+
+ message Volume_types {
+ string description = 1;
+ Extra_specs extra_specs = 2;
+ string id = 3;
+ bool is_public = 4; // @gotags: copier:"IsPublic"
+ string name = 5;
+ bool os_volume_type_access_is_public = 6 [json_name="os-volume-type-access:is_public"]; // @gotags: copier:"OsVolumeTypeAccessIsPublic"
+ string qos_specs_id = 7;
+ }
+
+ repeated Volume_types volume_types = 1; // @gotags: copier:"VolumeTypes"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+message CreateTypeReq{
+ message Extra_specs {
+ string capabilities = 1;
+ }
+
+ message Volume_type {
+ string name = 1;
+ string description = 2;
+ bool os_volume_type_access_is_public = 3[json_name="os-volume-type-access:is_public"];
+ Extra_specs extra_specs = 4;
+ }
+ string project_id=1;
+ Volume_type volume_type = 2;
+}
+
+message CreateTypeResp{
+ message Extra_specs {
+ string capabilities = 1; // @gotags: copier:"Capabilities"
+ }
+
+ message Volume_type {
+ string name = 1; // @gotags: copier:"Name"
+ Extra_specs extra_specs = 2; // @gotags: copier:"ExtraSpecs"
+ bool os_volume_type_access_is_public = 3[json_name="os-volume-type-access:is_public"]; // @gotags: copier:"OsVolumeTypeAccessIsPublic"
+ bool is_public = 4; // @gotags: copier:"IsPublic"
+ string id = 5; // @gotags: copier:"Id"
+ string description = 6; // @gotags: copier:"Description"
+ }
+
+ Volume_type volume_type = 1; // @gotags: copier:"VolumeTypes"
+ int32 code = 2; // @gotags: copier:"Code"
+ string msg = 3; // @gotags: copier:"Msg"
+ string error_msg =4;// @gotags: copier:"ErrorMsg"
+}
+message DeleteTypeReq{
+ string project_id =1;
+ string volume_type_id =2;
+}
+
+message DeleteTypeResp{
+ int32 code = 1; // @gotags: copier:"Code"
+ string msg = 2; // @gotags: copier:"Msg"
+ string error_msg =3;// @gotags: copier:"ErrorMsg"
+}
+/******************WangQi volumes API start*************************/
+
+
+
+
+
+service Openstack {
+ // Overview
+ rpc GetComputeLimits(GetComputeLimitsReq) returns (GetComputeLimitsResp);
+ rpc GetVolumeLimits(GetVolumeLimitsReq) returns (GetVolumeLimitsResp);
+
+ // Servers
+ rpc ListServers(ListServersReq) returns (ListServersResp);
+ rpc ListServersDetailed (ListServersDetailedReq) returns (ListServersDetailedResp);
+ rpc CreateServer(CreateServerReq) returns (CreateServerResp);
+ rpc DeleteServer(DeleteServerReq) returns (DeleteServerResp);
+ rpc GetServersDetailedById(GetServersDetailedByIdReq) returns (GetServersDetailedByIdResp);
+ rpc UpdateServer(UpdateServerReq) returns (UpdateServerResp);
+ rpc StartServer(StartServerReq) returns (StartServerResp);
+ rpc StopServer(StopServerReq) returns (StopServerResp);
+ rpc RebootServer(RebootServerReq) returns (RebootServerResp);
+ rpc PauseServer(PauseServerReq) returns (PauseServerResp);
+ rpc ListFlavorsDetail(ListFlavorsDetailReq) returns (ListFlavorsDetailResp);
+ //network
+ rpc ShowNetworkDetails(ShowNetworkDetailsReq) returns (ShowNetworkDetailsResp);
+ rpc UpdateNetwork(UpdateNetworkReq) returns (UpdateNetworkResp);
+ rpc DeleteNetwork(DeleteNetworkReq) returns (DeleteNetworkResp);
+ rpc ListNetworks(ListNetworksReq) returns (ListNetworksResp);
+ rpc CreateNetwork(CreateNetworkReq) returns (CreateNetworkResp);
+ rpc BulkCreateNetworks(BulkCreateNetworksReq) returns (BulkCreateNetworksResp);//批量创建网络
+ rpc CreateSubnet(CreateSubnetReq) returns (CreateSubnetResp);//创建子网
+
+ // Images from glance
+ rpc CreateImage(CreateImageReq) returns (CreateImageResp);
+ rpc ListImages(ListImagesReq) returns (ListImagesResp);
+ rpc DeleteImage(DeleteImageReq) returns (DeleteImageResp);
+ rpc UploadImage(UploadOsImageReq) returns (UploadOsImageResp);
+
+ // Bare Metal
+ rpc ListNodes(ListNodesReq) returns (ListNodesResp);
+ rpc CreateNode(CreateNodeReq) returns (CreateNodeResp);
+ rpc DeleteNode(DeleteNodeReq) returns (DeleteNodeResp);
+ rpc ShowNodeDetails(ShowNodeDetailsReq) returns (ShowNodeDetailsResp);
+
+ // cinder(block storage) volumes
+ rpc ListVolumes(ListVolumesReq) returns (ListVolumesResp);
+ rpc ListVolumesDetail(ListVolumesDetailReq) returns (ListVolumesDetailResp);
+ rpc CreateVolume(CreateVolumeReq) returns (CreateVolumeResp);
+ rpc DeleteVolume(DeleteVolumeReq) returns (DeleteVolumeResp);
+ rpc UpdateVolume(UpdateVolumeReq) returns (UpdateVolumeResp);
+ rpc ListVolumeTypes(ListVolumeTypesReq) returns (ListVolumeTypesResp);
+ rpc CreateVolumeTypes(CreateTypeReq) returns (CreateTypeResp);
+ rpc DeleteVolumeTypes(DeleteTypeReq) returns (DeleteTypeResp);
+
+}
diff --git a/pcm-participant-openstack.Jenkinsfile b/pcm-participant-openstack.Jenkinsfile
new file mode 100644
index 0000000..0d6a767
--- /dev/null
+++ b/pcm-participant-openstack.Jenkinsfile
@@ -0,0 +1,70 @@
+def JOB_NAME = "${env.JOB_NAME}"
+def BUILD_NUMBER = "${env.BUILD_NUMBER}"
+def label = "jenkins-${JOB_NAME}-${BUILD_NUMBER}-${UUID.randomUUID().toString()}"
+
+def code_path = "./"
+def project_name = "pcm-participant-openstack"
+
+podTemplate(label: label, containers: [
+ containerTemplate(name: 'golang', image: 'golang:1.20.2-alpine3.17', command: 'cat', ttyEnabled: true),
+ containerTemplate(name: 'docker', image: 'docker:latest', command: 'cat', ttyEnabled: true),
+ containerTemplate(name: 'kubectl', image: 'jcce/kubectl:1.23.7', command: 'cat', ttyEnabled: true)
+], serviceAccount: 'jenkins', volumes: [
+ hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock')
+]) {
+ node(label) {
+ def imageEndpoint = "jcce/${project_name}"
+ stage('拉取代码') {
+ checkout scmGit(branches: [[name: "*/${branches}"]], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlink-zj', url: 'https://gitlink.org.cn/jcce-pcm/pcm-participant-openstack.git']])
+ echo "获取commit_id 作为镜像标签"
+ script {
+ env.imageTag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
+ env.image = "${registryUrl}/${imageEndpoint}:${imageTag}"
+ env.imageLatest = "${registryUrl}/${imageEndpoint}:latest"
+ }
+ }
+ stage('构建 Docker 镜像') {
+ withCredentials([[
+ $class: 'UsernamePasswordMultiBinding',
+ credentialsId: 'docker-auth',
+ usernameVariable: 'DOCKER_USER',
+ passwordVariable: 'DOCKER_PASSWORD'
+ ]]) {
+ container('docker') {
+ echo "构建 Docker 镜像阶段"
+ sh """
+ docker login ${registryUrl} -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}
+ docker build -t ${image} -t ${imageLatest} -f ${code_path}/Dockerfile .
+ docker push ${image}
+ docker push ${imageLatest}
+ docker rmi -f ${image} ${imageLatest}
+ """
+ }
+ }
+ }
+ stage('运行 Kubectl 部署到k8s平台') {
+ withCredentials([file(credentialsId: 'kubeconfig', variable: 'KUBECONFIG')]) {
+ container('kubectl') {
+ echo "部署应用"
+ sh """
+ mkdir -p ~/.kube && cp ${KUBECONFIG} ~/.kube/config
+ cd ${code_path}
+ sed -i 's#image_name#${image}#' ${project_name}.yaml
+ sed -i 's#secret_name#${secret_name}#' ${project_name}.yaml
+ sed -i 's#nacos_host#${nacos_host}#' ${project_name}.yaml
+ cat ${project_name}.yaml
+ kubectl apply -f ${project_name}.yaml
+ """
+ }
+ }
+ }
+ stage('清理镜像') {
+ container('docker') {
+ sh """
+ docker rmi -f ${image} ${imageLatest}
+ """
+ // cleanWs notFailBuild: true
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/pcm-participant-openstack.yaml b/pcm-participant-openstack.yaml
new file mode 100644
index 0000000..5df16a8
--- /dev/null
+++ b/pcm-participant-openstack.yaml
@@ -0,0 +1,67 @@
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+ name: pcm-participant-openstack-deployment
+ namespace: jcce-system
+ labels:
+ k8s-app: pcm-participant-openstack
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ k8s-app: pcm-participant-openstack
+ template:
+ metadata:
+ name: pcm-participant-openstack
+ labels:
+ k8s-app: pcm-participant-openstack
+ spec:
+ hostAliases:
+ - hostnames:
+ - nacos.jcce.dev
+ ip: nacos_host
+ imagePullSecrets:
+ - name: secret_name
+ containers:
+ - name: pcm-participant-openstack
+ image: image_name
+ resources: {}
+ imagePullPolicy: Always
+ securityContext:
+ privileged: false
+ procMount: Default
+ ports:
+ - containerPort: 80
+ volumeMounts: []
+ volumes: []
+ restartPolicy: Always
+ terminationGracePeriodSeconds: 30
+ dnsPolicy: ClusterFirst
+ securityContext: {}
+ schedulerName: default-scheduler
+ strategy:
+ type: RollingUpdate
+ rollingUpdate:
+ maxUnavailable: 25%
+ maxSurge: 25%
+ revisionHistoryLimit: 10
+ progressDeadlineSeconds: 600
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+ namespace: jcce-system
+ name: pcm-participant-openstack-service
+ labels:
+ k8s-service: pcm-participant-openstack
+spec:
+ selector:
+ k8s-app: pcm-participant-openstack
+ ports:
+ - name: web
+ protocol: TCP
+ port: 2010
+ targetPort: 2010
+ type: ClusterIP
diff --git a/pcmopenstack.go b/pcmopenstack.go
new file mode 100644
index 0000000..7238109
--- /dev/null
+++ b/pcmopenstack.go
@@ -0,0 +1,96 @@
+package main
+
+import (
+ "flag"
+ "github.com/zeromicro/go-zero/core/conf"
+ "github.com/zeromicro/go-zero/core/logx"
+ "github.com/zeromicro/go-zero/core/service"
+ "github.com/zeromicro/go-zero/zrpc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/config"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/server"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/internal/svc"
+ "gitlink.org.cn/jcce-pcm/pcm-participant-openstack/openstack"
+ "gitlink.org.cn/jcce-pcm/utils/interceptor/rpcserver"
+ commonConfig "gitlink.org.cn/jcce-pcm/utils/nacos"
+ "google.golang.org/grpc"
+ "google.golang.org/grpc/reflection"
+)
+
+var configFile = flag.String("f", "etc/pcmopenstack.yaml", "the config file")
+
+func main() {
+ flag.Parse()
+
+ var bootstrapConfig commonConfig.BootstrapConfig
+ conf.MustLoad(*configFile, &bootstrapConfig)
+
+ //解析业务配置
+ var c config.Config
+ nacosConfig := bootstrapConfig.NacosConfig
+
+ serviceConfigContent := nacosConfig.InitConfig(func(data string) {
+ err := conf.LoadFromYamlBytes([]byte(data), &c)
+ if err != nil {
+ panic(err)
+ }
+ })
+ err := conf.LoadFromYamlBytes([]byte(serviceConfigContent), &c)
+ if err != nil {
+ panic(err)
+ }
+ // start log component
+ logx.MustSetup(c.LogConf)
+ // 注册到nacos
+ nacosConfig.Discovery(&c.RpcServerConf)
+
+ ctx := svc.NewServiceContext(c)
+ ctx.Cron.Start()
+
+ s := zrpc.MustNewServer(c.RpcServerConf, func(grpcServer *grpc.Server) {
+ openstack.RegisterOpenstackServer(grpcServer, server.NewOpenstackServer(ctx))
+
+ if c.Mode == service.DevMode || c.Mode == service.TestMode {
+ reflection.Register(grpcServer)
+ }
+ })
+
+ //rpc log
+ s.AddUnaryInterceptors(rpcserver.LoggerInterceptor)
+
+ defer s.Stop()
+
+ logx.Infof("Starting rpc server at %s...\n", c.ListenOn)
+ //logic.InitCron(ctx)
+ s.Start()
+
+}
+
+/*// PushParticipantInfo 推送p端静态信息
+func PushParticipantInfo(config config.Config, participantService participantservice.ParticipantService) {
+ participantId, err := tool.GetParticipantId(*configFile)
+ if err != nil {
+ return
+ }
+
+ // 从配置文件中读取participant标签信息
+ var labels []*pcmCore.ParticipantLabel
+ for k, v := range config.Participant.Labels {
+ labels = append(labels, &pcmCore.ParticipantLabel{
+ Key: k,
+ Value: v,
+ })
+ }
+
+ req := participantservice.ParticipantPhyReq{}
+ tool.Convert(config.Participant, &req)
+ req.ParticipantId = participantId
+ req.LabelInfo = labels
+
+ resp, err := participantService.RegisterParticipant(context.Background(), &req)
+ if err != nil {
+ return
+ }
+
+ // 更新本地配置文件ParticipantId
+ tool.UpdateParticipantId(*configFile, strconv.FormatInt(resp.ParticipantId, 10))
+}*/