From b558b7813a25140c991cd9a034c71627cf15e223 Mon Sep 17 00:00:00 2001 From: Sean Egan Date: Wed, 29 Sep 2021 16:26:18 -0600 Subject: [PATCH] Include required codegen files in Go module (#316) --- .github/workflows/go.yml | 25 +- .gitignore | 4 +- Makefile | 22 +- README.md | 10 - gapic/doc.go | 153 + gapic/registry_client.go | 1815 +++++++++ gapic/registry_client_example_test.go | 702 ++++ go.mod | 2 +- go.sum | 2 - rpc/diff_analytics.pb.go | 568 +++ rpc/registry_conformance_report.pb.go | 576 +++ rpc/registry_index.pb.go | 637 +++ rpc/registry_lint.pb.go | 736 ++++ rpc/registry_manifest.pb.go | 385 ++ rpc/registry_map.pb.go | 180 + rpc/registry_models.pb.go | 1099 +++++ rpc/registry_notifications.pb.go | 266 ++ rpc/registry_receipt.pb.go | 175 + rpc/registry_references.pb.go | 189 + rpc/registry_service.pb.go | 3806 ++++++++++++++++++ rpc/registry_service_grpc.pb.go | 1347 +++++++ rpc/registry_styleguide.pb.go | 708 ++++ third_party/.gitignore | 1 - tools/COMPILE-PROTOS.sh | 120 - tools/GENERATE-APG.sh | 32 + tools/GENERATE-DOCS.sh | 26 +- tools/GENERATE-ENVOY-DESCRIPTORS.sh | 29 + tools/GENERATE-GAPIC.sh | 59 + tools/GENERATE-GRPC.sh | 26 + tools/GENERATE-OPENAPI.sh | 25 +- tools/GENERATE-RPC.sh | 28 + third_party/SETUP.sh => tools/LINT-PROTOS.sh | 21 +- tools/PROTOS.sh | 36 + 33 files changed, 13602 insertions(+), 208 deletions(-) create mode 100644 gapic/doc.go create mode 100644 gapic/registry_client.go create mode 100644 gapic/registry_client_example_test.go create mode 100644 rpc/diff_analytics.pb.go create mode 100644 rpc/registry_conformance_report.pb.go create mode 100644 rpc/registry_index.pb.go create mode 100644 rpc/registry_lint.pb.go create mode 100644 rpc/registry_manifest.pb.go create mode 100644 rpc/registry_map.pb.go create mode 100644 rpc/registry_models.pb.go create mode 100644 rpc/registry_notifications.pb.go create mode 100644 rpc/registry_receipt.pb.go create mode 100644 rpc/registry_references.pb.go create mode 100644 rpc/registry_service.pb.go create mode 100644 rpc/registry_service_grpc.pb.go create mode 100644 rpc/registry_styleguide.pb.go delete mode 100755 tools/COMPILE-PROTOS.sh create mode 100755 tools/GENERATE-APG.sh create mode 100755 tools/GENERATE-ENVOY-DESCRIPTORS.sh create mode 100755 tools/GENERATE-GAPIC.sh create mode 100755 tools/GENERATE-GRPC.sh create mode 100755 tools/GENERATE-RPC.sh rename third_party/SETUP.sh => tools/LINT-PROTOS.sh (65%) create mode 100644 tools/PROTOS.sh diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 87fd619ed..afcc71952 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -44,7 +44,6 @@ jobs: # Map tcp service container port 5432 to the host. - 5432:5432 steps: - - name: Set up Go 1.x uses: actions/setup-go@v2 with: @@ -52,14 +51,6 @@ jobs: - name: Check out code into the Go module directory uses: actions/checkout@v2 - - - name: Get protoc - run: | - sudo ./tools/FETCH-PROTOC.sh - sudo chown -R $USER /usr/local - - - name: Build - run: make all - name: golangci-lint uses: golangci/golangci-lint-action@v2 @@ -67,13 +58,15 @@ jobs: version: v1.36 args: --timeout 5m0s - - name: Test - run: | - export APG_REGISTRY_ADDRESS=localhost:8080 - export APG_REGISTRY_AUDIENCES=http://localhost:8080 - export APG_REGISTRY_INSECURE=1 - registry-server & - make test + - name: Install + run: go install ./... + + - name: Test everything with SQLite + run: registry-server & make test + env: + APG_REGISTRY_ADDRESS: localhost:8080 + APG_REGISTRY_AUDIENCES: http://localhost:8080 + APG_REGISTRY_INSECURE: 1 - name: Configure PostgreSQL env: diff --git a/.gitignore b/.gitignore index 63814a2f8..77572bc93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,8 @@ # Generated files cmd/apg/*.go -gapic/*.go -rpc/*.go -*.pb.go *.bleve deployments/envoy/proto.pb +docs/ # VSCode .vscode/ diff --git a/Makefile b/Makefile index ff00af260..c64c0d625 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,29 @@ lite: go install ./... -all: protos +all: + ./tools/GENERATE-RPC.sh + ./tools/GENERATE-GRPC.sh + ./tools/GENERATE-GAPIC.sh + ./tools/GENERATE-APG.sh + ./tools/GENERATE-ENVOY-DESCRIPTORS.sh go install ./... +apg: + ./tools/GENERATE-APG.sh + go install ./cmd/apg + protos: - cd third_party; sh ./SETUP.sh - ./tools/COMPILE-PROTOS.sh + ./tools/GENERATE-RPC.sh + ./tools/GENERATE-GRPC.sh + ./tools/GENERATE-GAPIC.sh test: go clean -testcache go test ./... clean: - rm -rf \ - cmd/apg/*.go gapic/*.go rpc/*.go \ - third_party/api-common-protos third_party/gnostic \ - envoy/proto.pb \ - ${HOME}/.config/registry + rm -rf cmd/apg/*.go envoy/proto.pb docs/ third_party/api-common-protos build: ifndef REGISTRY_PROJECT_IDENTIFIER diff --git a/README.md b/README.md index 261770e96..bebc0e2f0 100644 --- a/README.md +++ b/README.md @@ -78,16 +78,6 @@ builds can be made with `go install ./...` or `make lite`. The Makefile also includes targets that build and deploy the API on [Google Cloud Run](https://cloud.google.com/run) (see below). -## Generated Components - -Several directories of generated code are produced by the build process (see -the [COMPILE-PROTOS.sh](tools/COMPILE-PROTOS.sh) script for details). These -include: - -- [rpc](rpc), containing generated Go Protocol Buffer support code. -- [gapic](gapic), containing the Go GAPIC (generated API client) library. -- [cmd/apg](cmd/apg), containing a generated command-line interface. - ## Quickstart The easiest way to try the Registry API is to run `registry-server` locally. diff --git a/gapic/doc.go b/gapic/doc.go new file mode 100644 index 000000000..b234617f5 --- /dev/null +++ b/gapic/doc.go @@ -0,0 +1,153 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// +// Example usage +// +// To get started with this package, create a client. +// ctx := context.Background() +// c, err := gapic.NewRegistryClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// ctx := context.Background() +// c, err := gapic.NewRegistryClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &emptypb.Empty{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/google.golang.org/protobuf/types/known/emptypb#Empty. +// } +// resp, err := c.GetStatus(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// Use of Context +// +// The ctx passed to NewClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +// +// For information about setting deadlines, reusing contexts, and more +// please visit https://pkg.go.dev/cloud.google.com/go. +package gapic // import "github.com/apigee/registry/gapic" + +import ( + "context" + "os" + "runtime" + "strconv" + "strings" + "unicode" + + "google.golang.org/api/option" + "google.golang.org/grpc/metadata" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +const versionClient = "UNKNOWN" + +func insertMetadata(ctx context.Context, mds ...metadata.MD) context.Context { + out, _ := metadata.FromOutgoingContext(ctx) + out = out.Copy() + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + + insecure := os.Getenv("APG_REGISTRY_INSECURE") + token := os.Getenv("APG_REGISTRY_TOKEN") + if insecure == "1" && token != "" { + out["authorization"] = append(out["authorization"], "Bearer "+token) + } + return metadata.NewOutgoingContext(ctx, out) + +} + +func checkDisableDeadlines() (bool, error) { + raw, ok := os.LookupEnv("GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE") + if !ok { + return false, nil + } + + b, err := strconv.ParseBool(raw) + return b, err +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{} +} + +// versionGo returns the Go runtime version. The returned string +// has no whitespace, suitable for reporting in header. +func versionGo() string { + const develPrefix = "devel +" + + s := runtime.Version() + if strings.HasPrefix(s, develPrefix) { + s = s[len(develPrefix):] + if p := strings.IndexFunc(s, unicode.IsSpace); p >= 0 { + s = s[:p] + } + return s + } + + notSemverRune := func(r rune) bool { + return !strings.ContainsRune("0123456789.", r) + } + + if strings.HasPrefix(s, "go1") { + s = s[2:] + var prerelease string + if p := strings.IndexFunc(s, notSemverRune); p >= 0 { + s, prerelease = s[:p], s[p:] + } + if strings.HasSuffix(s, ".") { + s += "0" + } else if strings.Count(s, ".") < 2 { + s += ".0" + } + if prerelease != "" { + s += "-" + prerelease + } + return s + } + return "UNKNOWN" +} diff --git a/gapic/registry_client.go b/gapic/registry_client.go new file mode 100644 index 000000000..c51532dc7 --- /dev/null +++ b/gapic/registry_client.go @@ -0,0 +1,1815 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package gapic + +import ( + "context" + "fmt" + "math" + "net/url" + "time" + + rpcpb "github.com/apigee/registry/rpc" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httpbodypb "google.golang.org/genproto/googleapis/api/httpbody" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/proto" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +var newRegistryClientHook clientHook + +// RegistryCallOptions contains the retry settings for each method of RegistryClient. +type RegistryCallOptions struct { + GetStatus []gax.CallOption + ListProjects []gax.CallOption + GetProject []gax.CallOption + CreateProject []gax.CallOption + UpdateProject []gax.CallOption + DeleteProject []gax.CallOption + ListApis []gax.CallOption + GetApi []gax.CallOption + CreateApi []gax.CallOption + UpdateApi []gax.CallOption + DeleteApi []gax.CallOption + ListApiVersions []gax.CallOption + GetApiVersion []gax.CallOption + CreateApiVersion []gax.CallOption + UpdateApiVersion []gax.CallOption + DeleteApiVersion []gax.CallOption + ListApiSpecs []gax.CallOption + GetApiSpec []gax.CallOption + GetApiSpecContents []gax.CallOption + CreateApiSpec []gax.CallOption + UpdateApiSpec []gax.CallOption + DeleteApiSpec []gax.CallOption + TagApiSpecRevision []gax.CallOption + ListApiSpecRevisions []gax.CallOption + RollbackApiSpec []gax.CallOption + DeleteApiSpecRevision []gax.CallOption + ListArtifacts []gax.CallOption + GetArtifact []gax.CallOption + GetArtifactContents []gax.CallOption + CreateArtifact []gax.CallOption + ReplaceArtifact []gax.CallOption + DeleteArtifact []gax.CallOption +} + +func defaultRegistryGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("registry.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("registry.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://registry.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDisableServiceConfig()), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultRegistryCallOptions() *RegistryCallOptions { + return &RegistryCallOptions{ + GetStatus: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListProjects: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetProject: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateProject: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateProject: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteProject: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListApis: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetApi: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateApi: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateApi: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteApi: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListApiVersions: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetApiVersion: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateApiVersion: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateApiVersion: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteApiVersion: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListApiSpecs: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetApiSpec: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetApiSpecContents: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateApiSpec: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateApiSpec: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteApiSpec: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + TagApiSpecRevision: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListApiSpecRevisions: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + RollbackApiSpec: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteApiSpecRevision: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListArtifacts: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetArtifact: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetArtifactContents: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateArtifact: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ReplaceArtifact: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteArtifact: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 200 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + } +} + +// internalRegistryClient is an interface that defines the methods availaible from . +type internalRegistryClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + GetStatus(context.Context, *emptypb.Empty, ...gax.CallOption) (*rpcpb.Status, error) + ListProjects(context.Context, *rpcpb.ListProjectsRequest, ...gax.CallOption) *ProjectIterator + GetProject(context.Context, *rpcpb.GetProjectRequest, ...gax.CallOption) (*rpcpb.Project, error) + CreateProject(context.Context, *rpcpb.CreateProjectRequest, ...gax.CallOption) (*rpcpb.Project, error) + UpdateProject(context.Context, *rpcpb.UpdateProjectRequest, ...gax.CallOption) (*rpcpb.Project, error) + DeleteProject(context.Context, *rpcpb.DeleteProjectRequest, ...gax.CallOption) error + ListApis(context.Context, *rpcpb.ListApisRequest, ...gax.CallOption) *ApiIterator + GetApi(context.Context, *rpcpb.GetApiRequest, ...gax.CallOption) (*rpcpb.Api, error) + CreateApi(context.Context, *rpcpb.CreateApiRequest, ...gax.CallOption) (*rpcpb.Api, error) + UpdateApi(context.Context, *rpcpb.UpdateApiRequest, ...gax.CallOption) (*rpcpb.Api, error) + DeleteApi(context.Context, *rpcpb.DeleteApiRequest, ...gax.CallOption) error + ListApiVersions(context.Context, *rpcpb.ListApiVersionsRequest, ...gax.CallOption) *ApiVersionIterator + GetApiVersion(context.Context, *rpcpb.GetApiVersionRequest, ...gax.CallOption) (*rpcpb.ApiVersion, error) + CreateApiVersion(context.Context, *rpcpb.CreateApiVersionRequest, ...gax.CallOption) (*rpcpb.ApiVersion, error) + UpdateApiVersion(context.Context, *rpcpb.UpdateApiVersionRequest, ...gax.CallOption) (*rpcpb.ApiVersion, error) + DeleteApiVersion(context.Context, *rpcpb.DeleteApiVersionRequest, ...gax.CallOption) error + ListApiSpecs(context.Context, *rpcpb.ListApiSpecsRequest, ...gax.CallOption) *ApiSpecIterator + GetApiSpec(context.Context, *rpcpb.GetApiSpecRequest, ...gax.CallOption) (*rpcpb.ApiSpec, error) + GetApiSpecContents(context.Context, *rpcpb.GetApiSpecContentsRequest, ...gax.CallOption) (*httpbodypb.HttpBody, error) + CreateApiSpec(context.Context, *rpcpb.CreateApiSpecRequest, ...gax.CallOption) (*rpcpb.ApiSpec, error) + UpdateApiSpec(context.Context, *rpcpb.UpdateApiSpecRequest, ...gax.CallOption) (*rpcpb.ApiSpec, error) + DeleteApiSpec(context.Context, *rpcpb.DeleteApiSpecRequest, ...gax.CallOption) error + TagApiSpecRevision(context.Context, *rpcpb.TagApiSpecRevisionRequest, ...gax.CallOption) (*rpcpb.ApiSpec, error) + ListApiSpecRevisions(context.Context, *rpcpb.ListApiSpecRevisionsRequest, ...gax.CallOption) *ApiSpecIterator + RollbackApiSpec(context.Context, *rpcpb.RollbackApiSpecRequest, ...gax.CallOption) (*rpcpb.ApiSpec, error) + DeleteApiSpecRevision(context.Context, *rpcpb.DeleteApiSpecRevisionRequest, ...gax.CallOption) error + ListArtifacts(context.Context, *rpcpb.ListArtifactsRequest, ...gax.CallOption) *ArtifactIterator + GetArtifact(context.Context, *rpcpb.GetArtifactRequest, ...gax.CallOption) (*rpcpb.Artifact, error) + GetArtifactContents(context.Context, *rpcpb.GetArtifactContentsRequest, ...gax.CallOption) (*httpbodypb.HttpBody, error) + CreateArtifact(context.Context, *rpcpb.CreateArtifactRequest, ...gax.CallOption) (*rpcpb.Artifact, error) + ReplaceArtifact(context.Context, *rpcpb.ReplaceArtifactRequest, ...gax.CallOption) (*rpcpb.Artifact, error) + DeleteArtifact(context.Context, *rpcpb.DeleteArtifactRequest, ...gax.CallOption) error +} + +// RegistryClient is a client for interacting with . +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The Registry service allows teams to manage descriptions of APIs. +type RegistryClient struct { + // The internal transport-dependent client. + internalClient internalRegistryClient + + // The call options for this service. + CallOptions *RegistryCallOptions + +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *RegistryClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *RegistryClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated. +func (c *RegistryClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// GetStatus getStatus returns the status of the service. +// GetStatus is for verifying open source deployments only +// and is not included in hosted versions of the API. +// (– api-linter: core::0131::request-message-name=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Not in the official API. –) +// (– api-linter: core::0131::method-signature=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Not in the official API. –) +// (– api-linter: core::0131::http-uri-name=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Not in the official API. –) +func (c *RegistryClient) GetStatus(ctx context.Context, req *emptypb.Empty, opts ...gax.CallOption) (*rpcpb.Status, error) { + return c.internalClient.GetStatus(ctx, req, opts...) +} + +// ListProjects listProjects returns matching projects. +// (– api-linter: standard-methods=disabled –) +// (– api-linter: core::0132::method-signature=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): projects are top-level resources. –) +func (c *RegistryClient) ListProjects(ctx context.Context, req *rpcpb.ListProjectsRequest, opts ...gax.CallOption) *ProjectIterator { + return c.internalClient.ListProjects(ctx, req, opts...) +} + +// GetProject getProject returns a specified project. +func (c *RegistryClient) GetProject(ctx context.Context, req *rpcpb.GetProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + return c.internalClient.GetProject(ctx, req, opts...) +} + +// CreateProject createProject creates a specified project. +// (– api-linter: standard-methods=disabled –) +// (– api-linter: core::0133::http-uri-parent=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Project has an implicit parent. –) +// (– api-linter: core::0133::method-signature=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Project has an implicit parent. –) +func (c *RegistryClient) CreateProject(ctx context.Context, req *rpcpb.CreateProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + return c.internalClient.CreateProject(ctx, req, opts...) +} + +// UpdateProject updateProject can be used to modify a specified project. +func (c *RegistryClient) UpdateProject(ctx context.Context, req *rpcpb.UpdateProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + return c.internalClient.UpdateProject(ctx, req, opts...) +} + +// DeleteProject deleteProject removes a specified project and all of the resources that it +// owns. +func (c *RegistryClient) DeleteProject(ctx context.Context, req *rpcpb.DeleteProjectRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteProject(ctx, req, opts...) +} + +// ListApis listApis returns matching APIs. +func (c *RegistryClient) ListApis(ctx context.Context, req *rpcpb.ListApisRequest, opts ...gax.CallOption) *ApiIterator { + return c.internalClient.ListApis(ctx, req, opts...) +} + +// GetApi getApi returns a specified API. +func (c *RegistryClient) GetApi(ctx context.Context, req *rpcpb.GetApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + return c.internalClient.GetApi(ctx, req, opts...) +} + +// CreateApi createApi creates a specified API. +func (c *RegistryClient) CreateApi(ctx context.Context, req *rpcpb.CreateApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + return c.internalClient.CreateApi(ctx, req, opts...) +} + +// UpdateApi updateApi can be used to modify a specified API. +func (c *RegistryClient) UpdateApi(ctx context.Context, req *rpcpb.UpdateApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + return c.internalClient.UpdateApi(ctx, req, opts...) +} + +// DeleteApi deleteApi removes a specified API and all of the resources that it +// owns. +func (c *RegistryClient) DeleteApi(ctx context.Context, req *rpcpb.DeleteApiRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteApi(ctx, req, opts...) +} + +// ListApiVersions listApiVersions returns matching versions. +func (c *RegistryClient) ListApiVersions(ctx context.Context, req *rpcpb.ListApiVersionsRequest, opts ...gax.CallOption) *ApiVersionIterator { + return c.internalClient.ListApiVersions(ctx, req, opts...) +} + +// GetApiVersion getApiVersion returns a specified version. +func (c *RegistryClient) GetApiVersion(ctx context.Context, req *rpcpb.GetApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + return c.internalClient.GetApiVersion(ctx, req, opts...) +} + +// CreateApiVersion createApiVersion creates a specified version. +func (c *RegistryClient) CreateApiVersion(ctx context.Context, req *rpcpb.CreateApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + return c.internalClient.CreateApiVersion(ctx, req, opts...) +} + +// UpdateApiVersion updateApiVersion can be used to modify a specified version. +func (c *RegistryClient) UpdateApiVersion(ctx context.Context, req *rpcpb.UpdateApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + return c.internalClient.UpdateApiVersion(ctx, req, opts...) +} + +// DeleteApiVersion deleteApiVersion removes a specified version and all of the resources that +// it owns. +func (c *RegistryClient) DeleteApiVersion(ctx context.Context, req *rpcpb.DeleteApiVersionRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteApiVersion(ctx, req, opts...) +} + +// ListApiSpecs listApiSpecs returns matching specs. +func (c *RegistryClient) ListApiSpecs(ctx context.Context, req *rpcpb.ListApiSpecsRequest, opts ...gax.CallOption) *ApiSpecIterator { + return c.internalClient.ListApiSpecs(ctx, req, opts...) +} + +// GetApiSpec getApiSpec returns a specified spec. +func (c *RegistryClient) GetApiSpec(ctx context.Context, req *rpcpb.GetApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + return c.internalClient.GetApiSpec(ctx, req, opts...) +} + +// GetApiSpecContents getApiSpecContents returns the contents of a specified spec. +// If specs are stored with GZip compression, the default behavior +// is to return the spec uncompressed (the mime_type response field +// indicates the exact format returned). +// (– api-linter: core::0131::response-message-name=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Responses are arbitrary blobs of data. –) +func (c *RegistryClient) GetApiSpecContents(ctx context.Context, req *rpcpb.GetApiSpecContentsRequest, opts ...gax.CallOption) (*httpbodypb.HttpBody, error) { + return c.internalClient.GetApiSpecContents(ctx, req, opts...) +} + +// CreateApiSpec createApiSpec creates a specified spec. +func (c *RegistryClient) CreateApiSpec(ctx context.Context, req *rpcpb.CreateApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + return c.internalClient.CreateApiSpec(ctx, req, opts...) +} + +// UpdateApiSpec updateApiSpec can be used to modify a specified spec. +func (c *RegistryClient) UpdateApiSpec(ctx context.Context, req *rpcpb.UpdateApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + return c.internalClient.UpdateApiSpec(ctx, req, opts...) +} + +// DeleteApiSpec deleteApiSpec removes a specified spec, all revisions, and all child +// resources (e.g. artifacts). +func (c *RegistryClient) DeleteApiSpec(ctx context.Context, req *rpcpb.DeleteApiSpecRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteApiSpec(ctx, req, opts...) +} + +// TagApiSpecRevision tagApiSpecRevision adds a tag to a specified revision of a spec. +func (c *RegistryClient) TagApiSpecRevision(ctx context.Context, req *rpcpb.TagApiSpecRevisionRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + return c.internalClient.TagApiSpecRevision(ctx, req, opts...) +} + +// ListApiSpecRevisions listApiSpecRevisions lists all revisions of a spec. +// Revisions are returned in descending order of revision creation time. +func (c *RegistryClient) ListApiSpecRevisions(ctx context.Context, req *rpcpb.ListApiSpecRevisionsRequest, opts ...gax.CallOption) *ApiSpecIterator { + return c.internalClient.ListApiSpecRevisions(ctx, req, opts...) +} + +// RollbackApiSpec rollbackApiSpec sets the current revision to a specified prior revision. +// Note that this creates a new revision with a new revision ID. +func (c *RegistryClient) RollbackApiSpec(ctx context.Context, req *rpcpb.RollbackApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + return c.internalClient.RollbackApiSpec(ctx, req, opts...) +} + +// DeleteApiSpecRevision deleteApiSpecRevision deletes a revision of a spec. +func (c *RegistryClient) DeleteApiSpecRevision(ctx context.Context, req *rpcpb.DeleteApiSpecRevisionRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteApiSpecRevision(ctx, req, opts...) +} + +// ListArtifacts listArtifacts returns matching artifacts. +func (c *RegistryClient) ListArtifacts(ctx context.Context, req *rpcpb.ListArtifactsRequest, opts ...gax.CallOption) *ArtifactIterator { + return c.internalClient.ListArtifacts(ctx, req, opts...) +} + +// GetArtifact getArtifact returns a specified artifact. +func (c *RegistryClient) GetArtifact(ctx context.Context, req *rpcpb.GetArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + return c.internalClient.GetArtifact(ctx, req, opts...) +} + +// GetArtifactContents getArtifactContents returns the contents of a specified artifact. +// If artifacts are stored with GZip compression, the default behavior +// is to return the artifact uncompressed (the mime_type response field +// indicates the exact format returned). +// (– api-linter: core::0131::response-message-name=disabled +// aip.dev/not-precedent (at http://aip.dev/not-precedent): Responses are arbitrary blobs of data. –) +func (c *RegistryClient) GetArtifactContents(ctx context.Context, req *rpcpb.GetArtifactContentsRequest, opts ...gax.CallOption) (*httpbodypb.HttpBody, error) { + return c.internalClient.GetArtifactContents(ctx, req, opts...) +} + +// CreateArtifact createArtifact creates a specified artifact. +func (c *RegistryClient) CreateArtifact(ctx context.Context, req *rpcpb.CreateArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + return c.internalClient.CreateArtifact(ctx, req, opts...) +} + +// ReplaceArtifact replaceArtifact can be used to replace a specified artifact. +func (c *RegistryClient) ReplaceArtifact(ctx context.Context, req *rpcpb.ReplaceArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + return c.internalClient.ReplaceArtifact(ctx, req, opts...) +} + +// DeleteArtifact deleteArtifact removes a specified artifact. +func (c *RegistryClient) DeleteArtifact(ctx context.Context, req *rpcpb.DeleteArtifactRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteArtifact(ctx, req, opts...) +} + +// registryGRPCClient is a client for interacting with over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type registryGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // flag to opt out of default deadlines via GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE + disableDeadlines bool + + // Points back to the CallOptions field of the containing RegistryClient + CallOptions **RegistryCallOptions + + // The gRPC API client. + registryClient rpcpb.RegistryClient + + // The x-goog-* metadata to be sent with each request. + xGoogMetadata metadata.MD +} + +// NewRegistryClient creates a new registry client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The Registry service allows teams to manage descriptions of APIs. +func NewRegistryClient(ctx context.Context, opts ...option.ClientOption) (*RegistryClient, error) { + clientOpts := defaultRegistryGRPCClientOptions() + if newRegistryClientHook != nil { + hookOpts, err := newRegistryClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + disableDeadlines, err := checkDisableDeadlines() + if err != nil { + return nil, err + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := RegistryClient{CallOptions: defaultRegistryCallOptions()} + + c := ®istryGRPCClient{ + connPool: connPool, + disableDeadlines: disableDeadlines, + registryClient: rpcpb.NewRegistryClient(connPool), + CallOptions: &client.CallOptions, + + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated. +func (c *registryGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *registryGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", versionGo()}, keyval...) + kv = append(kv, "gapic", versionClient, "gax", gax.Version, "grpc", grpc.Version) + c.xGoogMetadata = metadata.Pairs("x-goog-api-client", gax.XGoogHeader(kv...)) +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *registryGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *registryGRPCClient) GetStatus(ctx context.Context, req *emptypb.Empty, opts ...gax.CallOption) (*rpcpb.Status, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + ctx = insertMetadata(ctx, c.xGoogMetadata) + opts = append((*c.CallOptions).GetStatus[0:len((*c.CallOptions).GetStatus):len((*c.CallOptions).GetStatus)], opts...) + var resp *rpcpb.Status + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetStatus(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) ListProjects(ctx context.Context, req *rpcpb.ListProjectsRequest, opts ...gax.CallOption) *ProjectIterator { + ctx = insertMetadata(ctx, c.xGoogMetadata) + opts = append((*c.CallOptions).ListProjects[0:len((*c.CallOptions).ListProjects):len((*c.CallOptions).ListProjects)], opts...) + it := &ProjectIterator{} + req = proto.Clone(req).(*rpcpb.ListProjectsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.Project, string, error) { + resp := &rpcpb.ListProjectsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListProjects(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetProjects(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) GetProject(ctx context.Context, req *rpcpb.GetProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetProject[0:len((*c.CallOptions).GetProject):len((*c.CallOptions).GetProject)], opts...) + var resp *rpcpb.Project + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetProject(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) CreateProject(ctx context.Context, req *rpcpb.CreateProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + ctx = insertMetadata(ctx, c.xGoogMetadata) + opts = append((*c.CallOptions).CreateProject[0:len((*c.CallOptions).CreateProject):len((*c.CallOptions).CreateProject)], opts...) + var resp *rpcpb.Project + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.CreateProject(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) UpdateProject(ctx context.Context, req *rpcpb.UpdateProjectRequest, opts ...gax.CallOption) (*rpcpb.Project, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "project.name", url.QueryEscape(req.GetProject().GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateProject[0:len((*c.CallOptions).UpdateProject):len((*c.CallOptions).UpdateProject)], opts...) + var resp *rpcpb.Project + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.UpdateProject(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteProject(ctx context.Context, req *rpcpb.DeleteProjectRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteProject[0:len((*c.CallOptions).DeleteProject):len((*c.CallOptions).DeleteProject)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteProject(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *registryGRPCClient) ListApis(ctx context.Context, req *rpcpb.ListApisRequest, opts ...gax.CallOption) *ApiIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListApis[0:len((*c.CallOptions).ListApis):len((*c.CallOptions).ListApis)], opts...) + it := &ApiIterator{} + req = proto.Clone(req).(*rpcpb.ListApisRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.Api, string, error) { + resp := &rpcpb.ListApisResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListApis(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetApis(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) GetApi(ctx context.Context, req *rpcpb.GetApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetApi[0:len((*c.CallOptions).GetApi):len((*c.CallOptions).GetApi)], opts...) + var resp *rpcpb.Api + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetApi(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) CreateApi(ctx context.Context, req *rpcpb.CreateApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateApi[0:len((*c.CallOptions).CreateApi):len((*c.CallOptions).CreateApi)], opts...) + var resp *rpcpb.Api + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.CreateApi(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) UpdateApi(ctx context.Context, req *rpcpb.UpdateApiRequest, opts ...gax.CallOption) (*rpcpb.Api, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "api.name", url.QueryEscape(req.GetApi().GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateApi[0:len((*c.CallOptions).UpdateApi):len((*c.CallOptions).UpdateApi)], opts...) + var resp *rpcpb.Api + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.UpdateApi(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteApi(ctx context.Context, req *rpcpb.DeleteApiRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteApi[0:len((*c.CallOptions).DeleteApi):len((*c.CallOptions).DeleteApi)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteApi(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *registryGRPCClient) ListApiVersions(ctx context.Context, req *rpcpb.ListApiVersionsRequest, opts ...gax.CallOption) *ApiVersionIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListApiVersions[0:len((*c.CallOptions).ListApiVersions):len((*c.CallOptions).ListApiVersions)], opts...) + it := &ApiVersionIterator{} + req = proto.Clone(req).(*rpcpb.ListApiVersionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.ApiVersion, string, error) { + resp := &rpcpb.ListApiVersionsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListApiVersions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetApiVersions(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) GetApiVersion(ctx context.Context, req *rpcpb.GetApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetApiVersion[0:len((*c.CallOptions).GetApiVersion):len((*c.CallOptions).GetApiVersion)], opts...) + var resp *rpcpb.ApiVersion + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetApiVersion(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) CreateApiVersion(ctx context.Context, req *rpcpb.CreateApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateApiVersion[0:len((*c.CallOptions).CreateApiVersion):len((*c.CallOptions).CreateApiVersion)], opts...) + var resp *rpcpb.ApiVersion + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.CreateApiVersion(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) UpdateApiVersion(ctx context.Context, req *rpcpb.UpdateApiVersionRequest, opts ...gax.CallOption) (*rpcpb.ApiVersion, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "api_version.name", url.QueryEscape(req.GetApiVersion().GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateApiVersion[0:len((*c.CallOptions).UpdateApiVersion):len((*c.CallOptions).UpdateApiVersion)], opts...) + var resp *rpcpb.ApiVersion + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.UpdateApiVersion(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteApiVersion(ctx context.Context, req *rpcpb.DeleteApiVersionRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteApiVersion[0:len((*c.CallOptions).DeleteApiVersion):len((*c.CallOptions).DeleteApiVersion)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteApiVersion(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *registryGRPCClient) ListApiSpecs(ctx context.Context, req *rpcpb.ListApiSpecsRequest, opts ...gax.CallOption) *ApiSpecIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListApiSpecs[0:len((*c.CallOptions).ListApiSpecs):len((*c.CallOptions).ListApiSpecs)], opts...) + it := &ApiSpecIterator{} + req = proto.Clone(req).(*rpcpb.ListApiSpecsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.ApiSpec, string, error) { + resp := &rpcpb.ListApiSpecsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListApiSpecs(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetApiSpecs(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) GetApiSpec(ctx context.Context, req *rpcpb.GetApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetApiSpec[0:len((*c.CallOptions).GetApiSpec):len((*c.CallOptions).GetApiSpec)], opts...) + var resp *rpcpb.ApiSpec + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetApiSpec(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) GetApiSpecContents(ctx context.Context, req *rpcpb.GetApiSpecContentsRequest, opts ...gax.CallOption) (*httpbodypb.HttpBody, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetApiSpecContents[0:len((*c.CallOptions).GetApiSpecContents):len((*c.CallOptions).GetApiSpecContents)], opts...) + var resp *httpbodypb.HttpBody + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetApiSpecContents(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) CreateApiSpec(ctx context.Context, req *rpcpb.CreateApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateApiSpec[0:len((*c.CallOptions).CreateApiSpec):len((*c.CallOptions).CreateApiSpec)], opts...) + var resp *rpcpb.ApiSpec + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.CreateApiSpec(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) UpdateApiSpec(ctx context.Context, req *rpcpb.UpdateApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "api_spec.name", url.QueryEscape(req.GetApiSpec().GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).UpdateApiSpec[0:len((*c.CallOptions).UpdateApiSpec):len((*c.CallOptions).UpdateApiSpec)], opts...) + var resp *rpcpb.ApiSpec + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.UpdateApiSpec(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteApiSpec(ctx context.Context, req *rpcpb.DeleteApiSpecRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteApiSpec[0:len((*c.CallOptions).DeleteApiSpec):len((*c.CallOptions).DeleteApiSpec)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteApiSpec(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *registryGRPCClient) TagApiSpecRevision(ctx context.Context, req *rpcpb.TagApiSpecRevisionRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).TagApiSpecRevision[0:len((*c.CallOptions).TagApiSpecRevision):len((*c.CallOptions).TagApiSpecRevision)], opts...) + var resp *rpcpb.ApiSpec + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.TagApiSpecRevision(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) ListApiSpecRevisions(ctx context.Context, req *rpcpb.ListApiSpecRevisionsRequest, opts ...gax.CallOption) *ApiSpecIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListApiSpecRevisions[0:len((*c.CallOptions).ListApiSpecRevisions):len((*c.CallOptions).ListApiSpecRevisions)], opts...) + it := &ApiSpecIterator{} + req = proto.Clone(req).(*rpcpb.ListApiSpecRevisionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.ApiSpec, string, error) { + resp := &rpcpb.ListApiSpecRevisionsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListApiSpecRevisions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetApiSpecs(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) RollbackApiSpec(ctx context.Context, req *rpcpb.RollbackApiSpecRequest, opts ...gax.CallOption) (*rpcpb.ApiSpec, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).RollbackApiSpec[0:len((*c.CallOptions).RollbackApiSpec):len((*c.CallOptions).RollbackApiSpec)], opts...) + var resp *rpcpb.ApiSpec + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.RollbackApiSpec(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteApiSpecRevision(ctx context.Context, req *rpcpb.DeleteApiSpecRevisionRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteApiSpecRevision[0:len((*c.CallOptions).DeleteApiSpecRevision):len((*c.CallOptions).DeleteApiSpecRevision)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteApiSpecRevision(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *registryGRPCClient) ListArtifacts(ctx context.Context, req *rpcpb.ListArtifactsRequest, opts ...gax.CallOption) *ArtifactIterator { + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ListArtifacts[0:len((*c.CallOptions).ListArtifacts):len((*c.CallOptions).ListArtifacts)], opts...) + it := &ArtifactIterator{} + req = proto.Clone(req).(*rpcpb.ListArtifactsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*rpcpb.Artifact, string, error) { + resp := &rpcpb.ListArtifactsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ListArtifacts(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetArtifacts(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *registryGRPCClient) GetArtifact(ctx context.Context, req *rpcpb.GetArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetArtifact[0:len((*c.CallOptions).GetArtifact):len((*c.CallOptions).GetArtifact)], opts...) + var resp *rpcpb.Artifact + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetArtifact(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) GetArtifactContents(ctx context.Context, req *rpcpb.GetArtifactContentsRequest, opts ...gax.CallOption) (*httpbodypb.HttpBody, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).GetArtifactContents[0:len((*c.CallOptions).GetArtifactContents):len((*c.CallOptions).GetArtifactContents)], opts...) + var resp *httpbodypb.HttpBody + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.GetArtifactContents(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) CreateArtifact(ctx context.Context, req *rpcpb.CreateArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).CreateArtifact[0:len((*c.CallOptions).CreateArtifact):len((*c.CallOptions).CreateArtifact)], opts...) + var resp *rpcpb.Artifact + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.CreateArtifact(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) ReplaceArtifact(ctx context.Context, req *rpcpb.ReplaceArtifactRequest, opts ...gax.CallOption) (*rpcpb.Artifact, error) { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "artifact.name", url.QueryEscape(req.GetArtifact().GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).ReplaceArtifact[0:len((*c.CallOptions).ReplaceArtifact):len((*c.CallOptions).ReplaceArtifact)], opts...) + var resp *rpcpb.Artifact + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.registryClient.ReplaceArtifact(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *registryGRPCClient) DeleteArtifact(ctx context.Context, req *rpcpb.DeleteArtifactRequest, opts ...gax.CallOption) error { + if _, ok := ctx.Deadline(); !ok && !c.disableDeadlines { + cctx, cancel := context.WithTimeout(ctx, 10000 * time.Millisecond) + defer cancel() + ctx = cctx + } + md := metadata.Pairs("x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))) + ctx = insertMetadata(ctx, c.xGoogMetadata, md) + opts = append((*c.CallOptions).DeleteArtifact[0:len((*c.CallOptions).DeleteArtifact):len((*c.CallOptions).DeleteArtifact)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.registryClient.DeleteArtifact(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +// ApiIterator manages a stream of *rpcpb.Api. +type ApiIterator struct { + items []*rpcpb.Api + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*rpcpb.Api, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ApiIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ApiIterator) Next() (*rpcpb.Api, error) { + var item *rpcpb.Api + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ApiIterator) bufLen() int { + return len(it.items) +} + +func (it *ApiIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ApiSpecIterator manages a stream of *rpcpb.ApiSpec. +type ApiSpecIterator struct { + items []*rpcpb.ApiSpec + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*rpcpb.ApiSpec, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ApiSpecIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ApiSpecIterator) Next() (*rpcpb.ApiSpec, error) { + var item *rpcpb.ApiSpec + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ApiSpecIterator) bufLen() int { + return len(it.items) +} + +func (it *ApiSpecIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ApiVersionIterator manages a stream of *rpcpb.ApiVersion. +type ApiVersionIterator struct { + items []*rpcpb.ApiVersion + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*rpcpb.ApiVersion, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ApiVersionIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ApiVersionIterator) Next() (*rpcpb.ApiVersion, error) { + var item *rpcpb.ApiVersion + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ApiVersionIterator) bufLen() int { + return len(it.items) +} + +func (it *ApiVersionIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ArtifactIterator manages a stream of *rpcpb.Artifact. +type ArtifactIterator struct { + items []*rpcpb.Artifact + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*rpcpb.Artifact, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ArtifactIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ArtifactIterator) Next() (*rpcpb.Artifact, error) { + var item *rpcpb.Artifact + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ArtifactIterator) bufLen() int { + return len(it.items) +} + +func (it *ArtifactIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ProjectIterator manages a stream of *rpcpb.Project. +type ProjectIterator struct { + items []*rpcpb.Project + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*rpcpb.Project, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ProjectIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ProjectIterator) Next() (*rpcpb.Project, error) { + var item *rpcpb.Project + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ProjectIterator) bufLen() int { + return len(it.items) +} + +func (it *ProjectIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +func (c *RegistryClient) GrpcClient() rpcpb.RegistryClient { + return c.internalClient.(*registryGRPCClient).registryClient +} diff --git a/gapic/registry_client_example_test.go b/gapic/registry_client_example_test.go new file mode 100644 index 000000000..592fe5b78 --- /dev/null +++ b/gapic/registry_client_example_test.go @@ -0,0 +1,702 @@ +// Copyright 2021 Google LLC +// +// 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package gapic_test + +import ( + "context" + + gapic "github.com/apigee/registry/gapic" + rpcpb "github.com/apigee/registry/rpc" + "google.golang.org/api/iterator" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +func ExampleNewRegistryClient() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleRegistryClient_GetStatus() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &emptypb.Empty{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/protobuf/types/known/emptypb#Empty. + } + resp, err := c.GetStatus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_ListProjects() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListProjectsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListProjectsRequest. + } + it := c.ListProjects(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_GetProject() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetProjectRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetProjectRequest. + } + resp, err := c.GetProject(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_CreateProject() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.CreateProjectRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#CreateProjectRequest. + } + resp, err := c.CreateProject(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_UpdateProject() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.UpdateProjectRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#UpdateProjectRequest. + } + resp, err := c.UpdateProject(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteProject() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteProjectRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteProjectRequest. + } + err = c.DeleteProject(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleRegistryClient_ListApis() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListApisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListApisRequest. + } + it := c.ListApis(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_GetApi() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetApiRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetApiRequest. + } + resp, err := c.GetApi(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_CreateApi() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.CreateApiRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#CreateApiRequest. + } + resp, err := c.CreateApi(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_UpdateApi() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.UpdateApiRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#UpdateApiRequest. + } + resp, err := c.UpdateApi(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteApi() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteApiRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteApiRequest. + } + err = c.DeleteApi(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleRegistryClient_ListApiVersions() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListApiVersionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListApiVersionsRequest. + } + it := c.ListApiVersions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_GetApiVersion() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetApiVersionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetApiVersionRequest. + } + resp, err := c.GetApiVersion(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_CreateApiVersion() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.CreateApiVersionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#CreateApiVersionRequest. + } + resp, err := c.CreateApiVersion(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_UpdateApiVersion() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.UpdateApiVersionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#UpdateApiVersionRequest. + } + resp, err := c.UpdateApiVersion(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteApiVersion() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteApiVersionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteApiVersionRequest. + } + err = c.DeleteApiVersion(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleRegistryClient_ListApiSpecs() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListApiSpecsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListApiSpecsRequest. + } + it := c.ListApiSpecs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_GetApiSpec() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetApiSpecRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetApiSpecRequest. + } + resp, err := c.GetApiSpec(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_GetApiSpecContents() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetApiSpecContentsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetApiSpecContentsRequest. + } + resp, err := c.GetApiSpecContents(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_CreateApiSpec() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.CreateApiSpecRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#CreateApiSpecRequest. + } + resp, err := c.CreateApiSpec(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_UpdateApiSpec() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.UpdateApiSpecRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#UpdateApiSpecRequest. + } + resp, err := c.UpdateApiSpec(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteApiSpec() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteApiSpecRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteApiSpecRequest. + } + err = c.DeleteApiSpec(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleRegistryClient_TagApiSpecRevision() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.TagApiSpecRevisionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#TagApiSpecRevisionRequest. + } + resp, err := c.TagApiSpecRevision(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_ListApiSpecRevisions() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListApiSpecRevisionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListApiSpecRevisionsRequest. + } + it := c.ListApiSpecRevisions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_RollbackApiSpec() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.RollbackApiSpecRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#RollbackApiSpecRequest. + } + resp, err := c.RollbackApiSpec(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteApiSpecRevision() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteApiSpecRevisionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteApiSpecRevisionRequest. + } + err = c.DeleteApiSpecRevision(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleRegistryClient_ListArtifacts() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ListArtifactsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ListArtifactsRequest. + } + it := c.ListArtifacts(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleRegistryClient_GetArtifact() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetArtifactRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetArtifactRequest. + } + resp, err := c.GetArtifact(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_GetArtifactContents() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.GetArtifactContentsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#GetArtifactContentsRequest. + } + resp, err := c.GetArtifactContents(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_CreateArtifact() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.CreateArtifactRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#CreateArtifactRequest. + } + resp, err := c.CreateArtifact(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_ReplaceArtifact() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.ReplaceArtifactRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#ReplaceArtifactRequest. + } + resp, err := c.ReplaceArtifact(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleRegistryClient_DeleteArtifact() { + ctx := context.Background() + c, err := gapic.NewRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &rpcpb.DeleteArtifactRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/github.com/apigee/registry/rpc#DeleteArtifactRequest. + } + err = c.DeleteArtifact(ctx, req) + if err != nil { + // TODO: Handle error. + } +} diff --git a/go.mod b/go.mod index e50af7d95..8183a6854 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/spf13/cobra v1.1.1 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.7.1 - github.com/stretchr/testify v1.7.0 // indirect + github.com/stretchr/testify v1.7.0 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect github.com/tufin/oasdiff v0.5.7 github.com/yoheimuta/go-protoparser/v4 v4.2.1 diff --git a/go.sum b/go.sum index afe401e79..b9bd296ef 100644 --- a/go.sum +++ b/go.sum @@ -166,7 +166,6 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 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-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= @@ -376,7 +375,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o github.com/kljensen/snowball v0.6.0/go.mod h1:27N7E8fVU5H68RlUmnWwZCfxgt4POBJfENGMvNRhldw= 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.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY= 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 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= diff --git a/rpc/diff_analytics.pb.go b/rpc/diff_analytics.pb.go new file mode 100644 index 000000000..051d1737c --- /dev/null +++ b/rpc/diff_analytics.pb.go @@ -0,0 +1,568 @@ +// Copyright 2021 Google LLC +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/diff_analytics.proto + +package rpc + +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) +) + +//Diff contains the diff of a spec and its revision. +type Diff struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // additions holds every addition change in the diff. + //The string will hold the entire field path of one addition change in the + //format foo.bar.x . + Additions []string `protobuf:"bytes,1,rep,name=additions,proto3" json:"additions,omitempty"` + // deletions holds every deletion change in the diff. + //The string will hold the entire field path of one deletion change in the + //format foo.bar.x . + Deletions []string `protobuf:"bytes,2,rep,name=deletions,proto3" json:"deletions,omitempty"` + // modifications holds every modification change in the diff. + //The string key will hold the field path of one modification change in the + //format foo.bar.x. + //The value of the key will repersent the element that was modified in the + //field. + Modifications map[string]*Diff_ValueChange `protobuf:"bytes,3,rep,name=modifications,proto3" json:"modifications,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Diff) Reset() { + *x = Diff{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Diff) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Diff) ProtoMessage() {} + +func (x *Diff) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_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 Diff.ProtoReflect.Descriptor instead. +func (*Diff) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP(), []int{0} +} + +func (x *Diff) GetAdditions() []string { + if x != nil { + return x.Additions + } + return nil +} + +func (x *Diff) GetDeletions() []string { + if x != nil { + return x.Deletions + } + return nil +} + +func (x *Diff) GetModifications() map[string]*Diff_ValueChange { + if x != nil { + return x.Modifications + } + return nil +} + +// ChangeDetails classifies changes from diff in to seperate categories. +type ChangeDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // breakingChanges is a Diff proto that only contians the breaking changes + //of a diff. + BreakingChanges *Diff `protobuf:"bytes,1,opt,name=breaking_changes,json=breakingChanges,proto3" json:"breaking_changes,omitempty"` + // nonBreakingChanges is a Diff proto that only contians the non-breaking + //changes of a diff. + NonBreakingChanges *Diff `protobuf:"bytes,2,opt,name=non_breaking_changes,json=nonBreakingChanges,proto3" json:"non_breaking_changes,omitempty"` + // unknownChanges is a Diff proto that contians all the changes that could not + //be classifed in the other categories. + UnknownChanges *Diff `protobuf:"bytes,3,opt,name=unknown_changes,json=unknownChanges,proto3" json:"unknown_changes,omitempty"` +} + +func (x *ChangeDetails) Reset() { + *x = ChangeDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeDetails) ProtoMessage() {} + +func (x *ChangeDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_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 ChangeDetails.ProtoReflect.Descriptor instead. +func (*ChangeDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP(), []int{1} +} + +func (x *ChangeDetails) GetBreakingChanges() *Diff { + if x != nil { + return x.BreakingChanges + } + return nil +} + +func (x *ChangeDetails) GetNonBreakingChanges() *Diff { + if x != nil { + return x.NonBreakingChanges + } + return nil +} + +func (x *ChangeDetails) GetUnknownChanges() *Diff { + if x != nil { + return x.UnknownChanges + } + return nil +} + +// ChangeStats holds information relating to a list of diffs +type ChangeStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // breaking_change_count repersents the total number of breaking changes. + BreakingChangeCount int64 `protobuf:"varint,1,opt,name=breaking_change_count,json=breakingChangeCount,proto3" json:"breaking_change_count,omitempty"` + // nonbreaking_change_count repersents the total number of non-breaking changes. + NonbreakingChangeCount int64 `protobuf:"varint,2,opt,name=nonbreaking_change_count,json=nonbreakingChangeCount,proto3" json:"nonbreaking_change_count,omitempty"` + // diff_count repersents the number of diffs used in this stats + DiffCount int64 `protobuf:"varint,3,opt,name=diff_count,json=diffCount,proto3" json:"diff_count,omitempty"` +} + +func (x *ChangeStats) Reset() { + *x = ChangeStats{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeStats) ProtoMessage() {} + +func (x *ChangeStats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_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 ChangeStats.ProtoReflect.Descriptor instead. +func (*ChangeStats) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP(), []int{2} +} + +func (x *ChangeStats) GetBreakingChangeCount() int64 { + if x != nil { + return x.BreakingChangeCount + } + return 0 +} + +func (x *ChangeStats) GetNonbreakingChangeCount() int64 { + if x != nil { + return x.NonbreakingChangeCount + } + return 0 +} + +func (x *ChangeStats) GetDiffCount() int64 { + if x != nil { + return x.DiffCount + } + return 0 +} + +// ChangeMetrics holds metrics about a list of diffs. Each metric is computed from +//two or more stats. +type ChangeMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // breaking_change_percentage is the precentage of changes that are breaking. + //It is computed by the equation + //(breaking_change_count / (nonbreaking_change_count + breaking_change_count)) + BreakingChangePercentage float64 `protobuf:"fixed64,1,opt,name=breaking_change_percentage,json=breakingChangePercentage,proto3" json:"breaking_change_percentage,omitempty"` + // breaking_change_rate is the average number of breaking changes that are + //introduced per Diff. + //It is computed by the equation + //((nonbreaking_change_count + breaking_change_count) / diff_count) + BreakingChangeRate float64 `protobuf:"fixed64,2,opt,name=breaking_change_rate,json=breakingChangeRate,proto3" json:"breaking_change_rate,omitempty"` +} + +func (x *ChangeMetrics) Reset() { + *x = ChangeMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeMetrics) ProtoMessage() {} + +func (x *ChangeMetrics) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_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 ChangeMetrics.ProtoReflect.Descriptor instead. +func (*ChangeMetrics) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP(), []int{3} +} + +func (x *ChangeMetrics) GetBreakingChangePercentage() float64 { + if x != nil { + return x.BreakingChangePercentage + } + return 0 +} + +func (x *ChangeMetrics) GetBreakingChangeRate() float64 { + if x != nil { + return x.BreakingChangeRate + } + return 0 +} + +// ValueChange hold the values of the elements that changed in one diff change. +type Diff_ValueChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // from repersents the previous value of the element. + From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + // to repersents the current value of the element. + To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` +} + +func (x *Diff_ValueChange) Reset() { + *x = Diff_ValueChange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Diff_ValueChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Diff_ValueChange) ProtoMessage() {} + +func (x *Diff_ValueChange) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_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 Diff_ValueChange.ProtoReflect.Descriptor instead. +func (*Diff_ValueChange) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *Diff_ValueChange) GetFrom() string { + if x != nil { + return x.From + } + return "" +} + +func (x *Diff_ValueChange) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDesc = []byte{ + 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, + 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0xf1, 0x02, + 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x71, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x69, 0x66, 0x66, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x31, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x1a, 0x86, 0x01, 0x0a, 0x12, 0x4d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x5a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xc3, 0x02, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x12, 0x63, 0x0a, 0x10, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x6a, 0x0a, 0x14, 0x6e, 0x6f, 0x6e, 0x5f, + 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, + 0x52, 0x12, 0x6e, 0x6f, 0x6e, 0x42, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x0e, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x72, 0x65, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x6e, + 0x6f, 0x6e, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6e, + 0x6f, 0x6e, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x69, 0x66, 0x66, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x7f, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x18, 0x62, 0x72, 0x65, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x12, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x61, 0x74, 0x65, 0x42, 0x24, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_goTypes = []interface{}{ + (*Diff)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.Diff + (*ChangeDetails)(nil), // 1: google.cloud.apigee.registry.applications.v1alpha1.ChangeDetails + (*ChangeStats)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.ChangeStats + (*ChangeMetrics)(nil), // 3: google.cloud.apigee.registry.applications.v1alpha1.ChangeMetrics + (*Diff_ValueChange)(nil), // 4: google.cloud.apigee.registry.applications.v1alpha1.Diff.ValueChange + nil, // 5: google.cloud.apigee.registry.applications.v1alpha1.Diff.ModificationsEntry +} +var file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_depIdxs = []int32{ + 5, // 0: google.cloud.apigee.registry.applications.v1alpha1.Diff.modifications:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Diff.ModificationsEntry + 0, // 1: google.cloud.apigee.registry.applications.v1alpha1.ChangeDetails.breaking_changes:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Diff + 0, // 2: google.cloud.apigee.registry.applications.v1alpha1.ChangeDetails.non_breaking_changes:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Diff + 0, // 3: google.cloud.apigee.registry.applications.v1alpha1.ChangeDetails.unknown_changes:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Diff + 4, // 4: google.cloud.apigee.registry.applications.v1alpha1.Diff.ModificationsEntry.value:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Diff.ValueChange + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Diff); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Diff_ValueChange); 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_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_diff_analytics_proto_depIdxs = nil +} diff --git a/rpc/registry_conformance_report.pb.go b/rpc/registry_conformance_report.pb.go new file mode 100644 index 000000000..8e5e9f26c --- /dev/null +++ b/rpc/registry_conformance_report.pb.go @@ -0,0 +1,576 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_conformance_report.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + 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) +) + +// ConformanceReport describes how well an API Spec or a series of +// API Specs conform to a specific API Style guide. +type ConformanceReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the conformance report. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Name of the style guide that this report pertains to. + StyleguideName string `protobuf:"bytes,2,opt,name=styleguide_name,json=styleguideName,proto3" json:"styleguide_name,omitempty"` + // A list of guideline report groups. + GuidelineReportGroups []*GuidelineReportGroup `protobuf:"bytes,3,rep,name=guideline_report_groups,json=guidelineReportGroups,proto3" json:"guideline_report_groups,omitempty"` +} + +func (x *ConformanceReport) Reset() { + *x = ConformanceReport{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConformanceReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConformanceReport) ProtoMessage() {} + +func (x *ConformanceReport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_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 ConformanceReport.ProtoReflect.Descriptor instead. +func (*ConformanceReport) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP(), []int{0} +} + +func (x *ConformanceReport) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ConformanceReport) GetStyleguideName() string { + if x != nil { + return x.StyleguideName + } + return "" +} + +func (x *ConformanceReport) GetGuidelineReportGroups() []*GuidelineReportGroup { + if x != nil { + return x.GuidelineReportGroups + } + return nil +} + +// GuidelineReport describes how well an API Spec or a series of +// API Specs conform to a guideline within an API Style Guide. +type GuidelineReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the guideline that this report pertains to. + GuidelineName string `protobuf:"bytes,1,opt,name=guideline_name,json=guidelineName,proto3" json:"guideline_name,omitempty"` + // A list of rule report groups. + RuleReportGroups []*RuleReportGroup `protobuf:"bytes,2,rep,name=rule_report_groups,json=ruleReportGroups,proto3" json:"rule_report_groups,omitempty"` +} + +func (x *GuidelineReport) Reset() { + *x = GuidelineReport{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuidelineReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuidelineReport) ProtoMessage() {} + +func (x *GuidelineReport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_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 GuidelineReport.ProtoReflect.Descriptor instead. +func (*GuidelineReport) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP(), []int{1} +} + +func (x *GuidelineReport) GetGuidelineName() string { + if x != nil { + return x.GuidelineName + } + return "" +} + +func (x *GuidelineReport) GetRuleReportGroups() []*RuleReportGroup { + if x != nil { + return x.RuleReportGroups + } + return nil +} + +// RuleReport provides information and feedback on a rule that +// a spec breaches within a guideline on an API Style Guide. +type RuleReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the rule that the spec breaches. + RuleName string `protobuf:"bytes,1,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` + // Resource name of the spec that the rule was breached on. + SpecName string `protobuf:"bytes,2,opt,name=spec_name,json=specName,proto3" json:"spec_name,omitempty"` + // A suggestion for resolving the problem. + Suggestion string `protobuf:"bytes,3,opt,name=suggestion,proto3" json:"suggestion,omitempty"` + // The location of the problem in the spec file. + Location *LintLocation `protobuf:"bytes,4,opt,name=location,proto3" json:"location,omitempty"` +} + +func (x *RuleReport) Reset() { + *x = RuleReport{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuleReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleReport) ProtoMessage() {} + +func (x *RuleReport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_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 RuleReport.ProtoReflect.Descriptor instead. +func (*RuleReport) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP(), []int{2} +} + +func (x *RuleReport) GetRuleName() string { + if x != nil { + return x.RuleName + } + return "" +} + +func (x *RuleReport) GetSpecName() string { + if x != nil { + return x.SpecName + } + return "" +} + +func (x *RuleReport) GetSuggestion() string { + if x != nil { + return x.Suggestion + } + return "" +} + +func (x *RuleReport) GetLocation() *LintLocation { + if x != nil { + return x.Location + } + return nil +} + +// GuidelineReportGroup is an abstraction that maps status +// (PROPOSED, ACTIVE, DEPRECATED, DISABLED) to a list of +// guideline reports for guidelines of that status. +type GuidelineReportGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Status of the guidelines in this report group. + Status Guideline_Status `protobuf:"varint,1,opt,name=status,proto3,enum=google.cloud.apigee.registry.applications.v1alpha1.Guideline_Status" json:"status,omitempty"` + // A list of guideline reports. + GuidelineReports []*GuidelineReport `protobuf:"bytes,2,rep,name=guideline_reports,json=guidelineReports,proto3" json:"guideline_reports,omitempty"` +} + +func (x *GuidelineReportGroup) Reset() { + *x = GuidelineReportGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuidelineReportGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuidelineReportGroup) ProtoMessage() {} + +func (x *GuidelineReportGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_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 GuidelineReportGroup.ProtoReflect.Descriptor instead. +func (*GuidelineReportGroup) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP(), []int{3} +} + +func (x *GuidelineReportGroup) GetStatus() Guideline_Status { + if x != nil { + return x.Status + } + return Guideline_STATUS_UNSPECIFIED +} + +func (x *GuidelineReportGroup) GetGuidelineReports() []*GuidelineReport { + if x != nil { + return x.GuidelineReports + } + return nil +} + +// RuleReportGroup is an abstraction that maps severity +// (ERROR WARNING, INFO, HINT) to a list of rule reports for +// rules of that severity. +type RuleReportGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Severity of the rules in this report group. + Severity Rule_Severity `protobuf:"varint,1,opt,name=severity,proto3,enum=google.cloud.apigee.registry.applications.v1alpha1.Rule_Severity" json:"severity,omitempty"` + // A list of rule reports. + RuleReports []*RuleReport `protobuf:"bytes,2,rep,name=rule_reports,json=ruleReports,proto3" json:"rule_reports,omitempty"` +} + +func (x *RuleReportGroup) Reset() { + *x = RuleReportGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RuleReportGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleReportGroup) ProtoMessage() {} + +func (x *RuleReportGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_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 RuleReportGroup.ProtoReflect.Descriptor instead. +func (*RuleReportGroup) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP(), []int{4} +} + +func (x *RuleReportGroup) GetSeverity() Rule_Severity { + if x != nil { + return x.Severity + } + return Rule_SEVERITY_UNSPECIFIED +} + +func (x *RuleReportGroup) GetRuleReports() []*RuleReport { + if x != nil { + return x.RuleReports + } + return nil +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDesc = []byte{ + 0x0a, 0x54, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, + 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x4c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x67, 0x75, + 0x69, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x67, 0x75, 0x69, 0x64, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x67, 0x75, 0x69, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x17, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x15, 0x67, 0x75, 0x69, 0x64, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0d, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x71, 0x0a, 0x12, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, + 0x70, 0x65, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x67, 0x67, 0x65, + 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x67, + 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf0, 0x01, 0x0a, 0x14, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x61, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x75, 0x0a, 0x11, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x22, 0xdd, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x62, 0x0a, 0x08, + 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, + 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x66, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x42, 0x7e, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x1e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_goTypes = []interface{}{ + (*ConformanceReport)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.ConformanceReport + (*GuidelineReport)(nil), // 1: google.cloud.apigee.registry.applications.v1alpha1.GuidelineReport + (*RuleReport)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.RuleReport + (*GuidelineReportGroup)(nil), // 3: google.cloud.apigee.registry.applications.v1alpha1.GuidelineReportGroup + (*RuleReportGroup)(nil), // 4: google.cloud.apigee.registry.applications.v1alpha1.RuleReportGroup + (*LintLocation)(nil), // 5: google.cloud.apigee.registry.applications.v1alpha1.LintLocation + (Guideline_Status)(0), // 6: google.cloud.apigee.registry.applications.v1alpha1.Guideline.Status + (Rule_Severity)(0), // 7: google.cloud.apigee.registry.applications.v1alpha1.Rule.Severity +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_depIdxs = []int32{ + 3, // 0: google.cloud.apigee.registry.applications.v1alpha1.ConformanceReport.guideline_report_groups:type_name -> google.cloud.apigee.registry.applications.v1alpha1.GuidelineReportGroup + 4, // 1: google.cloud.apigee.registry.applications.v1alpha1.GuidelineReport.rule_report_groups:type_name -> google.cloud.apigee.registry.applications.v1alpha1.RuleReportGroup + 5, // 2: google.cloud.apigee.registry.applications.v1alpha1.RuleReport.location:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintLocation + 6, // 3: google.cloud.apigee.registry.applications.v1alpha1.GuidelineReportGroup.status:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Guideline.Status + 1, // 4: google.cloud.apigee.registry.applications.v1alpha1.GuidelineReportGroup.guideline_reports:type_name -> google.cloud.apigee.registry.applications.v1alpha1.GuidelineReport + 7, // 5: google.cloud.apigee.registry.applications.v1alpha1.RuleReportGroup.severity:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Rule.Severity + 2, // 6: google.cloud.apigee.registry.applications.v1alpha1.RuleReportGroup.rule_reports:type_name -> google.cloud.apigee.registry.applications.v1alpha1.RuleReport + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_init() +} +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto != nil { + return + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_init() + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConformanceReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuidelineReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RuleReport); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuidelineReportGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RuleReportGroup); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_conformance_report_proto_depIdxs = nil +} diff --git a/rpc/registry_index.pb.go b/rpc/registry_index.pb.go new file mode 100644 index 000000000..2d548d8f0 --- /dev/null +++ b/rpc/registry_index.pb.go @@ -0,0 +1,637 @@ +// Copyright 2020 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_index.proto + +package rpc + +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) +) + +// An Operation represents an operation in an API. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Operation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the operation. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The name of the service. + Service string `protobuf:"bytes,2,opt,name=service,proto3" json:"service,omitempty"` + // The HTTP verb of the operation. + Verb string `protobuf:"bytes,3,opt,name=verb,proto3" json:"verb,omitempty"` + // The HTTP path of the operation. + Path string `protobuf:"bytes,4,opt,name=path,proto3" json:"path,omitempty"` + // The file containing the operation. + File string `protobuf:"bytes,5,opt,name=file,proto3" json:"file,omitempty"` +} + +func (x *Operation) Reset() { + *x = Operation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Operation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Operation) ProtoMessage() {} + +func (x *Operation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_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 Operation.ProtoReflect.Descriptor instead. +func (*Operation) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP(), []int{0} +} + +func (x *Operation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Operation) GetService() string { + if x != nil { + return x.Service + } + return "" +} + +func (x *Operation) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *Operation) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *Operation) GetFile() string { + if x != nil { + return x.File + } + return "" +} + +// A Schema represents an API message structure. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Schema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the schema. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The resource name of the schema. + Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + // The resource type of the schema. + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + // The fields of the schema. + Fields []*Field `protobuf:"bytes,4,rep,name=fields,proto3" json:"fields,omitempty"` + // The file containing the schema. + File string `protobuf:"bytes,5,opt,name=file,proto3" json:"file,omitempty"` +} + +func (x *Schema) Reset() { + *x = Schema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Schema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Schema) ProtoMessage() {} + +func (x *Schema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_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 Schema.ProtoReflect.Descriptor instead. +func (*Schema) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP(), []int{1} +} + +func (x *Schema) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Schema) GetResource() string { + if x != nil { + return x.Resource + } + return "" +} + +func (x *Schema) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Schema) GetFields() []*Field { + if x != nil { + return x.Fields + } + return nil +} + +func (x *Schema) GetFile() string { + if x != nil { + return x.File + } + return "" +} + +// A Field represents a field in a schema. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Field struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the field. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The schema containing the field. + Schema string `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"` + // The file containing the field. + File string `protobuf:"bytes,3,opt,name=file,proto3" json:"file,omitempty"` +} + +func (x *Field) Reset() { + *x = Field{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Field) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Field) ProtoMessage() {} + +func (x *Field) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_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 Field.ProtoReflect.Descriptor instead. +func (*Field) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP(), []int{2} +} + +func (x *Field) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Field) GetSchema() string { + if x != nil { + return x.Schema + } + return "" +} + +func (x *Field) GetFile() string { + if x != nil { + return x.File + } + return "" +} + +// A File represents a source file of an API description. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type File struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the file. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The operations in the file. + Operations []*Operation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` + // The schemas in the file. + Schemas []*Schema `protobuf:"bytes,3,rep,name=schemas,proto3" json:"schemas,omitempty"` +} + +func (x *File) Reset() { + *x = File{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *File) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*File) ProtoMessage() {} + +func (x *File) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_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 File.ProtoReflect.Descriptor instead. +func (*File) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP(), []int{3} +} + +func (x *File) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *File) GetOperations() []*Operation { + if x != nil { + return x.Operations + } + return nil +} + +func (x *File) GetSchemas() []*Schema { + if x != nil { + return x.Schemas + } + return nil +} + +// An Index lists fields, schemas, and operations with their associated files. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Index struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the index. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The files in the index. + Files []*File `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"` + // The fields in the index (a flat list). + Fields []*Field `protobuf:"bytes,3,rep,name=fields,proto3" json:"fields,omitempty"` + // The schemas in the index (a flat list). + Schemas []*Schema `protobuf:"bytes,4,rep,name=schemas,proto3" json:"schemas,omitempty"` + // The operations in the index (a flat list). + Operations []*Operation `protobuf:"bytes,5,rep,name=operations,proto3" json:"operations,omitempty"` +} + +func (x *Index) Reset() { + *x = Index{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index) ProtoMessage() {} + +func (x *Index) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_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 Index.ProtoReflect.Descriptor instead. +func (*Index) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP(), []int{4} +} + +func (x *Index) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Index) GetFiles() []*File { + if x != nil { + return x.Files + } + return nil +} + +func (x *Index) GetFields() []*Field { + if x != nil { + return x.Fields + } + return nil +} + +func (x *Index) GetSchemas() []*Schema { + if x != nil { + return x.Schemas + } + return nil +} + +func (x *Index) GetOperations() []*Operation { + if x != nil { + return x.Operations + } + return nil +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDesc = []byte{ + 0x0a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0x75, 0x0a, + 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x66, 0x69, 0x6c, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x47, 0x0a, 0x05, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x5d, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x54, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x07, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x73, 0x22, 0xf3, 0x02, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x07, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x5d, 0x0a, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x72, 0x0a, 0x36, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_goTypes = []interface{}{ + (*Operation)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.Operation + (*Schema)(nil), // 1: google.cloud.apigee.registry.applications.v1alpha1.Schema + (*Field)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.Field + (*File)(nil), // 3: google.cloud.apigee.registry.applications.v1alpha1.File + (*Index)(nil), // 4: google.cloud.apigee.registry.applications.v1alpha1.Index +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_depIdxs = []int32{ + 2, // 0: google.cloud.apigee.registry.applications.v1alpha1.Schema.fields:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Field + 0, // 1: google.cloud.apigee.registry.applications.v1alpha1.File.operations:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Operation + 1, // 2: google.cloud.apigee.registry.applications.v1alpha1.File.schemas:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Schema + 3, // 3: google.cloud.apigee.registry.applications.v1alpha1.Index.files:type_name -> google.cloud.apigee.registry.applications.v1alpha1.File + 2, // 4: google.cloud.apigee.registry.applications.v1alpha1.Index.fields:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Field + 1, // 5: google.cloud.apigee.registry.applications.v1alpha1.Index.schemas:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Schema + 0, // 6: google.cloud.apigee.registry.applications.v1alpha1.Index.operations:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Operation + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Operation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Schema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Field); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*File); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_index_proto_depIdxs = nil +} diff --git a/rpc/registry_lint.pb.go b/rpc/registry_lint.pb.go new file mode 100644 index 000000000..5314642ad --- /dev/null +++ b/rpc/registry_lint.pb.go @@ -0,0 +1,736 @@ +// Copyright 2020 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_lint.proto + +package rpc + +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) +) + +// Lint wraps the result of a linter run for an API. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Lint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the result. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The lint results for each file examined. + Files []*LintFile `protobuf:"bytes,2,rep,name=files,proto3" json:"files,omitempty"` +} + +func (x *Lint) Reset() { + *x = Lint{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Lint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Lint) ProtoMessage() {} + +func (x *Lint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 Lint.ProtoReflect.Descriptor instead. +func (*Lint) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{0} +} + +func (x *Lint) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Lint) GetFiles() []*LintFile { + if x != nil { + return x.Files + } + return nil +} + +// LintFile wraps the result of a linter run for a file. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintFile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path of the file linted. + FilePath string `protobuf:"bytes,1,opt,name=file_path,json=filePath,proto3" json:"file_path,omitempty"` + // The problems found when the file was linted. + Problems []*LintProblem `protobuf:"bytes,2,rep,name=problems,proto3" json:"problems,omitempty"` +} + +func (x *LintFile) Reset() { + *x = LintFile{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintFile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintFile) ProtoMessage() {} + +func (x *LintFile) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintFile.ProtoReflect.Descriptor instead. +func (*LintFile) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{1} +} + +func (x *LintFile) GetFilePath() string { + if x != nil { + return x.FilePath + } + return "" +} + +func (x *LintFile) GetProblems() []*LintProblem { + if x != nil { + return x.Problems + } + return nil +} + +// LintProblem represents a problem found by a linter. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintProblem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A message describing the problem. + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + // An identifier for a related design rule. + RuleId string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + // A link for a related design rule. + RuleDocUri string `protobuf:"bytes,3,opt,name=rule_doc_uri,json=ruleDocUri,proto3" json:"rule_doc_uri,omitempty"` + // A suggestion for resolving the problem. + Suggestion string `protobuf:"bytes,4,opt,name=suggestion,proto3" json:"suggestion,omitempty"` + // The location in the file of the problem. + Location *LintLocation `protobuf:"bytes,5,opt,name=location,proto3" json:"location,omitempty"` +} + +func (x *LintProblem) Reset() { + *x = LintProblem{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintProblem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintProblem) ProtoMessage() {} + +func (x *LintProblem) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintProblem.ProtoReflect.Descriptor instead. +func (*LintProblem) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{2} +} + +func (x *LintProblem) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *LintProblem) GetRuleId() string { + if x != nil { + return x.RuleId + } + return "" +} + +func (x *LintProblem) GetRuleDocUri() string { + if x != nil { + return x.RuleDocUri + } + return "" +} + +func (x *LintProblem) GetSuggestion() string { + if x != nil { + return x.Suggestion + } + return "" +} + +func (x *LintProblem) GetLocation() *LintLocation { + if x != nil { + return x.Location + } + return nil +} + +// LintLocation represents a range of text in a file. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintLocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The initial position of a problem. + StartPosition *LintPosition `protobuf:"bytes,1,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // The end position of a problem. + EndPosition *LintPosition `protobuf:"bytes,2,opt,name=end_position,json=endPosition,proto3" json:"end_position,omitempty"` +} + +func (x *LintLocation) Reset() { + *x = LintLocation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintLocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintLocation) ProtoMessage() {} + +func (x *LintLocation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintLocation.ProtoReflect.Descriptor instead. +func (*LintLocation) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{3} +} + +func (x *LintLocation) GetStartPosition() *LintPosition { + if x != nil { + return x.StartPosition + } + return nil +} + +func (x *LintLocation) GetEndPosition() *LintPosition { + if x != nil { + return x.EndPosition + } + return nil +} + +// LintPosition represents a point in a file. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A line number in a file. + LineNumber int32 `protobuf:"varint,1,opt,name=line_number,json=lineNumber,proto3" json:"line_number,omitempty"` + // A column number in a file. + ColumnNumber int32 `protobuf:"varint,2,opt,name=column_number,json=columnNumber,proto3" json:"column_number,omitempty"` +} + +func (x *LintPosition) Reset() { + *x = LintPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintPosition) ProtoMessage() {} + +func (x *LintPosition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintPosition.ProtoReflect.Descriptor instead. +func (*LintPosition) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{4} +} + +func (x *LintPosition) GetLineNumber() int32 { + if x != nil { + return x.LineNumber + } + return 0 +} + +func (x *LintPosition) GetColumnNumber() int32 { + if x != nil { + return x.ColumnNumber + } + return 0 +} + +// LintStats summarizes linter results. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A sum of the total operations (GET, POST, PUT, DELETE). + OperationCount int32 `protobuf:"varint,1,opt,name=operation_count,json=operationCount,proto3" json:"operation_count,omitempty"` + // The number of schemas contained under this resource. + SchemaCount int32 `protobuf:"varint,2,opt,name=schema_count,json=schemaCount,proto3" json:"schema_count,omitempty"` + // Problems found in linting. + ProblemCounts []*LintProblemCount `protobuf:"bytes,3,rep,name=problem_counts,json=problemCounts,proto3" json:"problem_counts,omitempty"` +} + +func (x *LintStats) Reset() { + *x = LintStats{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintStats) ProtoMessage() {} + +func (x *LintStats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintStats.ProtoReflect.Descriptor instead. +func (*LintStats) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{5} +} + +func (x *LintStats) GetOperationCount() int32 { + if x != nil { + return x.OperationCount + } + return 0 +} + +func (x *LintStats) GetSchemaCount() int32 { + if x != nil { + return x.SchemaCount + } + return 0 +} + +func (x *LintStats) GetProblemCounts() []*LintProblemCount { + if x != nil { + return x.ProblemCounts + } + return nil +} + +// LintProblemCount represents the number of times a problem was found in linting. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type LintProblemCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of occurrences of the problem. + Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + // An identifier for the related design rule. + RuleId string `protobuf:"bytes,2,opt,name=rule_id,json=ruleId,proto3" json:"rule_id,omitempty"` + // A link for the related design rule. + RuleDocUri string `protobuf:"bytes,3,opt,name=rule_doc_uri,json=ruleDocUri,proto3" json:"rule_doc_uri,omitempty"` +} + +func (x *LintProblemCount) Reset() { + *x = LintProblemCount{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LintProblemCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LintProblemCount) ProtoMessage() {} + +func (x *LintProblemCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_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 LintProblemCount.ProtoReflect.Descriptor instead. +func (*LintProblemCount) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP(), []int{6} +} + +func (x *LintProblemCount) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *LintProblemCount) GetRuleId() string { + if x != nil { + return x.RuleId + } + return "" +} + +func (x *LintProblemCount) GetRuleDocUri() string { + if x != nil { + return x.RuleDocUri + } + return "" +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDesc = []byte{ + 0x0a, 0x46, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6c, 0x69, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x22, 0x6e, 0x0a, 0x04, + 0x4c, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x05, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x84, 0x01, 0x0a, + 0x08, 0x4c, 0x69, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x5b, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x62, 0x6c, + 0x65, 0x6d, 0x73, 0x22, 0xe0, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, + 0x6c, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x17, 0x0a, + 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, + 0x6f, 0x63, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x75, + 0x6c, 0x65, 0x44, 0x6f, 0x63, 0x55, 0x72, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x67, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, + 0x67, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4c, 0x69, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xdc, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x74, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x63, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x54, 0x0a, 0x0c, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xc4, 0x01, 0x0a, 0x09, + 0x4c, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6b, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x22, 0x63, 0x0a, 0x10, 0x4c, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, + 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x6f, + 0x63, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x75, 0x6c, + 0x65, 0x44, 0x6f, 0x63, 0x55, 0x72, 0x69, 0x42, 0x71, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x42, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x6e, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_goTypes = []interface{}{ + (*Lint)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.Lint + (*LintFile)(nil), // 1: google.cloud.apigee.registry.applications.v1alpha1.LintFile + (*LintProblem)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.LintProblem + (*LintLocation)(nil), // 3: google.cloud.apigee.registry.applications.v1alpha1.LintLocation + (*LintPosition)(nil), // 4: google.cloud.apigee.registry.applications.v1alpha1.LintPosition + (*LintStats)(nil), // 5: google.cloud.apigee.registry.applications.v1alpha1.LintStats + (*LintProblemCount)(nil), // 6: google.cloud.apigee.registry.applications.v1alpha1.LintProblemCount +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_depIdxs = []int32{ + 1, // 0: google.cloud.apigee.registry.applications.v1alpha1.Lint.files:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintFile + 2, // 1: google.cloud.apigee.registry.applications.v1alpha1.LintFile.problems:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintProblem + 3, // 2: google.cloud.apigee.registry.applications.v1alpha1.LintProblem.location:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintLocation + 4, // 3: google.cloud.apigee.registry.applications.v1alpha1.LintLocation.start_position:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintPosition + 4, // 4: google.cloud.apigee.registry.applications.v1alpha1.LintLocation.end_position:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintPosition + 6, // 5: google.cloud.apigee.registry.applications.v1alpha1.LintStats.problem_counts:type_name -> google.cloud.apigee.registry.applications.v1alpha1.LintProblemCount + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Lint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintFile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintProblem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LintProblemCount); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_lint_proto_depIdxs = nil +} diff --git a/rpc/registry_manifest.pb.go b/rpc/registry_manifest.pb.go new file mode 100644 index 000000000..fd444160f --- /dev/null +++ b/rpc/registry_manifest.pb.go @@ -0,0 +1,385 @@ +// Copyright 2021 Google LLC +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_manifest.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + 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) +) + +// Manifest represents the dependencies of a list of generated resources that are stored +// in a registry and is used by the controller to keep these resources up-to-date. +type Manifest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of manifest entry + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // List of Generated resources. + GeneratedResources []*GeneratedResource `protobuf:"bytes,2,rep,name=generated_resources,json=generatedResources,proto3" json:"generated_resources,omitempty"` +} + +func (x *Manifest) Reset() { + *x = Manifest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Manifest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Manifest) ProtoMessage() {} + +func (x *Manifest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_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 Manifest.ProtoReflect.Descriptor instead. +func (*Manifest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescGZIP(), []int{0} +} + +func (x *Manifest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Manifest) GetGeneratedResources() []*GeneratedResource { + if x != nil { + return x.GeneratedResources + } + return nil +} + +type GeneratedResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Pattern for one particular or a group of api/version/spec/artifact + // Format: + // apis/{api}/versions/{version}/specs/{spec}/artifacts/{artifact} + // apis/-/versions/-/specs/-/artifacts/- + Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // set to true if the action is not going to store any artifact + // and it needs a receipt artifact as the GeneratedResource + Receipt bool `protobuf:"varint,3,opt,name=receipt,proto3" json:"receipt,omitempty"` + Dependencies []*Dependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + // action can contain references to both the resource and dependencies + // Example: "compute complexity $dependency0 $resource" + Action string `protobuf:"bytes,5,opt,name=action,proto3" json:"action,omitempty"` +} + +func (x *GeneratedResource) Reset() { + *x = GeneratedResource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeneratedResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeneratedResource) ProtoMessage() {} + +func (x *GeneratedResource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_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 GeneratedResource.ProtoReflect.Descriptor instead. +func (*GeneratedResource) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescGZIP(), []int{1} +} + +func (x *GeneratedResource) GetPattern() string { + if x != nil { + return x.Pattern + } + return "" +} + +func (x *GeneratedResource) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *GeneratedResource) GetReceipt() bool { + if x != nil { + return x.Receipt + } + return false +} + +func (x *GeneratedResource) GetDependencies() []*Dependency { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *GeneratedResource) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +type Dependency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // pattern for one particular or a group of api/version/spec/artifact + // pattern in a Dependency can contain references to the original resource + // Format: + // $resource.api/versions/-/specs/- + // $resource.version/specs/-/artifacts/- + Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *Dependency) Reset() { + *x = Dependency{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Dependency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Dependency) ProtoMessage() {} + +func (x *Dependency) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_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 Dependency.ProtoReflect.Descriptor instead. +func (*Dependency) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescGZIP(), []int{2} +} + +func (x *Dependency) GetPattern() string { + if x != nil { + return x.Pattern + } + return "" +} + +func (x *Dependency) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDesc = []byte{ + 0x0a, 0x4a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, + 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x13, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x7b, 0x0a, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x22, 0xe5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x62, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0c, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x75, 0x0a, + 0x36, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, + 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_goTypes = []interface{}{ + (*Manifest)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.Manifest + (*GeneratedResource)(nil), // 1: google.cloud.apigee.registry.applications.v1alpha1.GeneratedResource + (*Dependency)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.Dependency +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_depIdxs = []int32{ + 1, // 0: google.cloud.apigee.registry.applications.v1alpha1.Manifest.generated_resources:type_name -> google.cloud.apigee.registry.applications.v1alpha1.GeneratedResource + 2, // 1: google.cloud.apigee.registry.applications.v1alpha1.GeneratedResource.dependencies:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Dependency + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Manifest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeneratedResource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Dependency); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_manifest_proto_depIdxs = nil +} diff --git a/rpc/registry_map.pb.go b/rpc/registry_map.pb.go new file mode 100644 index 000000000..4ba1518fb --- /dev/null +++ b/rpc/registry_map.pb.go @@ -0,0 +1,180 @@ +// Copyright 2021 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/internal/v1/registry_map.proto + +package rpc + +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) +) + +// Map represents a map that can be serialized using Protocol Buffers. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type Map struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The entries in the map. + Entries map[string]string `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Map) Reset() { + *x = Map{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_internal_v1_registry_map_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Map) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Map) ProtoMessage() {} + +func (x *Map) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_internal_v1_registry_map_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 Map.ProtoReflect.Descriptor instead. +func (*Map) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescGZIP(), []int{0} +} + +func (x *Map) GetEntries() map[string]string { + if x != nil { + return x.Entries + } + return nil +} + +var File_google_cloud_apigee_registry_internal_v1_registry_map_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDesc = []byte{ + 0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x28, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x22, 0x97, 0x01, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x12, + 0x54, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x2e, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x42, 0x66, 0x0a, 0x2c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x76, + 0x31, 0x42, 0x10, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4d, 0x61, 0x70, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescData = file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDesc +) + +func file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDescData +} + +var file_google_cloud_apigee_registry_internal_v1_registry_map_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_google_cloud_apigee_registry_internal_v1_registry_map_proto_goTypes = []interface{}{ + (*Map)(nil), // 0: google.cloud.apigee.registry.internal.v1.Map + nil, // 1: google.cloud.apigee.registry.internal.v1.Map.EntriesEntry +} +var file_google_cloud_apigee_registry_internal_v1_registry_map_proto_depIdxs = []int32{ + 1, // 0: google.cloud.apigee.registry.internal.v1.Map.entries:type_name -> google.cloud.apigee.registry.internal.v1.Map.EntriesEntry + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_internal_v1_registry_map_proto_init() } +func file_google_cloud_apigee_registry_internal_v1_registry_map_proto_init() { + if File_google_cloud_apigee_registry_internal_v1_registry_map_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Map); 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_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_internal_v1_registry_map_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_internal_v1_registry_map_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_internal_v1_registry_map_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_internal_v1_registry_map_proto = out.File + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_rawDesc = nil + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_goTypes = nil + file_google_cloud_apigee_registry_internal_v1_registry_map_proto_depIdxs = nil +} diff --git a/rpc/registry_models.pb.go b/rpc/registry_models.pb.go new file mode 100644 index 000000000..c3d3dd375 --- /dev/null +++ b/rpc/registry_models.pb.go @@ -0,0 +1,1099 @@ +// Copyright 2021 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/v1/registry_models.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + 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) +) + +// A Project is a top-level description of a collection of APIs. +// Typically there would be one project for an entire organization. +// Note: in a Google Cloud deployment, this resource and associated methods +// will be omitted and its children will instead be associated with Google +// Cloud projects. +type Project struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Human-meaningful name. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A detailed description. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Project) Reset() { + *x = Project{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Project) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Project) ProtoMessage() {} + +func (x *Project) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_models_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 Project.ProtoReflect.Descriptor instead. +func (*Project) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP(), []int{0} +} + +func (x *Project) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Project) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Project) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Project) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Project) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// An Api is a top-level description of an API. +// Apis are produced by producers and are commitments to provide services. +type Api struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Human-meaningful name. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A detailed description. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // A user-definable description of the availability of this service. + // Format: free-form, but we expect single words that describe availability, + // e.g. "NONE", "TESTING", "PREVIEW", "GENERAL", "DEPRECATED", "SHUTDOWN". + Availability string `protobuf:"bytes,6,opt,name=availability,proto3" json:"availability,omitempty"` + // The recommended version of the API. + // Format: apis/{api}/versions/{version} + RecommendedVersion string `protobuf:"bytes,7,opt,name=recommended_version,json=recommendedVersion,proto3" json:"recommended_version,omitempty"` + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // No more than 64 user labels can be associated with one resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "registry.googleapis.com/" + // and cannot be changed. + Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + Annotations map[string]string `protobuf:"bytes,10,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *Api) Reset() { + *x = Api{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Api) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Api) ProtoMessage() {} + +func (x *Api) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_models_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 Api.ProtoReflect.Descriptor instead. +func (*Api) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP(), []int{1} +} + +func (x *Api) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Api) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Api) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Api) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Api) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Api) GetAvailability() string { + if x != nil { + return x.Availability + } + return "" +} + +func (x *Api) GetRecommendedVersion() string { + if x != nil { + return x.RecommendedVersion + } + return "" +} + +func (x *Api) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Api) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +// An ApiVersion describes a particular version of an API. +// ApiVersions are what consumers actually use. +type ApiVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Human-meaningful name. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A detailed description. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // A user-definable description of the lifecycle phase of this API version. + // Format: free-form, but we expect single words that describe API maturity, + // e.g. "CONCEPT", "DESIGN", "DEVELOPMENT", "STAGING", "PRODUCTION", + // "DEPRECATED", "RETIRED". + State string `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"` + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // No more than 64 user labels can be associated with one resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "registry.googleapis.com/" + // and cannot be changed. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + Annotations map[string]string `protobuf:"bytes,8,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ApiVersion) Reset() { + *x = ApiVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApiVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApiVersion) ProtoMessage() {} + +func (x *ApiVersion) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_models_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 ApiVersion.ProtoReflect.Descriptor instead. +func (*ApiVersion) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP(), []int{2} +} + +func (x *ApiVersion) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ApiVersion) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *ApiVersion) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ApiVersion) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *ApiVersion) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *ApiVersion) GetState() string { + if x != nil { + return x.State + } + return "" +} + +func (x *ApiVersion) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *ApiVersion) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +// An ApiSpec describes a version of an API in a structured way. +// ApiSpecs provide formal descriptions that consumers can use to use a version. +// ApiSpec resources are intended to be fully-resolved descriptions of an +// ApiVersion. When specs consist of multiple files, these should be bundled +// together (e.g. in a zip archive) and stored as a unit. Multiple specs can +// exist to provide representations in different API description formats. +// Synchronization of these representations would be provided by tooling and +// background services. +type ApiSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A possibly-hierarchical name used to refer to the spec from other specs. + Filename string `protobuf:"bytes,2,opt,name=filename,proto3" json:"filename,omitempty"` + // A detailed description. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // The revision ID of the spec. + // A new revision is committed whenever the spec contents are changed. + // The format is an 8-character hexadecimal string. + RevisionId string `protobuf:"bytes,4,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"` + // Creation timestamp; when the spec resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Revision creation timestamp; when the represented revision was created. + RevisionCreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=revision_create_time,json=revisionCreateTime,proto3" json:"revision_create_time,omitempty"` + // Last update timestamp: when the represented revision was last modified. + RevisionUpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=revision_update_time,json=revisionUpdateTime,proto3" json:"revision_update_time,omitempty"` + // A style (format) descriptor for this spec that is specified as a Media Type + // (https://en.wikipedia.org/wiki/Media_type). Possible values include + // "application/vnd.apigee.proto", "application/vnd.apigee.openapi", and + // "application/vnd.apigee.graphql", with possible suffixes representing + // compression types. These hypothetical names are defined in the vendor tree + // defined in RFC6838 (https://tools.ietf.org/html/rfc6838) and are not final. + // Content types can optionally specify compression. Currently only + // GZip compression is supported (indicated with "+gzip"). + MimeType string `protobuf:"bytes,8,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + // The size of the spec file in bytes. If the spec is gzipped, this is the + // size of the uncompressed spec. + SizeBytes int32 `protobuf:"varint,9,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // A SHA-256 hash of the spec's contents. If the spec is gzipped, this is + // the hash of the uncompressed spec. + Hash string `protobuf:"bytes,10,opt,name=hash,proto3" json:"hash,omitempty"` + // The original source URI of the spec (if one exists). + // This is an external location that can be used for reference purposes + // but which may not be authoritative since this external resource may + // change after the spec is retrieved. + SourceUri string `protobuf:"bytes,11,opt,name=source_uri,json=sourceUri,proto3" json:"source_uri,omitempty"` + // The contents of the spec. + // Provided by API callers when specs are created or updated. + // To access the contents of a spec, use GetApiSpecContents. + Contents []byte `protobuf:"bytes,12,opt,name=contents,proto3" json:"contents,omitempty"` + // The revision tags associated with this revision. + RevisionTags []string `protobuf:"bytes,13,rep,name=revision_tags,json=revisionTags,proto3" json:"revision_tags,omitempty"` + // Labels attach identifying metadata to resources. Identifying metadata can + // be used to filter list operations. + // + // Label keys and values can be no longer than 64 characters + // (Unicode codepoints), can only contain lowercase letters, numeric + // characters, underscores and dashes. International characters are allowed. + // No more than 64 user labels can be associated with one resource (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "registry.googleapis.com/" + // and cannot be changed. + Labels map[string]string `protobuf:"bytes,14,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations attach non-identifying metadata to resources. + // + // Annotation keys and values are less restricted than those of labels, but + // should be generally used for small values of broad interest. Larger, topic- + // specific metadata should be stored in Artifacts. + Annotations map[string]string `protobuf:"bytes,15,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ApiSpec) Reset() { + *x = ApiSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApiSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApiSpec) ProtoMessage() {} + +func (x *ApiSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_models_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 ApiSpec.ProtoReflect.Descriptor instead. +func (*ApiSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP(), []int{3} +} + +func (x *ApiSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ApiSpec) GetFilename() string { + if x != nil { + return x.Filename + } + return "" +} + +func (x *ApiSpec) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ApiSpec) GetRevisionId() string { + if x != nil { + return x.RevisionId + } + return "" +} + +func (x *ApiSpec) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *ApiSpec) GetRevisionCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.RevisionCreateTime + } + return nil +} + +func (x *ApiSpec) GetRevisionUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.RevisionUpdateTime + } + return nil +} + +func (x *ApiSpec) GetMimeType() string { + if x != nil { + return x.MimeType + } + return "" +} + +func (x *ApiSpec) GetSizeBytes() int32 { + if x != nil { + return x.SizeBytes + } + return 0 +} + +func (x *ApiSpec) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *ApiSpec) GetSourceUri() string { + if x != nil { + return x.SourceUri + } + return "" +} + +func (x *ApiSpec) GetContents() []byte { + if x != nil { + return x.Contents + } + return nil +} + +func (x *ApiSpec) GetRevisionTags() []string { + if x != nil { + return x.RevisionTags + } + return nil +} + +func (x *ApiSpec) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *ApiSpec) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +// Artifacts of resources. Artifacts are unique (single-value) per resource +// and are used to store metadata that is too large or numerous to be stored +// directly on the resource. Since artifacts are stored separately from parent +// resources, they should generally be used for metadata that is needed +// infrequently, i.e. not for display in primary views of the resource but +// perhaps displayed or downloaded upon request. The ListArtifacts method +// allows artifacts to be quickly enumerated and checked for presence without +// downloading their (potentially-large) contents. +type Artifact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // A content type specifier for the artifact. + // Content type specifiers are Media Types + // (https://en.wikipedia.org/wiki/Media_type) with a possible "schema" + // parameter that specifies a schema for the stored information. + // Content types can optionally specify compression. Currently only + // GZip compression is supported (indicated with "+gzip"). + MimeType string `protobuf:"bytes,4,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"` + // The size of the artifact in bytes. If the artifact is gzipped, this is + // the size of the uncompressed artifact. + SizeBytes int32 `protobuf:"varint,5,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // A SHA-256 hash of the artifact's contents. If the artifact is gzipped, + // this is the hash of the uncompressed artifact. + Hash string `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"` + // The contents of the artifact. + // Provided by API callers when artifacts are created or replaced. + // To access the contents of an artifact, use GetArtifactContents. + Contents []byte `protobuf:"bytes,7,opt,name=contents,proto3" json:"contents,omitempty"` +} + +func (x *Artifact) Reset() { + *x = Artifact{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Artifact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Artifact) ProtoMessage() {} + +func (x *Artifact) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_models_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 Artifact.ProtoReflect.Descriptor instead. +func (*Artifact) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP(), []int{4} +} + +func (x *Artifact) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Artifact) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Artifact) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Artifact) GetMimeType() string { + if x != nil { + return x.MimeType + } + return "" +} + +func (x *Artifact) GetSizeBytes() int32 { + if x != nil { + return x.SizeBytes + } + return 0 +} + +func (x *Artifact) GetHash() string { + if x != nil { + return x.Hash + } + return "" +} + +func (x *Artifact) GetContents() []byte { + if x != nil { + return x.Contents + } + return nil +} + +var File_google_cloud_apigee_registry_v1_registry_models_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_v1_registry_models_proto_rawDesc = []byte{ + 0x0a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x38, + 0xea, 0x41, 0x35, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x22, 0xd4, 0x05, 0x0a, 0x03, 0x41, 0x70, 0x69, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x58, 0x0a, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, + 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, + 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, + 0x69, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, + 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x54, 0xea, 0x41, 0x51, 0x0a, 0x1b, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x12, 0x32, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x7d, 0x22, + 0x9b, 0x05, 0x0a, 0x0a, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x5e, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, + 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x6e, 0xea, + 0x41, 0x6b, 0x0a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0xd0, 0x07, + 0x0a, 0x07, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0b, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x72, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x7a, + 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x4c, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5b, + 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x78, 0xea, 0x41, 0x75, 0x0a, 0x1f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x52, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x7d, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x7b, 0x73, 0x70, 0x65, 0x63, 0x7d, + 0x22, 0x92, 0x05, 0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, + 0x1f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x3a, 0xf2, 0x02, 0xea, 0x41, 0xee, 0x02, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x7d, 0x12, 0x47, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x7d, + 0x12, 0x5a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, + 0x61, 0x70, 0x69, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x7d, 0x12, 0x67, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x7d, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x7b, 0x73, 0x70, 0x65, 0x63, 0x7d, + 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x7d, 0x42, 0x60, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, + 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescData = file_google_cloud_apigee_registry_v1_registry_models_proto_rawDesc +) + +func file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_v1_registry_models_proto_rawDescData +} + +var file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_google_cloud_apigee_registry_v1_registry_models_proto_goTypes = []interface{}{ + (*Project)(nil), // 0: google.cloud.apigee.registry.v1.Project + (*Api)(nil), // 1: google.cloud.apigee.registry.v1.Api + (*ApiVersion)(nil), // 2: google.cloud.apigee.registry.v1.ApiVersion + (*ApiSpec)(nil), // 3: google.cloud.apigee.registry.v1.ApiSpec + (*Artifact)(nil), // 4: google.cloud.apigee.registry.v1.Artifact + nil, // 5: google.cloud.apigee.registry.v1.Api.LabelsEntry + nil, // 6: google.cloud.apigee.registry.v1.Api.AnnotationsEntry + nil, // 7: google.cloud.apigee.registry.v1.ApiVersion.LabelsEntry + nil, // 8: google.cloud.apigee.registry.v1.ApiVersion.AnnotationsEntry + nil, // 9: google.cloud.apigee.registry.v1.ApiSpec.LabelsEntry + nil, // 10: google.cloud.apigee.registry.v1.ApiSpec.AnnotationsEntry + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp +} +var file_google_cloud_apigee_registry_v1_registry_models_proto_depIdxs = []int32{ + 11, // 0: google.cloud.apigee.registry.v1.Project.create_time:type_name -> google.protobuf.Timestamp + 11, // 1: google.cloud.apigee.registry.v1.Project.update_time:type_name -> google.protobuf.Timestamp + 11, // 2: google.cloud.apigee.registry.v1.Api.create_time:type_name -> google.protobuf.Timestamp + 11, // 3: google.cloud.apigee.registry.v1.Api.update_time:type_name -> google.protobuf.Timestamp + 5, // 4: google.cloud.apigee.registry.v1.Api.labels:type_name -> google.cloud.apigee.registry.v1.Api.LabelsEntry + 6, // 5: google.cloud.apigee.registry.v1.Api.annotations:type_name -> google.cloud.apigee.registry.v1.Api.AnnotationsEntry + 11, // 6: google.cloud.apigee.registry.v1.ApiVersion.create_time:type_name -> google.protobuf.Timestamp + 11, // 7: google.cloud.apigee.registry.v1.ApiVersion.update_time:type_name -> google.protobuf.Timestamp + 7, // 8: google.cloud.apigee.registry.v1.ApiVersion.labels:type_name -> google.cloud.apigee.registry.v1.ApiVersion.LabelsEntry + 8, // 9: google.cloud.apigee.registry.v1.ApiVersion.annotations:type_name -> google.cloud.apigee.registry.v1.ApiVersion.AnnotationsEntry + 11, // 10: google.cloud.apigee.registry.v1.ApiSpec.create_time:type_name -> google.protobuf.Timestamp + 11, // 11: google.cloud.apigee.registry.v1.ApiSpec.revision_create_time:type_name -> google.protobuf.Timestamp + 11, // 12: google.cloud.apigee.registry.v1.ApiSpec.revision_update_time:type_name -> google.protobuf.Timestamp + 9, // 13: google.cloud.apigee.registry.v1.ApiSpec.labels:type_name -> google.cloud.apigee.registry.v1.ApiSpec.LabelsEntry + 10, // 14: google.cloud.apigee.registry.v1.ApiSpec.annotations:type_name -> google.cloud.apigee.registry.v1.ApiSpec.AnnotationsEntry + 11, // 15: google.cloud.apigee.registry.v1.Artifact.create_time:type_name -> google.protobuf.Timestamp + 11, // 16: google.cloud.apigee.registry.v1.Artifact.update_time:type_name -> google.protobuf.Timestamp + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_v1_registry_models_proto_init() } +func file_google_cloud_apigee_registry_v1_registry_models_proto_init() { + if File_google_cloud_apigee_registry_v1_registry_models_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Project); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Api); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApiVersion); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApiSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Artifact); 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_google_cloud_apigee_registry_v1_registry_models_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_v1_registry_models_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_v1_registry_models_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_v1_registry_models_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_v1_registry_models_proto = out.File + file_google_cloud_apigee_registry_v1_registry_models_proto_rawDesc = nil + file_google_cloud_apigee_registry_v1_registry_models_proto_goTypes = nil + file_google_cloud_apigee_registry_v1_registry_models_proto_depIdxs = nil +} diff --git a/rpc/registry_notifications.pb.go b/rpc/registry_notifications.pb.go new file mode 100644 index 000000000..68acf55c3 --- /dev/null +++ b/rpc/registry_notifications.pb.go @@ -0,0 +1,266 @@ +// Copyright 2020 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/v1/registry_notifications.proto + +package rpc + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + 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) +) + +// Types of changes that can be made to the registry. +type Notification_Change int32 + +const ( + // The default / unset value. + Notification_CHANGE_UNSPECIFIED Notification_Change = 0 + // A resource was created. + Notification_CREATED Notification_Change = 1 + // A resource was updated. + Notification_UPDATED Notification_Change = 2 + // A resource was deleted. + Notification_DELETED Notification_Change = 3 +) + +// Enum value maps for Notification_Change. +var ( + Notification_Change_name = map[int32]string{ + 0: "CHANGE_UNSPECIFIED", + 1: "CREATED", + 2: "UPDATED", + 3: "DELETED", + } + Notification_Change_value = map[string]int32{ + "CHANGE_UNSPECIFIED": 0, + "CREATED": 1, + "UPDATED": 2, + "DELETED": 3, + } +) + +func (x Notification_Change) Enum() *Notification_Change { + p := new(Notification_Change) + *p = x + return p +} + +func (x Notification_Change) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Notification_Change) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_apigee_registry_v1_registry_notifications_proto_enumTypes[0].Descriptor() +} + +func (Notification_Change) Type() protoreflect.EnumType { + return &file_google_cloud_apigee_registry_v1_registry_notifications_proto_enumTypes[0] +} + +func (x Notification_Change) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Notification_Change.Descriptor instead. +func (Notification_Change) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescGZIP(), []int{0, 0} +} + +// Notifications are sent to subscribers who follow registry activity. +type Notification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of change made to the registry. + Change Notification_Change `protobuf:"varint,1,opt,name=change,proto3,enum=google.cloud.apigee.registry.v1.Notification_Change" json:"change,omitempty"` + // The resource affected by the change. + Resource string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"` + // The time of the event. + ChangeTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=change_time,json=changeTime,proto3" json:"change_time,omitempty"` +} + +func (x *Notification) Reset() { + *x = Notification{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_notifications_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Notification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Notification) ProtoMessage() {} + +func (x *Notification) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_notifications_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 Notification.ProtoReflect.Descriptor instead. +func (*Notification) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescGZIP(), []int{0} +} + +func (x *Notification) GetChange() Notification_Change { + if x != nil { + return x.Change + } + return Notification_CHANGE_UNSPECIFIED +} + +func (x *Notification) GetResource() string { + if x != nil { + return x.Resource + } + return "" +} + +func (x *Notification) GetChangeTime() *timestamppb.Timestamp { + if x != nil { + return x.ChangeTime + } + return nil +} + +var File_google_cloud_apigee_registry_v1_registry_notifications_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDesc = []byte{ + 0x0a, 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x47, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, + 0x03, 0x42, 0x67, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescData = file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDesc +) + +func file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDescData +} + +var file_google_cloud_apigee_registry_v1_registry_notifications_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_apigee_registry_v1_registry_notifications_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_apigee_registry_v1_registry_notifications_proto_goTypes = []interface{}{ + (Notification_Change)(0), // 0: google.cloud.apigee.registry.v1.Notification.Change + (*Notification)(nil), // 1: google.cloud.apigee.registry.v1.Notification + (*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp +} +var file_google_cloud_apigee_registry_v1_registry_notifications_proto_depIdxs = []int32{ + 0, // 0: google.cloud.apigee.registry.v1.Notification.change:type_name -> google.cloud.apigee.registry.v1.Notification.Change + 2, // 1: google.cloud.apigee.registry.v1.Notification.change_time:type_name -> google.protobuf.Timestamp + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_v1_registry_notifications_proto_init() } +func file_google_cloud_apigee_registry_v1_registry_notifications_proto_init() { + if File_google_cloud_apigee_registry_v1_registry_notifications_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_v1_registry_notifications_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Notification); 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_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_v1_registry_notifications_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_v1_registry_notifications_proto_depIdxs, + EnumInfos: file_google_cloud_apigee_registry_v1_registry_notifications_proto_enumTypes, + MessageInfos: file_google_cloud_apigee_registry_v1_registry_notifications_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_v1_registry_notifications_proto = out.File + file_google_cloud_apigee_registry_v1_registry_notifications_proto_rawDesc = nil + file_google_cloud_apigee_registry_v1_registry_notifications_proto_goTypes = nil + file_google_cloud_apigee_registry_v1_registry_notifications_proto_depIdxs = nil +} diff --git a/rpc/registry_receipt.pb.go b/rpc/registry_receipt.pb.go new file mode 100644 index 000000000..cde9af1cf --- /dev/null +++ b/rpc/registry_receipt.pb.go @@ -0,0 +1,175 @@ +// Copyright 2021 Google LLC +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_receipt.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + 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) +) + +// Stores the receipt of an external action, +// which does not store any direct artifacts in the registry. +type Receipt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Action whose receipt is stored as an artifact + Action string `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` +} + +func (x *Receipt) Reset() { + *x = Receipt{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Receipt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Receipt) ProtoMessage() {} + +func (x *Receipt) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_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 Receipt.ProtoReflect.Descriptor instead. +func (*Receipt) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescGZIP(), []int{0} +} + +func (x *Receipt) GetAction() string { + if x != nil { + return x.Action + } + return "" +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDesc = []byte{ + 0x0a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x70, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x26, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x74, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x42, 0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x70, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_goTypes = []interface{}{ + (*Receipt)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.Receipt +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Receipt); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_receipt_proto_depIdxs = nil +} diff --git a/rpc/registry_references.pb.go b/rpc/registry_references.pb.go new file mode 100644 index 000000000..9ccfb15cd --- /dev/null +++ b/rpc/registry_references.pb.go @@ -0,0 +1,189 @@ +// Copyright 2021 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_references.proto + +package rpc + +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) +) + +// References represents the external and available references of an API spec. +// (-- api-linter: core::0123::resource-annotation=disabled +// aip.dev/not-precedent: This message is not currently used in an API. --) +type References struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // External references are the names (typically paths) used in an + // API spec that are not defined in the spec. + ExternalReferences []string `protobuf:"bytes,1,rep,name=external_references,json=externalReferences,proto3" json:"external_references,omitempty"` + // Available references are the names (paths) in the spec that can be referenced + // by other specs. + AvailableReferences []string `protobuf:"bytes,2,rep,name=available_references,json=availableReferences,proto3" json:"available_references,omitempty"` +} + +func (x *References) Reset() { + *x = References{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *References) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*References) ProtoMessage() {} + +func (x *References) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_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 References.ProtoReflect.Descriptor instead. +func (*References) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescGZIP(), []int{0} +} + +func (x *References) GetExternalReferences() []string { + if x != nil { + return x.ExternalReferences + } + return nil +} + +func (x *References) GetAvailableReferences() []string { + if x != nil { + return x.AvailableReferences + } + return nil +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDesc = []byte{ + 0x0a, 0x4c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x22, 0x70, 0x0a, 0x0a, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x2f, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x13, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x73, 0x42, 0x77, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x17, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_goTypes = []interface{}{ + (*References)(nil), // 0: google.cloud.apigee.registry.applications.v1alpha1.References +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*References); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_references_proto_depIdxs = nil +} diff --git a/rpc/registry_service.pb.go b/rpc/registry_service.pb.go new file mode 100644 index 000000000..a53a31319 --- /dev/null +++ b/rpc/registry_service.pb.go @@ -0,0 +1,3806 @@ +// Copyright 2021 Google LLC. All Rights Reserved. +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/v1/registry_service.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + httpbody "google.golang.org/genproto/googleapis/api/httpbody" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + 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) +) + +// Response message for GetStatus. +// GetStatus is not included in hosted versions of the API. +type Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A string describing the status. + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *Status) Reset() { + *x = Status{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{0} +} + +func (x *Status) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// Request message for ListProjects. +// (-- api-linter: core::0132::request-parent-required=disabled +// aip.dev/not-precedent: the parent of Project is implicit. --) +type ListProjectsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The maximum number of projects to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListProjects` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListProjects` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + Filter string `protobuf:"bytes,3,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListProjectsRequest) Reset() { + *x = ListProjectsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProjectsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProjectsRequest) ProtoMessage() {} + +func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListProjectsRequest.ProtoReflect.Descriptor instead. +func (*ListProjectsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListProjectsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListProjectsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListProjectsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListProjects. +type ListProjectsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The projects from the specified publisher. + Projects []*Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListProjectsResponse) Reset() { + *x = ListProjectsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProjectsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProjectsResponse) ProtoMessage() {} + +func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListProjectsResponse.ProtoReflect.Descriptor instead. +func (*ListProjectsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ListProjectsResponse) GetProjects() []*Project { + if x != nil { + return x.Projects + } + return nil +} + +func (x *ListProjectsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetProject. +type GetProjectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the project to retrieve. + // Format: projects/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetProjectRequest) Reset() { + *x = GetProjectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProjectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProjectRequest) ProtoMessage() {} + +func (x *GetProjectRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetProjectRequest.ProtoReflect.Descriptor instead. +func (*GetProjectRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{3} +} + +func (x *GetProjectRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for CreateProject. +// (-- api-linter: core::0133::request-parent-required=disabled +// aip.dev/not-precedent: the parent of Project is implicit. --) +type CreateProjectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project to create. + Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + // The ID to use for the project, which will become the final component of + // the project's resource name. + // + // This value should be at most 80 characters, and valid characters + // are /[a-z][0-9]-./. + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` +} + +func (x *CreateProjectRequest) Reset() { + *x = CreateProjectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateProjectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateProjectRequest) ProtoMessage() {} + +func (x *CreateProjectRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 CreateProjectRequest.ProtoReflect.Descriptor instead. +func (*CreateProjectRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateProjectRequest) GetProject() *Project { + if x != nil { + return x.Project + } + return nil +} + +func (x *CreateProjectRequest) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +// Request message for UpdateProject. +type UpdateProjectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The project to update. + // + // The `name` field is used to identify the project to update. + // Format: projects/* + Project *Project `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If a "*" is specified, all fields are updated, including fields that are + // unspecified/default in the request. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateProjectRequest) Reset() { + *x = UpdateProjectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateProjectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateProjectRequest) ProtoMessage() {} + +func (x *UpdateProjectRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 UpdateProjectRequest.ProtoReflect.Descriptor instead. +func (*UpdateProjectRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateProjectRequest) GetProject() *Project { + if x != nil { + return x.Project + } + return nil +} + +func (x *UpdateProjectRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for DeleteProject. +type DeleteProjectRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the project to delete. + // Format: projects/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteProjectRequest) Reset() { + *x = DeleteProjectRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteProjectRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteProjectRequest) ProtoMessage() {} + +func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteProjectRequest.ProtoReflect.Descriptor instead. +func (*DeleteProjectRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{6} +} + +func (x *DeleteProjectRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListApis. +type ListApisRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of APIs. + // Format: projects/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of APIs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListApis` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApis` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListApisRequest) Reset() { + *x = ListApisRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApisRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApisRequest) ProtoMessage() {} + +func (x *ListApisRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApisRequest.ProtoReflect.Descriptor instead. +func (*ListApisRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListApisRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListApisRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListApisRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListApisRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListApis. +type ListApisResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The APIs from the specified publisher. + Apis []*Api `protobuf:"bytes,1,rep,name=apis,proto3" json:"apis,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListApisResponse) Reset() { + *x = ListApisResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApisResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApisResponse) ProtoMessage() {} + +func (x *ListApisResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApisResponse.ProtoReflect.Descriptor instead. +func (*ListApisResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{8} +} + +func (x *ListApisResponse) GetApis() []*Api { + if x != nil { + return x.Apis + } + return nil +} + +func (x *ListApisResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetApi. +type GetApiRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the API to retrieve. + // Format: projects/*/locations/*/apis/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetApiRequest) Reset() { + *x = GetApiRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetApiRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetApiRequest) ProtoMessage() {} + +func (x *GetApiRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetApiRequest.ProtoReflect.Descriptor instead. +func (*GetApiRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{9} +} + +func (x *GetApiRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for CreateApi. +type CreateApiRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of APIs. + // Format: projects/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The API to create. + Api *Api `protobuf:"bytes,2,opt,name=api,proto3" json:"api,omitempty"` + // The ID to use for the api, which will become the final component of + // the api's resource name. + // + // This value should be at most 80 characters, and valid characters + // are /[a-z][0-9]-./. + ApiId string `protobuf:"bytes,3,opt,name=api_id,json=apiId,proto3" json:"api_id,omitempty"` +} + +func (x *CreateApiRequest) Reset() { + *x = CreateApiRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApiRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApiRequest) ProtoMessage() {} + +func (x *CreateApiRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 CreateApiRequest.ProtoReflect.Descriptor instead. +func (*CreateApiRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateApiRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateApiRequest) GetApi() *Api { + if x != nil { + return x.Api + } + return nil +} + +func (x *CreateApiRequest) GetApiId() string { + if x != nil { + return x.ApiId + } + return "" +} + +// Request message for UpdateApi. +type UpdateApiRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The API to update. + // + // The `name` field is used to identify the API to update. + // Format: projects/*/locations/*/apis/* + Api *Api `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If a "*" is specified, all fields are updated, including fields that are + // unspecified/default in the request. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateApiRequest) Reset() { + *x = UpdateApiRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApiRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApiRequest) ProtoMessage() {} + +func (x *UpdateApiRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 UpdateApiRequest.ProtoReflect.Descriptor instead. +func (*UpdateApiRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{11} +} + +func (x *UpdateApiRequest) GetApi() *Api { + if x != nil { + return x.Api + } + return nil +} + +func (x *UpdateApiRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for DeleteApi. +type DeleteApiRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the API to delete. + // Format: projects/*/locations/*/apis/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteApiRequest) Reset() { + *x = DeleteApiRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApiRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApiRequest) ProtoMessage() {} + +func (x *DeleteApiRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteApiRequest.ProtoReflect.Descriptor instead. +func (*DeleteApiRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{12} +} + +func (x *DeleteApiRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListApiVersions. +type ListApiVersionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of versions. + // Format: projects/*/locations/*/apis/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of versions to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListApiVersions` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApiVersions` must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListApiVersionsRequest) Reset() { + *x = ListApiVersionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiVersionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiVersionsRequest) ProtoMessage() {} + +func (x *ListApiVersionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiVersionsRequest.ProtoReflect.Descriptor instead. +func (*ListApiVersionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{13} +} + +func (x *ListApiVersionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListApiVersionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListApiVersionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListApiVersionsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListApiVersions. +type ListApiVersionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The versions from the specified publisher. + ApiVersions []*ApiVersion `protobuf:"bytes,1,rep,name=api_versions,json=apiVersions,proto3" json:"api_versions,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListApiVersionsResponse) Reset() { + *x = ListApiVersionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiVersionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiVersionsResponse) ProtoMessage() {} + +func (x *ListApiVersionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiVersionsResponse.ProtoReflect.Descriptor instead. +func (*ListApiVersionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{14} +} + +func (x *ListApiVersionsResponse) GetApiVersions() []*ApiVersion { + if x != nil { + return x.ApiVersions + } + return nil +} + +func (x *ListApiVersionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetApiVersion. +type GetApiVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the version to retrieve. + // Format: projects/*/locations/*/apis/*/versions/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetApiVersionRequest) Reset() { + *x = GetApiVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetApiVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetApiVersionRequest) ProtoMessage() {} + +func (x *GetApiVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetApiVersionRequest.ProtoReflect.Descriptor instead. +func (*GetApiVersionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{15} +} + +func (x *GetApiVersionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for CreateApiVersion. +type CreateApiVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of versions. + // Format: projects/*/locations/*/apis/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The version to create. + ApiVersion *ApiVersion `protobuf:"bytes,2,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` + // The ID to use for the version, which will become the final component of + // the version's resource name. + // + // This value should be at most 80 characters, and valid characters + // are /[a-z][0-9]-./. + ApiVersionId string `protobuf:"bytes,3,opt,name=api_version_id,json=apiVersionId,proto3" json:"api_version_id,omitempty"` +} + +func (x *CreateApiVersionRequest) Reset() { + *x = CreateApiVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApiVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApiVersionRequest) ProtoMessage() {} + +func (x *CreateApiVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 CreateApiVersionRequest.ProtoReflect.Descriptor instead. +func (*CreateApiVersionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{16} +} + +func (x *CreateApiVersionRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateApiVersionRequest) GetApiVersion() *ApiVersion { + if x != nil { + return x.ApiVersion + } + return nil +} + +func (x *CreateApiVersionRequest) GetApiVersionId() string { + if x != nil { + return x.ApiVersionId + } + return "" +} + +// Request message for UpdateApiVersion. +type UpdateApiVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The version to update. + // + // The `name` field is used to identify the version to update. + // Format: projects/*/locations/*/apis/*/versions/* + ApiVersion *ApiVersion `protobuf:"bytes,1,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If a "*" is specified, all fields are updated, including fields that are + // unspecified/default in the request. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateApiVersionRequest) Reset() { + *x = UpdateApiVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApiVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApiVersionRequest) ProtoMessage() {} + +func (x *UpdateApiVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 UpdateApiVersionRequest.ProtoReflect.Descriptor instead. +func (*UpdateApiVersionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{17} +} + +func (x *UpdateApiVersionRequest) GetApiVersion() *ApiVersion { + if x != nil { + return x.ApiVersion + } + return nil +} + +func (x *UpdateApiVersionRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for DeleteApiVersion. +type DeleteApiVersionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the version to delete. + // Format: projects/*/locations/*/apis/*/versions/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteApiVersionRequest) Reset() { + *x = DeleteApiVersionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApiVersionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApiVersionRequest) ProtoMessage() {} + +func (x *DeleteApiVersionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteApiVersionRequest.ProtoReflect.Descriptor instead. +func (*DeleteApiVersionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{18} +} + +func (x *DeleteApiVersionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListApiSpecs. +type ListApiSpecsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of specs. + // Format: projects/*/locations/*/apis/*/versions/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of specs to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListApiSpecs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListApiSpecs` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields except contents. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListApiSpecsRequest) Reset() { + *x = ListApiSpecsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiSpecsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiSpecsRequest) ProtoMessage() {} + +func (x *ListApiSpecsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiSpecsRequest.ProtoReflect.Descriptor instead. +func (*ListApiSpecsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{19} +} + +func (x *ListApiSpecsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListApiSpecsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListApiSpecsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListApiSpecsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListApiSpecs. +type ListApiSpecsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The specs from the specified publisher. + ApiSpecs []*ApiSpec `protobuf:"bytes,1,rep,name=api_specs,json=apiSpecs,proto3" json:"api_specs,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListApiSpecsResponse) Reset() { + *x = ListApiSpecsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiSpecsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiSpecsResponse) ProtoMessage() {} + +func (x *ListApiSpecsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiSpecsResponse.ProtoReflect.Descriptor instead. +func (*ListApiSpecsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{20} +} + +func (x *ListApiSpecsResponse) GetApiSpecs() []*ApiSpec { + if x != nil { + return x.ApiSpecs + } + return nil +} + +func (x *ListApiSpecsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetApiSpec. +type GetApiSpecRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec to retrieve. + // Format: projects/*/locations/*/apis/*/versions/*/specs/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetApiSpecRequest) Reset() { + *x = GetApiSpecRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetApiSpecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetApiSpecRequest) ProtoMessage() {} + +func (x *GetApiSpecRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetApiSpecRequest.ProtoReflect.Descriptor instead. +func (*GetApiSpecRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{21} +} + +func (x *GetApiSpecRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for GetApiSpecContents. +type GetApiSpecContentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec to retrieve. + // Format: projects/*/locations/*/apis/*/versions/*/specs/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetApiSpecContentsRequest) Reset() { + *x = GetApiSpecContentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetApiSpecContentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetApiSpecContentsRequest) ProtoMessage() {} + +func (x *GetApiSpecContentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetApiSpecContentsRequest.ProtoReflect.Descriptor instead. +func (*GetApiSpecContentsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{22} +} + +func (x *GetApiSpecContentsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for CreateApiSpec. +type CreateApiSpecRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of specs. + // Format: projects/*/locations/*/apis/*/versions/* + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The spec to create. + ApiSpec *ApiSpec `protobuf:"bytes,2,opt,name=api_spec,json=apiSpec,proto3" json:"api_spec,omitempty"` + // The ID to use for the spec, which will become the final component of + // the spec's resource name. + // + // This value should be at most 80 characters, and valid characters + // are /[a-z][0-9]-./. + ApiSpecId string `protobuf:"bytes,3,opt,name=api_spec_id,json=apiSpecId,proto3" json:"api_spec_id,omitempty"` +} + +func (x *CreateApiSpecRequest) Reset() { + *x = CreateApiSpecRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApiSpecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApiSpecRequest) ProtoMessage() {} + +func (x *CreateApiSpecRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 CreateApiSpecRequest.ProtoReflect.Descriptor instead. +func (*CreateApiSpecRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{23} +} + +func (x *CreateApiSpecRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateApiSpecRequest) GetApiSpec() *ApiSpec { + if x != nil { + return x.ApiSpec + } + return nil +} + +func (x *CreateApiSpecRequest) GetApiSpecId() string { + if x != nil { + return x.ApiSpecId + } + return "" +} + +// Request message for UpdateApiSpec. +type UpdateApiSpecRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spec to update. + // + // The `name` field is used to identify the spec to update. + // Format: projects/*/locations/*/apis/*/versions/*/specs/* + ApiSpec *ApiSpec `protobuf:"bytes,1,opt,name=api_spec,json=apiSpec,proto3" json:"api_spec,omitempty"` + // The list of fields to be updated. If omitted, all fields are updated that + // are set in the request message (fields set to default values are ignored). + // If a "*" is specified, all fields are updated, including fields that are + // unspecified/default in the request. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // If set to true, and the spec is not found, a new spec will be created. + // In this situation, `update_mask` is ignored. + AllowMissing bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` +} + +func (x *UpdateApiSpecRequest) Reset() { + *x = UpdateApiSpecRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApiSpecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApiSpecRequest) ProtoMessage() {} + +func (x *UpdateApiSpecRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 UpdateApiSpecRequest.ProtoReflect.Descriptor instead. +func (*UpdateApiSpecRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{24} +} + +func (x *UpdateApiSpecRequest) GetApiSpec() *ApiSpec { + if x != nil { + return x.ApiSpec + } + return nil +} + +func (x *UpdateApiSpecRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateApiSpecRequest) GetAllowMissing() bool { + if x != nil { + return x.AllowMissing + } + return false +} + +// Request message for DeleteApiSpec. +type DeleteApiSpecRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec to delete. + // Format: projects/*/locations/*/apis/*/versions/*/specs/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteApiSpecRequest) Reset() { + *x = DeleteApiSpecRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApiSpecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApiSpecRequest) ProtoMessage() {} + +func (x *DeleteApiSpecRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteApiSpecRequest.ProtoReflect.Descriptor instead. +func (*DeleteApiSpecRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{25} +} + +func (x *DeleteApiSpecRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for TagApiSpecRevision. +type TagApiSpecRevisionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec to be tagged, including the revision ID. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The tag to apply. + // The tag should be at most 40 characters, and match `[a-z0-9-]+`. + Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` +} + +func (x *TagApiSpecRevisionRequest) Reset() { + *x = TagApiSpecRevisionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TagApiSpecRevisionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagApiSpecRevisionRequest) ProtoMessage() {} + +func (x *TagApiSpecRevisionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 TagApiSpecRevisionRequest.ProtoReflect.Descriptor instead. +func (*TagApiSpecRevisionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{26} +} + +func (x *TagApiSpecRevisionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TagApiSpecRevisionRequest) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +// Request message for ListApiSpecRevisions. +// (-- api-linter: core::0132::request-parent-required=disabled +// aip.dev/not-precedent: Listing revisions does not require a parent. --) +// (-- api-linter: core::0132::request-unknown-fields=disabled +// aip.dev/not-precedent: Listing revisions requires nonstandard fields. --) +type ListApiSpecRevisionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec to list revisions for. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The maximum number of revisions to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token, received from a previous ListApiSpecRevisions call. + // Provide this to retrieve the subsequent page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListApiSpecRevisionsRequest) Reset() { + *x = ListApiSpecRevisionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiSpecRevisionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiSpecRevisionsRequest) ProtoMessage() {} + +func (x *ListApiSpecRevisionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiSpecRevisionsRequest.ProtoReflect.Descriptor instead. +func (*ListApiSpecRevisionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{27} +} + +func (x *ListApiSpecRevisionsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ListApiSpecRevisionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListApiSpecRevisionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ListApiSpecRevisionsResponse. +// (-- api-linter: core::0132::response-unknown-fields=disabled +// aip.dev/not-precedent: Listing revisions requires nonstandard fields. --) +type ListApiSpecRevisionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The revisions of the spec. + ApiSpecs []*ApiSpec `protobuf:"bytes,1,rep,name=api_specs,json=apiSpecs,proto3" json:"api_specs,omitempty"` + // A token that can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListApiSpecRevisionsResponse) Reset() { + *x = ListApiSpecRevisionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApiSpecRevisionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApiSpecRevisionsResponse) ProtoMessage() {} + +func (x *ListApiSpecRevisionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListApiSpecRevisionsResponse.ProtoReflect.Descriptor instead. +func (*ListApiSpecRevisionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{28} +} + +func (x *ListApiSpecRevisionsResponse) GetApiSpecs() []*ApiSpec { + if x != nil { + return x.ApiSpecs + } + return nil +} + +func (x *ListApiSpecRevisionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for RollbackApiSpec. +type RollbackApiSpecRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spec being rolled back. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The revision ID to roll back to. + // It must be a revision of the same spec. + // + // Example: c7cfa2a8 + RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"` +} + +func (x *RollbackApiSpecRequest) Reset() { + *x = RollbackApiSpecRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RollbackApiSpecRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RollbackApiSpecRequest) ProtoMessage() {} + +func (x *RollbackApiSpecRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 RollbackApiSpecRequest.ProtoReflect.Descriptor instead. +func (*RollbackApiSpecRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{29} +} + +func (x *RollbackApiSpecRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RollbackApiSpecRequest) GetRevisionId() string { + if x != nil { + return x.RevisionId + } + return "" +} + +// Request message for DeleteApiSpecRevision. +type DeleteApiSpecRevisionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spec revision to be deleted, + // with a revision ID explicitly included. + // + // Example: + // projects/sample/locations/global/apis/petstore/versions/1.0.0/specs/openapi.yaml@c7cfa2a8 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteApiSpecRevisionRequest) Reset() { + *x = DeleteApiSpecRevisionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApiSpecRevisionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApiSpecRevisionRequest) ProtoMessage() {} + +func (x *DeleteApiSpecRevisionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteApiSpecRevisionRequest.ProtoReflect.Descriptor instead. +func (*DeleteApiSpecRevisionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{30} +} + +func (x *DeleteApiSpecRevisionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListArtifacts. +type ListArtifactsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of artifacts. + // Format: {parent} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of artifacts to return. + // The service may return fewer than this value. + // If unspecified, at most 50 values will be returned. + // The maximum is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListArtifacts` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListArtifacts` must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that can be used to filter the list. Filters use the Common + // Expression Language and can refer to all message fields except contents. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListArtifactsRequest) Reset() { + *x = ListArtifactsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListArtifactsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListArtifactsRequest) ProtoMessage() {} + +func (x *ListArtifactsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListArtifactsRequest.ProtoReflect.Descriptor instead. +func (*ListArtifactsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{31} +} + +func (x *ListArtifactsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListArtifactsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListArtifactsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListArtifactsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListArtifacts. +type ListArtifactsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The artifacts from the specified publisher. + Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListArtifactsResponse) Reset() { + *x = ListArtifactsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListArtifactsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListArtifactsResponse) ProtoMessage() {} + +func (x *ListArtifactsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ListArtifactsResponse.ProtoReflect.Descriptor instead. +func (*ListArtifactsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{32} +} + +func (x *ListArtifactsResponse) GetArtifacts() []*Artifact { + if x != nil { + return x.Artifacts + } + return nil +} + +func (x *ListArtifactsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetArtifact. +type GetArtifactRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the artifact to retrieve. + // Format: {parent}/artifacts/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetArtifactRequest) Reset() { + *x = GetArtifactRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtifactRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtifactRequest) ProtoMessage() {} + +func (x *GetArtifactRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetArtifactRequest.ProtoReflect.Descriptor instead. +func (*GetArtifactRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{33} +} + +func (x *GetArtifactRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for GetArtifactContents. +type GetArtifactContentsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the artifact to retrieve. + // Format: {parent}/artifacts/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetArtifactContentsRequest) Reset() { + *x = GetArtifactContentsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetArtifactContentsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetArtifactContentsRequest) ProtoMessage() {} + +func (x *GetArtifactContentsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 GetArtifactContentsRequest.ProtoReflect.Descriptor instead. +func (*GetArtifactContentsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{34} +} + +func (x *GetArtifactContentsRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for CreateArtifact. +type CreateArtifactRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of artifacts. + // Format: {parent} + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The artifact to create. + Artifact *Artifact `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"` + // The ID to use for the artifact, which will become the final component of + // the artifact's resource name. + // + // This value should be at most 80 characters, and valid characters + // are /[a-z][0-9]-./. + ArtifactId string `protobuf:"bytes,3,opt,name=artifact_id,json=artifactId,proto3" json:"artifact_id,omitempty"` +} + +func (x *CreateArtifactRequest) Reset() { + *x = CreateArtifactRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateArtifactRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateArtifactRequest) ProtoMessage() {} + +func (x *CreateArtifactRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 CreateArtifactRequest.ProtoReflect.Descriptor instead. +func (*CreateArtifactRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{35} +} + +func (x *CreateArtifactRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateArtifactRequest) GetArtifact() *Artifact { + if x != nil { + return x.Artifact + } + return nil +} + +func (x *CreateArtifactRequest) GetArtifactId() string { + if x != nil { + return x.ArtifactId + } + return "" +} + +// Request message for ReplaceArtifact. +type ReplaceArtifactRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The artifact to replace. + // + // The `name` field is used to identify the artifact to replace. + // Format: {parent}/artifacts/* + Artifact *Artifact `protobuf:"bytes,1,opt,name=artifact,proto3" json:"artifact,omitempty"` +} + +func (x *ReplaceArtifactRequest) Reset() { + *x = ReplaceArtifactRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReplaceArtifactRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReplaceArtifactRequest) ProtoMessage() {} + +func (x *ReplaceArtifactRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 ReplaceArtifactRequest.ProtoReflect.Descriptor instead. +func (*ReplaceArtifactRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{36} +} + +func (x *ReplaceArtifactRequest) GetArtifact() *Artifact { + if x != nil { + return x.Artifact + } + return nil +} + +// Request message for DeleteArtifact. +type DeleteArtifactRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the artifact to delete. + // Format: {parent}/artifacts/* + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteArtifactRequest) Reset() { + *x = DeleteArtifactRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteArtifactRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteArtifactRequest) ProtoMessage() {} + +func (x *DeleteArtifactRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_v1_registry_service_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 DeleteArtifactRequest.ProtoReflect.Descriptor instead. +func (*DeleteArtifactRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP(), []int{37} +} + +func (x *DeleteArtifactRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +var File_google_cloud_apigee_registry_v1_registry_service_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_v1_registry_service_proto_rawDesc = []byte{ + 0x0a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, + 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x22, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x69, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x53, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x70, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x12, 0x1b, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x70, 0x69, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x74, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x61, 0x70, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x52, 0x04, 0x61, 0x70, 0x69, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x48, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, + 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x12, 0x1b, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x3b, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x69, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x15, 0x0a, + 0x06, 0x61, 0x70, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, + 0x70, 0x69, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x6b, 0x22, 0x4b, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xb0, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x24, 0x12, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4e, 0x0a, 0x0c, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x56, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x70, + 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xd6, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x24, 0x12, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x51, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xa9, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x59, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, + 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xaa, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, + 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x85, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x08, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, + 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, + 0x53, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xc1, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x21, 0x12, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x08, 0x61, 0x70, + 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x61, 0x70, 0x69, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, + 0x08, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x53, 0x0a, 0x14, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, + 0x0a, 0x19, 0x54, 0x61, 0x67, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, + 0x96, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, + 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x61, 0x70, 0x69, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7b, 0x0a, 0x16, 0x52, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x5b, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x22, 0x12, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x88, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x09, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x52, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x5a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x01, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x12, 0x20, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x49, 0x64, 0x22, 0x64, 0x0a, 0x16, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x4a, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x55, 0x0a, 0x15, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x32, 0xf2, 0x38, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, + 0x60, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x12, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa4, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x32, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x17, 0x22, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0xda, 0x41, 0x12, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, + 0xb6, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x32, 0x1d, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x17, 0x2a, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0xaa, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x73, 0x12, 0x30, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, + 0x70, 0x69, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x97, 0x01, 0x0a, + 0x06, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x22, 0x37, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x7d, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x70, 0x69, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x22, 0x49, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x03, 0x61, 0x70, 0x69, 0xda, 0x41, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x70, + 0x69, 0x2c, 0x61, 0x70, 0x69, 0x5f, 0x69, 0x64, 0x12, 0xb1, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x22, + 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x32, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x70, + 0x69, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x03, 0x61, 0x70, 0x69, 0xda, 0x41, 0x0f, 0x61, 0x70, 0x69, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x8f, 0x01, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xca, + 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, + 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb7, 0x01, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x0b, + 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0xda, 0x41, 0x21, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x2c, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x12, + 0xe9, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4e, 0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0xda, 0x41, 0x17, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xa8, 0x01, 0x0a, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc9, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, + 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0xb6, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x22, + 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, + 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, + 0x42, 0x6f, 0x64, 0x79, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, + 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdd, 0x01, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x22, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, + 0x70, 0x65, 0x63, 0x73, 0x3a, 0x08, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0xda, 0x41, + 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x2c, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x69, 0x64, 0x12, 0xdf, 0x01, 0x0a, + 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x22, + 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x70, + 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x08, 0x61, + 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0xda, 0x41, 0x14, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xaa, + 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x2a, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, + 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, + 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x12, + 0x54, 0x61, 0x67, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x22, 0x52, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, + 0x22, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x61, + 0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0xe6, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, + 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, + 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x22, 0x4f, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x49, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x01, 0x2a, 0x12, 0xc9, 0x01, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x59, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x2a, 0x4a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x86, 0x03, 0x0a, 0x0d, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, + 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0xf5, 0x01, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x5a, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5a, 0x41, 0x12, 0x3f, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x5a, 0x49, + 0x12, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0xf3, 0x02, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x22, 0x83, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xf5, 0x01, 0x12, 0x2d, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, 0x12, 0x34, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x5a, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x49, 0x12, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, + 0x63, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x9e, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, + 0x6f, 0x64, 0x79, 0x22, 0xb3, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xa5, 0x02, 0x12, 0x39, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x5a, 0x42, 0x12, 0x40, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x5a, 0x4d, 0x12, 0x4b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x5a, 0x55, 0x12, 0x53, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb8, 0x03, 0x0a, 0x0e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, + 0xc2, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9d, 0x02, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x3a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x5a, 0x40, 0x22, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x3a, 0x08, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x5a, 0x4b, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x3a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x5a, 0x53, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, + 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x3a, 0x08, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x12, 0xcb, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0xd3, 0x02, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0xc1, 0x02, 0x1a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x08, + 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5a, 0x49, 0x1a, 0x3d, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x5a, 0x54, 0x1a, 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5a, 0x5c, 0x1a, 0x50, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, + 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x08, 0x61, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0xda, 0x41, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x12, 0xe6, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x83, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0xf5, 0x01, 0x2a, + 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x36, + 0x2a, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x41, 0x2a, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x5a, 0x49, 0x2a, 0x47, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x2a, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x73, 0x70, 0x65, 0x63, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x1a, 0x1a, 0xca, 0x41, 0x17, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x42, 0x61, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, + 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x14, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescData = file_google_cloud_apigee_registry_v1_registry_service_proto_rawDesc +) + +func file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_v1_registry_service_proto_rawDescData +} + +var file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_google_cloud_apigee_registry_v1_registry_service_proto_goTypes = []interface{}{ + (*Status)(nil), // 0: google.cloud.apigee.registry.v1.Status + (*ListProjectsRequest)(nil), // 1: google.cloud.apigee.registry.v1.ListProjectsRequest + (*ListProjectsResponse)(nil), // 2: google.cloud.apigee.registry.v1.ListProjectsResponse + (*GetProjectRequest)(nil), // 3: google.cloud.apigee.registry.v1.GetProjectRequest + (*CreateProjectRequest)(nil), // 4: google.cloud.apigee.registry.v1.CreateProjectRequest + (*UpdateProjectRequest)(nil), // 5: google.cloud.apigee.registry.v1.UpdateProjectRequest + (*DeleteProjectRequest)(nil), // 6: google.cloud.apigee.registry.v1.DeleteProjectRequest + (*ListApisRequest)(nil), // 7: google.cloud.apigee.registry.v1.ListApisRequest + (*ListApisResponse)(nil), // 8: google.cloud.apigee.registry.v1.ListApisResponse + (*GetApiRequest)(nil), // 9: google.cloud.apigee.registry.v1.GetApiRequest + (*CreateApiRequest)(nil), // 10: google.cloud.apigee.registry.v1.CreateApiRequest + (*UpdateApiRequest)(nil), // 11: google.cloud.apigee.registry.v1.UpdateApiRequest + (*DeleteApiRequest)(nil), // 12: google.cloud.apigee.registry.v1.DeleteApiRequest + (*ListApiVersionsRequest)(nil), // 13: google.cloud.apigee.registry.v1.ListApiVersionsRequest + (*ListApiVersionsResponse)(nil), // 14: google.cloud.apigee.registry.v1.ListApiVersionsResponse + (*GetApiVersionRequest)(nil), // 15: google.cloud.apigee.registry.v1.GetApiVersionRequest + (*CreateApiVersionRequest)(nil), // 16: google.cloud.apigee.registry.v1.CreateApiVersionRequest + (*UpdateApiVersionRequest)(nil), // 17: google.cloud.apigee.registry.v1.UpdateApiVersionRequest + (*DeleteApiVersionRequest)(nil), // 18: google.cloud.apigee.registry.v1.DeleteApiVersionRequest + (*ListApiSpecsRequest)(nil), // 19: google.cloud.apigee.registry.v1.ListApiSpecsRequest + (*ListApiSpecsResponse)(nil), // 20: google.cloud.apigee.registry.v1.ListApiSpecsResponse + (*GetApiSpecRequest)(nil), // 21: google.cloud.apigee.registry.v1.GetApiSpecRequest + (*GetApiSpecContentsRequest)(nil), // 22: google.cloud.apigee.registry.v1.GetApiSpecContentsRequest + (*CreateApiSpecRequest)(nil), // 23: google.cloud.apigee.registry.v1.CreateApiSpecRequest + (*UpdateApiSpecRequest)(nil), // 24: google.cloud.apigee.registry.v1.UpdateApiSpecRequest + (*DeleteApiSpecRequest)(nil), // 25: google.cloud.apigee.registry.v1.DeleteApiSpecRequest + (*TagApiSpecRevisionRequest)(nil), // 26: google.cloud.apigee.registry.v1.TagApiSpecRevisionRequest + (*ListApiSpecRevisionsRequest)(nil), // 27: google.cloud.apigee.registry.v1.ListApiSpecRevisionsRequest + (*ListApiSpecRevisionsResponse)(nil), // 28: google.cloud.apigee.registry.v1.ListApiSpecRevisionsResponse + (*RollbackApiSpecRequest)(nil), // 29: google.cloud.apigee.registry.v1.RollbackApiSpecRequest + (*DeleteApiSpecRevisionRequest)(nil), // 30: google.cloud.apigee.registry.v1.DeleteApiSpecRevisionRequest + (*ListArtifactsRequest)(nil), // 31: google.cloud.apigee.registry.v1.ListArtifactsRequest + (*ListArtifactsResponse)(nil), // 32: google.cloud.apigee.registry.v1.ListArtifactsResponse + (*GetArtifactRequest)(nil), // 33: google.cloud.apigee.registry.v1.GetArtifactRequest + (*GetArtifactContentsRequest)(nil), // 34: google.cloud.apigee.registry.v1.GetArtifactContentsRequest + (*CreateArtifactRequest)(nil), // 35: google.cloud.apigee.registry.v1.CreateArtifactRequest + (*ReplaceArtifactRequest)(nil), // 36: google.cloud.apigee.registry.v1.ReplaceArtifactRequest + (*DeleteArtifactRequest)(nil), // 37: google.cloud.apigee.registry.v1.DeleteArtifactRequest + (*Project)(nil), // 38: google.cloud.apigee.registry.v1.Project + (*fieldmaskpb.FieldMask)(nil), // 39: google.protobuf.FieldMask + (*Api)(nil), // 40: google.cloud.apigee.registry.v1.Api + (*ApiVersion)(nil), // 41: google.cloud.apigee.registry.v1.ApiVersion + (*ApiSpec)(nil), // 42: google.cloud.apigee.registry.v1.ApiSpec + (*Artifact)(nil), // 43: google.cloud.apigee.registry.v1.Artifact + (*emptypb.Empty)(nil), // 44: google.protobuf.Empty + (*httpbody.HttpBody)(nil), // 45: google.api.HttpBody +} +var file_google_cloud_apigee_registry_v1_registry_service_proto_depIdxs = []int32{ + 38, // 0: google.cloud.apigee.registry.v1.ListProjectsResponse.projects:type_name -> google.cloud.apigee.registry.v1.Project + 38, // 1: google.cloud.apigee.registry.v1.CreateProjectRequest.project:type_name -> google.cloud.apigee.registry.v1.Project + 38, // 2: google.cloud.apigee.registry.v1.UpdateProjectRequest.project:type_name -> google.cloud.apigee.registry.v1.Project + 39, // 3: google.cloud.apigee.registry.v1.UpdateProjectRequest.update_mask:type_name -> google.protobuf.FieldMask + 40, // 4: google.cloud.apigee.registry.v1.ListApisResponse.apis:type_name -> google.cloud.apigee.registry.v1.Api + 40, // 5: google.cloud.apigee.registry.v1.CreateApiRequest.api:type_name -> google.cloud.apigee.registry.v1.Api + 40, // 6: google.cloud.apigee.registry.v1.UpdateApiRequest.api:type_name -> google.cloud.apigee.registry.v1.Api + 39, // 7: google.cloud.apigee.registry.v1.UpdateApiRequest.update_mask:type_name -> google.protobuf.FieldMask + 41, // 8: google.cloud.apigee.registry.v1.ListApiVersionsResponse.api_versions:type_name -> google.cloud.apigee.registry.v1.ApiVersion + 41, // 9: google.cloud.apigee.registry.v1.CreateApiVersionRequest.api_version:type_name -> google.cloud.apigee.registry.v1.ApiVersion + 41, // 10: google.cloud.apigee.registry.v1.UpdateApiVersionRequest.api_version:type_name -> google.cloud.apigee.registry.v1.ApiVersion + 39, // 11: google.cloud.apigee.registry.v1.UpdateApiVersionRequest.update_mask:type_name -> google.protobuf.FieldMask + 42, // 12: google.cloud.apigee.registry.v1.ListApiSpecsResponse.api_specs:type_name -> google.cloud.apigee.registry.v1.ApiSpec + 42, // 13: google.cloud.apigee.registry.v1.CreateApiSpecRequest.api_spec:type_name -> google.cloud.apigee.registry.v1.ApiSpec + 42, // 14: google.cloud.apigee.registry.v1.UpdateApiSpecRequest.api_spec:type_name -> google.cloud.apigee.registry.v1.ApiSpec + 39, // 15: google.cloud.apigee.registry.v1.UpdateApiSpecRequest.update_mask:type_name -> google.protobuf.FieldMask + 42, // 16: google.cloud.apigee.registry.v1.ListApiSpecRevisionsResponse.api_specs:type_name -> google.cloud.apigee.registry.v1.ApiSpec + 43, // 17: google.cloud.apigee.registry.v1.ListArtifactsResponse.artifacts:type_name -> google.cloud.apigee.registry.v1.Artifact + 43, // 18: google.cloud.apigee.registry.v1.CreateArtifactRequest.artifact:type_name -> google.cloud.apigee.registry.v1.Artifact + 43, // 19: google.cloud.apigee.registry.v1.ReplaceArtifactRequest.artifact:type_name -> google.cloud.apigee.registry.v1.Artifact + 44, // 20: google.cloud.apigee.registry.v1.Registry.GetStatus:input_type -> google.protobuf.Empty + 1, // 21: google.cloud.apigee.registry.v1.Registry.ListProjects:input_type -> google.cloud.apigee.registry.v1.ListProjectsRequest + 3, // 22: google.cloud.apigee.registry.v1.Registry.GetProject:input_type -> google.cloud.apigee.registry.v1.GetProjectRequest + 4, // 23: google.cloud.apigee.registry.v1.Registry.CreateProject:input_type -> google.cloud.apigee.registry.v1.CreateProjectRequest + 5, // 24: google.cloud.apigee.registry.v1.Registry.UpdateProject:input_type -> google.cloud.apigee.registry.v1.UpdateProjectRequest + 6, // 25: google.cloud.apigee.registry.v1.Registry.DeleteProject:input_type -> google.cloud.apigee.registry.v1.DeleteProjectRequest + 7, // 26: google.cloud.apigee.registry.v1.Registry.ListApis:input_type -> google.cloud.apigee.registry.v1.ListApisRequest + 9, // 27: google.cloud.apigee.registry.v1.Registry.GetApi:input_type -> google.cloud.apigee.registry.v1.GetApiRequest + 10, // 28: google.cloud.apigee.registry.v1.Registry.CreateApi:input_type -> google.cloud.apigee.registry.v1.CreateApiRequest + 11, // 29: google.cloud.apigee.registry.v1.Registry.UpdateApi:input_type -> google.cloud.apigee.registry.v1.UpdateApiRequest + 12, // 30: google.cloud.apigee.registry.v1.Registry.DeleteApi:input_type -> google.cloud.apigee.registry.v1.DeleteApiRequest + 13, // 31: google.cloud.apigee.registry.v1.Registry.ListApiVersions:input_type -> google.cloud.apigee.registry.v1.ListApiVersionsRequest + 15, // 32: google.cloud.apigee.registry.v1.Registry.GetApiVersion:input_type -> google.cloud.apigee.registry.v1.GetApiVersionRequest + 16, // 33: google.cloud.apigee.registry.v1.Registry.CreateApiVersion:input_type -> google.cloud.apigee.registry.v1.CreateApiVersionRequest + 17, // 34: google.cloud.apigee.registry.v1.Registry.UpdateApiVersion:input_type -> google.cloud.apigee.registry.v1.UpdateApiVersionRequest + 18, // 35: google.cloud.apigee.registry.v1.Registry.DeleteApiVersion:input_type -> google.cloud.apigee.registry.v1.DeleteApiVersionRequest + 19, // 36: google.cloud.apigee.registry.v1.Registry.ListApiSpecs:input_type -> google.cloud.apigee.registry.v1.ListApiSpecsRequest + 21, // 37: google.cloud.apigee.registry.v1.Registry.GetApiSpec:input_type -> google.cloud.apigee.registry.v1.GetApiSpecRequest + 22, // 38: google.cloud.apigee.registry.v1.Registry.GetApiSpecContents:input_type -> google.cloud.apigee.registry.v1.GetApiSpecContentsRequest + 23, // 39: google.cloud.apigee.registry.v1.Registry.CreateApiSpec:input_type -> google.cloud.apigee.registry.v1.CreateApiSpecRequest + 24, // 40: google.cloud.apigee.registry.v1.Registry.UpdateApiSpec:input_type -> google.cloud.apigee.registry.v1.UpdateApiSpecRequest + 25, // 41: google.cloud.apigee.registry.v1.Registry.DeleteApiSpec:input_type -> google.cloud.apigee.registry.v1.DeleteApiSpecRequest + 26, // 42: google.cloud.apigee.registry.v1.Registry.TagApiSpecRevision:input_type -> google.cloud.apigee.registry.v1.TagApiSpecRevisionRequest + 27, // 43: google.cloud.apigee.registry.v1.Registry.ListApiSpecRevisions:input_type -> google.cloud.apigee.registry.v1.ListApiSpecRevisionsRequest + 29, // 44: google.cloud.apigee.registry.v1.Registry.RollbackApiSpec:input_type -> google.cloud.apigee.registry.v1.RollbackApiSpecRequest + 30, // 45: google.cloud.apigee.registry.v1.Registry.DeleteApiSpecRevision:input_type -> google.cloud.apigee.registry.v1.DeleteApiSpecRevisionRequest + 31, // 46: google.cloud.apigee.registry.v1.Registry.ListArtifacts:input_type -> google.cloud.apigee.registry.v1.ListArtifactsRequest + 33, // 47: google.cloud.apigee.registry.v1.Registry.GetArtifact:input_type -> google.cloud.apigee.registry.v1.GetArtifactRequest + 34, // 48: google.cloud.apigee.registry.v1.Registry.GetArtifactContents:input_type -> google.cloud.apigee.registry.v1.GetArtifactContentsRequest + 35, // 49: google.cloud.apigee.registry.v1.Registry.CreateArtifact:input_type -> google.cloud.apigee.registry.v1.CreateArtifactRequest + 36, // 50: google.cloud.apigee.registry.v1.Registry.ReplaceArtifact:input_type -> google.cloud.apigee.registry.v1.ReplaceArtifactRequest + 37, // 51: google.cloud.apigee.registry.v1.Registry.DeleteArtifact:input_type -> google.cloud.apigee.registry.v1.DeleteArtifactRequest + 0, // 52: google.cloud.apigee.registry.v1.Registry.GetStatus:output_type -> google.cloud.apigee.registry.v1.Status + 2, // 53: google.cloud.apigee.registry.v1.Registry.ListProjects:output_type -> google.cloud.apigee.registry.v1.ListProjectsResponse + 38, // 54: google.cloud.apigee.registry.v1.Registry.GetProject:output_type -> google.cloud.apigee.registry.v1.Project + 38, // 55: google.cloud.apigee.registry.v1.Registry.CreateProject:output_type -> google.cloud.apigee.registry.v1.Project + 38, // 56: google.cloud.apigee.registry.v1.Registry.UpdateProject:output_type -> google.cloud.apigee.registry.v1.Project + 44, // 57: google.cloud.apigee.registry.v1.Registry.DeleteProject:output_type -> google.protobuf.Empty + 8, // 58: google.cloud.apigee.registry.v1.Registry.ListApis:output_type -> google.cloud.apigee.registry.v1.ListApisResponse + 40, // 59: google.cloud.apigee.registry.v1.Registry.GetApi:output_type -> google.cloud.apigee.registry.v1.Api + 40, // 60: google.cloud.apigee.registry.v1.Registry.CreateApi:output_type -> google.cloud.apigee.registry.v1.Api + 40, // 61: google.cloud.apigee.registry.v1.Registry.UpdateApi:output_type -> google.cloud.apigee.registry.v1.Api + 44, // 62: google.cloud.apigee.registry.v1.Registry.DeleteApi:output_type -> google.protobuf.Empty + 14, // 63: google.cloud.apigee.registry.v1.Registry.ListApiVersions:output_type -> google.cloud.apigee.registry.v1.ListApiVersionsResponse + 41, // 64: google.cloud.apigee.registry.v1.Registry.GetApiVersion:output_type -> google.cloud.apigee.registry.v1.ApiVersion + 41, // 65: google.cloud.apigee.registry.v1.Registry.CreateApiVersion:output_type -> google.cloud.apigee.registry.v1.ApiVersion + 41, // 66: google.cloud.apigee.registry.v1.Registry.UpdateApiVersion:output_type -> google.cloud.apigee.registry.v1.ApiVersion + 44, // 67: google.cloud.apigee.registry.v1.Registry.DeleteApiVersion:output_type -> google.protobuf.Empty + 20, // 68: google.cloud.apigee.registry.v1.Registry.ListApiSpecs:output_type -> google.cloud.apigee.registry.v1.ListApiSpecsResponse + 42, // 69: google.cloud.apigee.registry.v1.Registry.GetApiSpec:output_type -> google.cloud.apigee.registry.v1.ApiSpec + 45, // 70: google.cloud.apigee.registry.v1.Registry.GetApiSpecContents:output_type -> google.api.HttpBody + 42, // 71: google.cloud.apigee.registry.v1.Registry.CreateApiSpec:output_type -> google.cloud.apigee.registry.v1.ApiSpec + 42, // 72: google.cloud.apigee.registry.v1.Registry.UpdateApiSpec:output_type -> google.cloud.apigee.registry.v1.ApiSpec + 44, // 73: google.cloud.apigee.registry.v1.Registry.DeleteApiSpec:output_type -> google.protobuf.Empty + 42, // 74: google.cloud.apigee.registry.v1.Registry.TagApiSpecRevision:output_type -> google.cloud.apigee.registry.v1.ApiSpec + 28, // 75: google.cloud.apigee.registry.v1.Registry.ListApiSpecRevisions:output_type -> google.cloud.apigee.registry.v1.ListApiSpecRevisionsResponse + 42, // 76: google.cloud.apigee.registry.v1.Registry.RollbackApiSpec:output_type -> google.cloud.apigee.registry.v1.ApiSpec + 44, // 77: google.cloud.apigee.registry.v1.Registry.DeleteApiSpecRevision:output_type -> google.protobuf.Empty + 32, // 78: google.cloud.apigee.registry.v1.Registry.ListArtifacts:output_type -> google.cloud.apigee.registry.v1.ListArtifactsResponse + 43, // 79: google.cloud.apigee.registry.v1.Registry.GetArtifact:output_type -> google.cloud.apigee.registry.v1.Artifact + 45, // 80: google.cloud.apigee.registry.v1.Registry.GetArtifactContents:output_type -> google.api.HttpBody + 43, // 81: google.cloud.apigee.registry.v1.Registry.CreateArtifact:output_type -> google.cloud.apigee.registry.v1.Artifact + 43, // 82: google.cloud.apigee.registry.v1.Registry.ReplaceArtifact:output_type -> google.cloud.apigee.registry.v1.Artifact + 44, // 83: google.cloud.apigee.registry.v1.Registry.DeleteArtifact:output_type -> google.protobuf.Empty + 52, // [52:84] is the sub-list for method output_type + 20, // [20:52] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_v1_registry_service_proto_init() } +func file_google_cloud_apigee_registry_v1_registry_service_proto_init() { + if File_google_cloud_apigee_registry_v1_registry_service_proto != nil { + return + } + file_google_cloud_apigee_registry_v1_registry_models_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProjectsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProjectsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProjectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateProjectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateProjectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteProjectRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApisRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApisResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetApiRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApiRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApiRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApiRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiVersionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiVersionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetApiVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApiVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApiVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApiVersionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiSpecsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiSpecsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetApiSpecRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetApiSpecContentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApiSpecRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApiSpecRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApiSpecRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TagApiSpecRevisionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiSpecRevisionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApiSpecRevisionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RollbackApiSpecRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApiSpecRevisionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListArtifactsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListArtifactsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtifactRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArtifactContentsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateArtifactRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplaceArtifactRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteArtifactRequest); 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_google_cloud_apigee_registry_v1_registry_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 38, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_apigee_registry_v1_registry_service_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_v1_registry_service_proto_depIdxs, + MessageInfos: file_google_cloud_apigee_registry_v1_registry_service_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_v1_registry_service_proto = out.File + file_google_cloud_apigee_registry_v1_registry_service_proto_rawDesc = nil + file_google_cloud_apigee_registry_v1_registry_service_proto_goTypes = nil + file_google_cloud_apigee_registry_v1_registry_service_proto_depIdxs = nil +} diff --git a/rpc/registry_service_grpc.pb.go b/rpc/registry_service_grpc.pb.go new file mode 100644 index 000000000..183798584 --- /dev/null +++ b/rpc/registry_service_grpc.pb.go @@ -0,0 +1,1347 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. + +package rpc + +import ( + context "context" + httpbody "google.golang.org/genproto/googleapis/api/httpbody" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// 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 + +// RegistryClient is the client API for Registry 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 RegistryClient interface { + // GetStatus returns the status of the service. + // GetStatus is for verifying open source deployments only + // and is not included in hosted versions of the API. + // (-- api-linter: core::0131::request-message-name=disabled + // aip.dev/not-precedent: Not in the official API. --) + // (-- api-linter: core::0131::method-signature=disabled + // aip.dev/not-precedent: Not in the official API. --) + // (-- api-linter: core::0131::http-uri-name=disabled + // aip.dev/not-precedent: Not in the official API. --) + GetStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Status, error) + // ListProjects returns matching projects. + // (-- api-linter: standard-methods=disabled --) + // (-- api-linter: core::0132::method-signature=disabled + // aip.dev/not-precedent: projects are top-level resources. --) + ListProjects(ctx context.Context, in *ListProjectsRequest, opts ...grpc.CallOption) (*ListProjectsResponse, error) + // GetProject returns a specified project. + GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*Project, error) + // CreateProject creates a specified project. + // (-- api-linter: standard-methods=disabled --) + // (-- api-linter: core::0133::http-uri-parent=disabled + // aip.dev/not-precedent: Project has an implicit parent. --) + // (-- api-linter: core::0133::method-signature=disabled + // aip.dev/not-precedent: Project has an implicit parent. --) + CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*Project, error) + // UpdateProject can be used to modify a specified project. + UpdateProject(ctx context.Context, in *UpdateProjectRequest, opts ...grpc.CallOption) (*Project, error) + // DeleteProject removes a specified project and all of the resources that it + // owns. + DeleteProject(ctx context.Context, in *DeleteProjectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // ListApis returns matching APIs. + ListApis(ctx context.Context, in *ListApisRequest, opts ...grpc.CallOption) (*ListApisResponse, error) + // GetApi returns a specified API. + GetApi(ctx context.Context, in *GetApiRequest, opts ...grpc.CallOption) (*Api, error) + // CreateApi creates a specified API. + CreateApi(ctx context.Context, in *CreateApiRequest, opts ...grpc.CallOption) (*Api, error) + // UpdateApi can be used to modify a specified API. + UpdateApi(ctx context.Context, in *UpdateApiRequest, opts ...grpc.CallOption) (*Api, error) + // DeleteApi removes a specified API and all of the resources that it + // owns. + DeleteApi(ctx context.Context, in *DeleteApiRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // ListApiVersions returns matching versions. + ListApiVersions(ctx context.Context, in *ListApiVersionsRequest, opts ...grpc.CallOption) (*ListApiVersionsResponse, error) + // GetApiVersion returns a specified version. + GetApiVersion(ctx context.Context, in *GetApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) + // CreateApiVersion creates a specified version. + CreateApiVersion(ctx context.Context, in *CreateApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) + // UpdateApiVersion can be used to modify a specified version. + UpdateApiVersion(ctx context.Context, in *UpdateApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) + // DeleteApiVersion removes a specified version and all of the resources that + // it owns. + DeleteApiVersion(ctx context.Context, in *DeleteApiVersionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // ListApiSpecs returns matching specs. + ListApiSpecs(ctx context.Context, in *ListApiSpecsRequest, opts ...grpc.CallOption) (*ListApiSpecsResponse, error) + // GetApiSpec returns a specified spec. + GetApiSpec(ctx context.Context, in *GetApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) + // GetApiSpecContents returns the contents of a specified spec. + // If specs are stored with GZip compression, the default behavior + // is to return the spec uncompressed (the mime_type response field + // indicates the exact format returned). + // (-- api-linter: core::0131::response-message-name=disabled + // aip.dev/not-precedent: Responses are arbitrary blobs of data. --) + GetApiSpecContents(ctx context.Context, in *GetApiSpecContentsRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) + // CreateApiSpec creates a specified spec. + CreateApiSpec(ctx context.Context, in *CreateApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) + // UpdateApiSpec can be used to modify a specified spec. + UpdateApiSpec(ctx context.Context, in *UpdateApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) + // DeleteApiSpec removes a specified spec, all revisions, and all child + // resources (e.g. artifacts). + DeleteApiSpec(ctx context.Context, in *DeleteApiSpecRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // TagApiSpecRevision adds a tag to a specified revision of a spec. + TagApiSpecRevision(ctx context.Context, in *TagApiSpecRevisionRequest, opts ...grpc.CallOption) (*ApiSpec, error) + // ListApiSpecRevisions lists all revisions of a spec. + // Revisions are returned in descending order of revision creation time. + ListApiSpecRevisions(ctx context.Context, in *ListApiSpecRevisionsRequest, opts ...grpc.CallOption) (*ListApiSpecRevisionsResponse, error) + // RollbackApiSpec sets the current revision to a specified prior revision. + // Note that this creates a new revision with a new revision ID. + RollbackApiSpec(ctx context.Context, in *RollbackApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) + // DeleteApiSpecRevision deletes a revision of a spec. + DeleteApiSpecRevision(ctx context.Context, in *DeleteApiSpecRevisionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // ListArtifacts returns matching artifacts. + ListArtifacts(ctx context.Context, in *ListArtifactsRequest, opts ...grpc.CallOption) (*ListArtifactsResponse, error) + // GetArtifact returns a specified artifact. + GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) + // GetArtifactContents returns the contents of a specified artifact. + // If artifacts are stored with GZip compression, the default behavior + // is to return the artifact uncompressed (the mime_type response field + // indicates the exact format returned). + // (-- api-linter: core::0131::response-message-name=disabled + // aip.dev/not-precedent: Responses are arbitrary blobs of data. --) + GetArtifactContents(ctx context.Context, in *GetArtifactContentsRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) + // CreateArtifact creates a specified artifact. + CreateArtifact(ctx context.Context, in *CreateArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) + // ReplaceArtifact can be used to replace a specified artifact. + ReplaceArtifact(ctx context.Context, in *ReplaceArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) + // DeleteArtifact removes a specified artifact. + DeleteArtifact(ctx context.Context, in *DeleteArtifactRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) +} + +type registryClient struct { + cc grpc.ClientConnInterface +} + +func NewRegistryClient(cc grpc.ClientConnInterface) RegistryClient { + return ®istryClient{cc} +} + +func (c *registryClient) GetStatus(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*Status, error) { + out := new(Status) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetStatus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListProjects(ctx context.Context, in *ListProjectsRequest, opts ...grpc.CallOption) (*ListProjectsResponse, error) { + out := new(ListProjectsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListProjects", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetProject(ctx context.Context, in *GetProjectRequest, opts ...grpc.CallOption) (*Project, error) { + out := new(Project) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetProject", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) CreateProject(ctx context.Context, in *CreateProjectRequest, opts ...grpc.CallOption) (*Project, error) { + out := new(Project) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/CreateProject", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) UpdateProject(ctx context.Context, in *UpdateProjectRequest, opts ...grpc.CallOption) (*Project, error) { + out := new(Project) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/UpdateProject", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteProject(ctx context.Context, in *DeleteProjectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteProject", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListApis(ctx context.Context, in *ListApisRequest, opts ...grpc.CallOption) (*ListApisResponse, error) { + out := new(ListApisResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListApis", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetApi(ctx context.Context, in *GetApiRequest, opts ...grpc.CallOption) (*Api, error) { + out := new(Api) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetApi", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) CreateApi(ctx context.Context, in *CreateApiRequest, opts ...grpc.CallOption) (*Api, error) { + out := new(Api) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/CreateApi", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) UpdateApi(ctx context.Context, in *UpdateApiRequest, opts ...grpc.CallOption) (*Api, error) { + out := new(Api) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/UpdateApi", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteApi(ctx context.Context, in *DeleteApiRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteApi", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListApiVersions(ctx context.Context, in *ListApiVersionsRequest, opts ...grpc.CallOption) (*ListApiVersionsResponse, error) { + out := new(ListApiVersionsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListApiVersions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetApiVersion(ctx context.Context, in *GetApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) { + out := new(ApiVersion) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetApiVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) CreateApiVersion(ctx context.Context, in *CreateApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) { + out := new(ApiVersion) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/CreateApiVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) UpdateApiVersion(ctx context.Context, in *UpdateApiVersionRequest, opts ...grpc.CallOption) (*ApiVersion, error) { + out := new(ApiVersion) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/UpdateApiVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteApiVersion(ctx context.Context, in *DeleteApiVersionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteApiVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListApiSpecs(ctx context.Context, in *ListApiSpecsRequest, opts ...grpc.CallOption) (*ListApiSpecsResponse, error) { + out := new(ListApiSpecsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListApiSpecs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetApiSpec(ctx context.Context, in *GetApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) { + out := new(ApiSpec) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetApiSpec", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetApiSpecContents(ctx context.Context, in *GetApiSpecContentsRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) { + out := new(httpbody.HttpBody) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetApiSpecContents", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) CreateApiSpec(ctx context.Context, in *CreateApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) { + out := new(ApiSpec) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/CreateApiSpec", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) UpdateApiSpec(ctx context.Context, in *UpdateApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) { + out := new(ApiSpec) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/UpdateApiSpec", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteApiSpec(ctx context.Context, in *DeleteApiSpecRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteApiSpec", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) TagApiSpecRevision(ctx context.Context, in *TagApiSpecRevisionRequest, opts ...grpc.CallOption) (*ApiSpec, error) { + out := new(ApiSpec) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/TagApiSpecRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListApiSpecRevisions(ctx context.Context, in *ListApiSpecRevisionsRequest, opts ...grpc.CallOption) (*ListApiSpecRevisionsResponse, error) { + out := new(ListApiSpecRevisionsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListApiSpecRevisions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) RollbackApiSpec(ctx context.Context, in *RollbackApiSpecRequest, opts ...grpc.CallOption) (*ApiSpec, error) { + out := new(ApiSpec) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/RollbackApiSpec", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteApiSpecRevision(ctx context.Context, in *DeleteApiSpecRevisionRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteApiSpecRevision", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ListArtifacts(ctx context.Context, in *ListArtifactsRequest, opts ...grpc.CallOption) (*ListArtifactsResponse, error) { + out := new(ListArtifactsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ListArtifacts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) { + out := new(Artifact) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetArtifact", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) GetArtifactContents(ctx context.Context, in *GetArtifactContentsRequest, opts ...grpc.CallOption) (*httpbody.HttpBody, error) { + out := new(httpbody.HttpBody) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/GetArtifactContents", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) CreateArtifact(ctx context.Context, in *CreateArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) { + out := new(Artifact) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/CreateArtifact", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) ReplaceArtifact(ctx context.Context, in *ReplaceArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) { + out := new(Artifact) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/ReplaceArtifact", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *registryClient) DeleteArtifact(ctx context.Context, in *DeleteArtifactRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.apigee.registry.v1.Registry/DeleteArtifact", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RegistryServer is the server API for Registry service. +// All implementations must embed UnimplementedRegistryServer +// for forward compatibility +type RegistryServer interface { + // GetStatus returns the status of the service. + // GetStatus is for verifying open source deployments only + // and is not included in hosted versions of the API. + // (-- api-linter: core::0131::request-message-name=disabled + // aip.dev/not-precedent: Not in the official API. --) + // (-- api-linter: core::0131::method-signature=disabled + // aip.dev/not-precedent: Not in the official API. --) + // (-- api-linter: core::0131::http-uri-name=disabled + // aip.dev/not-precedent: Not in the official API. --) + GetStatus(context.Context, *emptypb.Empty) (*Status, error) + // ListProjects returns matching projects. + // (-- api-linter: standard-methods=disabled --) + // (-- api-linter: core::0132::method-signature=disabled + // aip.dev/not-precedent: projects are top-level resources. --) + ListProjects(context.Context, *ListProjectsRequest) (*ListProjectsResponse, error) + // GetProject returns a specified project. + GetProject(context.Context, *GetProjectRequest) (*Project, error) + // CreateProject creates a specified project. + // (-- api-linter: standard-methods=disabled --) + // (-- api-linter: core::0133::http-uri-parent=disabled + // aip.dev/not-precedent: Project has an implicit parent. --) + // (-- api-linter: core::0133::method-signature=disabled + // aip.dev/not-precedent: Project has an implicit parent. --) + CreateProject(context.Context, *CreateProjectRequest) (*Project, error) + // UpdateProject can be used to modify a specified project. + UpdateProject(context.Context, *UpdateProjectRequest) (*Project, error) + // DeleteProject removes a specified project and all of the resources that it + // owns. + DeleteProject(context.Context, *DeleteProjectRequest) (*emptypb.Empty, error) + // ListApis returns matching APIs. + ListApis(context.Context, *ListApisRequest) (*ListApisResponse, error) + // GetApi returns a specified API. + GetApi(context.Context, *GetApiRequest) (*Api, error) + // CreateApi creates a specified API. + CreateApi(context.Context, *CreateApiRequest) (*Api, error) + // UpdateApi can be used to modify a specified API. + UpdateApi(context.Context, *UpdateApiRequest) (*Api, error) + // DeleteApi removes a specified API and all of the resources that it + // owns. + DeleteApi(context.Context, *DeleteApiRequest) (*emptypb.Empty, error) + // ListApiVersions returns matching versions. + ListApiVersions(context.Context, *ListApiVersionsRequest) (*ListApiVersionsResponse, error) + // GetApiVersion returns a specified version. + GetApiVersion(context.Context, *GetApiVersionRequest) (*ApiVersion, error) + // CreateApiVersion creates a specified version. + CreateApiVersion(context.Context, *CreateApiVersionRequest) (*ApiVersion, error) + // UpdateApiVersion can be used to modify a specified version. + UpdateApiVersion(context.Context, *UpdateApiVersionRequest) (*ApiVersion, error) + // DeleteApiVersion removes a specified version and all of the resources that + // it owns. + DeleteApiVersion(context.Context, *DeleteApiVersionRequest) (*emptypb.Empty, error) + // ListApiSpecs returns matching specs. + ListApiSpecs(context.Context, *ListApiSpecsRequest) (*ListApiSpecsResponse, error) + // GetApiSpec returns a specified spec. + GetApiSpec(context.Context, *GetApiSpecRequest) (*ApiSpec, error) + // GetApiSpecContents returns the contents of a specified spec. + // If specs are stored with GZip compression, the default behavior + // is to return the spec uncompressed (the mime_type response field + // indicates the exact format returned). + // (-- api-linter: core::0131::response-message-name=disabled + // aip.dev/not-precedent: Responses are arbitrary blobs of data. --) + GetApiSpecContents(context.Context, *GetApiSpecContentsRequest) (*httpbody.HttpBody, error) + // CreateApiSpec creates a specified spec. + CreateApiSpec(context.Context, *CreateApiSpecRequest) (*ApiSpec, error) + // UpdateApiSpec can be used to modify a specified spec. + UpdateApiSpec(context.Context, *UpdateApiSpecRequest) (*ApiSpec, error) + // DeleteApiSpec removes a specified spec, all revisions, and all child + // resources (e.g. artifacts). + DeleteApiSpec(context.Context, *DeleteApiSpecRequest) (*emptypb.Empty, error) + // TagApiSpecRevision adds a tag to a specified revision of a spec. + TagApiSpecRevision(context.Context, *TagApiSpecRevisionRequest) (*ApiSpec, error) + // ListApiSpecRevisions lists all revisions of a spec. + // Revisions are returned in descending order of revision creation time. + ListApiSpecRevisions(context.Context, *ListApiSpecRevisionsRequest) (*ListApiSpecRevisionsResponse, error) + // RollbackApiSpec sets the current revision to a specified prior revision. + // Note that this creates a new revision with a new revision ID. + RollbackApiSpec(context.Context, *RollbackApiSpecRequest) (*ApiSpec, error) + // DeleteApiSpecRevision deletes a revision of a spec. + DeleteApiSpecRevision(context.Context, *DeleteApiSpecRevisionRequest) (*emptypb.Empty, error) + // ListArtifacts returns matching artifacts. + ListArtifacts(context.Context, *ListArtifactsRequest) (*ListArtifactsResponse, error) + // GetArtifact returns a specified artifact. + GetArtifact(context.Context, *GetArtifactRequest) (*Artifact, error) + // GetArtifactContents returns the contents of a specified artifact. + // If artifacts are stored with GZip compression, the default behavior + // is to return the artifact uncompressed (the mime_type response field + // indicates the exact format returned). + // (-- api-linter: core::0131::response-message-name=disabled + // aip.dev/not-precedent: Responses are arbitrary blobs of data. --) + GetArtifactContents(context.Context, *GetArtifactContentsRequest) (*httpbody.HttpBody, error) + // CreateArtifact creates a specified artifact. + CreateArtifact(context.Context, *CreateArtifactRequest) (*Artifact, error) + // ReplaceArtifact can be used to replace a specified artifact. + ReplaceArtifact(context.Context, *ReplaceArtifactRequest) (*Artifact, error) + // DeleteArtifact removes a specified artifact. + DeleteArtifact(context.Context, *DeleteArtifactRequest) (*emptypb.Empty, error) + mustEmbedUnimplementedRegistryServer() +} + +// UnimplementedRegistryServer must be embedded to have forward compatible implementations. +type UnimplementedRegistryServer struct { +} + +func (UnimplementedRegistryServer) GetStatus(context.Context, *emptypb.Empty) (*Status, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStatus not implemented") +} +func (UnimplementedRegistryServer) ListProjects(context.Context, *ListProjectsRequest) (*ListProjectsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProjects not implemented") +} +func (UnimplementedRegistryServer) GetProject(context.Context, *GetProjectRequest) (*Project, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProject not implemented") +} +func (UnimplementedRegistryServer) CreateProject(context.Context, *CreateProjectRequest) (*Project, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateProject not implemented") +} +func (UnimplementedRegistryServer) UpdateProject(context.Context, *UpdateProjectRequest) (*Project, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProject not implemented") +} +func (UnimplementedRegistryServer) DeleteProject(context.Context, *DeleteProjectRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProject not implemented") +} +func (UnimplementedRegistryServer) ListApis(context.Context, *ListApisRequest) (*ListApisResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListApis not implemented") +} +func (UnimplementedRegistryServer) GetApi(context.Context, *GetApiRequest) (*Api, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetApi not implemented") +} +func (UnimplementedRegistryServer) CreateApi(context.Context, *CreateApiRequest) (*Api, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApi not implemented") +} +func (UnimplementedRegistryServer) UpdateApi(context.Context, *UpdateApiRequest) (*Api, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApi not implemented") +} +func (UnimplementedRegistryServer) DeleteApi(context.Context, *DeleteApiRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApi not implemented") +} +func (UnimplementedRegistryServer) ListApiVersions(context.Context, *ListApiVersionsRequest) (*ListApiVersionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListApiVersions not implemented") +} +func (UnimplementedRegistryServer) GetApiVersion(context.Context, *GetApiVersionRequest) (*ApiVersion, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetApiVersion not implemented") +} +func (UnimplementedRegistryServer) CreateApiVersion(context.Context, *CreateApiVersionRequest) (*ApiVersion, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApiVersion not implemented") +} +func (UnimplementedRegistryServer) UpdateApiVersion(context.Context, *UpdateApiVersionRequest) (*ApiVersion, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApiVersion not implemented") +} +func (UnimplementedRegistryServer) DeleteApiVersion(context.Context, *DeleteApiVersionRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApiVersion not implemented") +} +func (UnimplementedRegistryServer) ListApiSpecs(context.Context, *ListApiSpecsRequest) (*ListApiSpecsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListApiSpecs not implemented") +} +func (UnimplementedRegistryServer) GetApiSpec(context.Context, *GetApiSpecRequest) (*ApiSpec, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetApiSpec not implemented") +} +func (UnimplementedRegistryServer) GetApiSpecContents(context.Context, *GetApiSpecContentsRequest) (*httpbody.HttpBody, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetApiSpecContents not implemented") +} +func (UnimplementedRegistryServer) CreateApiSpec(context.Context, *CreateApiSpecRequest) (*ApiSpec, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApiSpec not implemented") +} +func (UnimplementedRegistryServer) UpdateApiSpec(context.Context, *UpdateApiSpecRequest) (*ApiSpec, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApiSpec not implemented") +} +func (UnimplementedRegistryServer) DeleteApiSpec(context.Context, *DeleteApiSpecRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApiSpec not implemented") +} +func (UnimplementedRegistryServer) TagApiSpecRevision(context.Context, *TagApiSpecRevisionRequest) (*ApiSpec, error) { + return nil, status.Errorf(codes.Unimplemented, "method TagApiSpecRevision not implemented") +} +func (UnimplementedRegistryServer) ListApiSpecRevisions(context.Context, *ListApiSpecRevisionsRequest) (*ListApiSpecRevisionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListApiSpecRevisions not implemented") +} +func (UnimplementedRegistryServer) RollbackApiSpec(context.Context, *RollbackApiSpecRequest) (*ApiSpec, error) { + return nil, status.Errorf(codes.Unimplemented, "method RollbackApiSpec not implemented") +} +func (UnimplementedRegistryServer) DeleteApiSpecRevision(context.Context, *DeleteApiSpecRevisionRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApiSpecRevision not implemented") +} +func (UnimplementedRegistryServer) ListArtifacts(context.Context, *ListArtifactsRequest) (*ListArtifactsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListArtifacts not implemented") +} +func (UnimplementedRegistryServer) GetArtifact(context.Context, *GetArtifactRequest) (*Artifact, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtifact not implemented") +} +func (UnimplementedRegistryServer) GetArtifactContents(context.Context, *GetArtifactContentsRequest) (*httpbody.HttpBody, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArtifactContents not implemented") +} +func (UnimplementedRegistryServer) CreateArtifact(context.Context, *CreateArtifactRequest) (*Artifact, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArtifact not implemented") +} +func (UnimplementedRegistryServer) ReplaceArtifact(context.Context, *ReplaceArtifactRequest) (*Artifact, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReplaceArtifact not implemented") +} +func (UnimplementedRegistryServer) DeleteArtifact(context.Context, *DeleteArtifactRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteArtifact not implemented") +} +func (UnimplementedRegistryServer) mustEmbedUnimplementedRegistryServer() {} + +// UnsafeRegistryServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RegistryServer will +// result in compilation errors. +type UnsafeRegistryServer interface { + mustEmbedUnimplementedRegistryServer() +} + +func RegisterRegistryServer(s grpc.ServiceRegistrar, srv RegistryServer) { + s.RegisterService(&Registry_ServiceDesc, srv) +} + +func _Registry_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(emptypb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetStatus(ctx, req.(*emptypb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListProjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListProjectsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListProjects(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListProjects", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListProjects(ctx, req.(*ListProjectsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProjectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetProject(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetProject", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetProject(ctx, req.(*GetProjectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_CreateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateProjectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).CreateProject(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/CreateProject", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).CreateProject(ctx, req.(*CreateProjectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_UpdateProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateProjectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).UpdateProject(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/UpdateProject", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).UpdateProject(ctx, req.(*UpdateProjectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteProject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteProjectRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteProject(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteProject", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteProject(ctx, req.(*DeleteProjectRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListApis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListApisRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListApis(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListApis", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListApis(ctx, req.(*ListApisRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetApi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetApi(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetApi", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetApi(ctx, req.(*GetApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_CreateApi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).CreateApi(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/CreateApi", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).CreateApi(ctx, req.(*CreateApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_UpdateApi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).UpdateApi(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/UpdateApi", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).UpdateApi(ctx, req.(*UpdateApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteApi_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApiRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteApi(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteApi", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteApi(ctx, req.(*DeleteApiRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListApiVersions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListApiVersionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListApiVersions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListApiVersions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListApiVersions(ctx, req.(*ListApiVersionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetApiVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetApiVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetApiVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetApiVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetApiVersion(ctx, req.(*GetApiVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_CreateApiVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateApiVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).CreateApiVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/CreateApiVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).CreateApiVersion(ctx, req.(*CreateApiVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_UpdateApiVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApiVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).UpdateApiVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/UpdateApiVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).UpdateApiVersion(ctx, req.(*UpdateApiVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteApiVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApiVersionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteApiVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteApiVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteApiVersion(ctx, req.(*DeleteApiVersionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListApiSpecs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListApiSpecsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListApiSpecs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListApiSpecs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListApiSpecs(ctx, req.(*ListApiSpecsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetApiSpec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetApiSpecRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetApiSpec(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetApiSpec", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetApiSpec(ctx, req.(*GetApiSpecRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetApiSpecContents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetApiSpecContentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetApiSpecContents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetApiSpecContents", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetApiSpecContents(ctx, req.(*GetApiSpecContentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_CreateApiSpec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateApiSpecRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).CreateApiSpec(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/CreateApiSpec", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).CreateApiSpec(ctx, req.(*CreateApiSpecRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_UpdateApiSpec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApiSpecRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).UpdateApiSpec(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/UpdateApiSpec", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).UpdateApiSpec(ctx, req.(*UpdateApiSpecRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteApiSpec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApiSpecRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteApiSpec(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteApiSpec", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteApiSpec(ctx, req.(*DeleteApiSpecRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_TagApiSpecRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TagApiSpecRevisionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).TagApiSpecRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/TagApiSpecRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).TagApiSpecRevision(ctx, req.(*TagApiSpecRevisionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListApiSpecRevisions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListApiSpecRevisionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListApiSpecRevisions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListApiSpecRevisions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListApiSpecRevisions(ctx, req.(*ListApiSpecRevisionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_RollbackApiSpec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackApiSpecRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).RollbackApiSpec(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/RollbackApiSpec", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).RollbackApiSpec(ctx, req.(*RollbackApiSpecRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteApiSpecRevision_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApiSpecRevisionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteApiSpecRevision(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteApiSpecRevision", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteApiSpecRevision(ctx, req.(*DeleteApiSpecRevisionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ListArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListArtifactsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListArtifacts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ListArtifacts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListArtifacts(ctx, req.(*ListArtifactsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetArtifact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtifactRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetArtifact(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetArtifact", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetArtifact(ctx, req.(*GetArtifactRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_GetArtifactContents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArtifactContentsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).GetArtifactContents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/GetArtifactContents", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).GetArtifactContents(ctx, req.(*GetArtifactContentsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_CreateArtifact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateArtifactRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).CreateArtifact(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/CreateArtifact", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).CreateArtifact(ctx, req.(*CreateArtifactRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_ReplaceArtifact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReplaceArtifactRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ReplaceArtifact(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/ReplaceArtifact", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ReplaceArtifact(ctx, req.(*ReplaceArtifactRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Registry_DeleteArtifact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteArtifactRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).DeleteArtifact(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.apigee.registry.v1.Registry/DeleteArtifact", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).DeleteArtifact(ctx, req.(*DeleteArtifactRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// Registry_ServiceDesc is the grpc.ServiceDesc for Registry service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Registry_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.apigee.registry.v1.Registry", + HandlerType: (*RegistryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetStatus", + Handler: _Registry_GetStatus_Handler, + }, + { + MethodName: "ListProjects", + Handler: _Registry_ListProjects_Handler, + }, + { + MethodName: "GetProject", + Handler: _Registry_GetProject_Handler, + }, + { + MethodName: "CreateProject", + Handler: _Registry_CreateProject_Handler, + }, + { + MethodName: "UpdateProject", + Handler: _Registry_UpdateProject_Handler, + }, + { + MethodName: "DeleteProject", + Handler: _Registry_DeleteProject_Handler, + }, + { + MethodName: "ListApis", + Handler: _Registry_ListApis_Handler, + }, + { + MethodName: "GetApi", + Handler: _Registry_GetApi_Handler, + }, + { + MethodName: "CreateApi", + Handler: _Registry_CreateApi_Handler, + }, + { + MethodName: "UpdateApi", + Handler: _Registry_UpdateApi_Handler, + }, + { + MethodName: "DeleteApi", + Handler: _Registry_DeleteApi_Handler, + }, + { + MethodName: "ListApiVersions", + Handler: _Registry_ListApiVersions_Handler, + }, + { + MethodName: "GetApiVersion", + Handler: _Registry_GetApiVersion_Handler, + }, + { + MethodName: "CreateApiVersion", + Handler: _Registry_CreateApiVersion_Handler, + }, + { + MethodName: "UpdateApiVersion", + Handler: _Registry_UpdateApiVersion_Handler, + }, + { + MethodName: "DeleteApiVersion", + Handler: _Registry_DeleteApiVersion_Handler, + }, + { + MethodName: "ListApiSpecs", + Handler: _Registry_ListApiSpecs_Handler, + }, + { + MethodName: "GetApiSpec", + Handler: _Registry_GetApiSpec_Handler, + }, + { + MethodName: "GetApiSpecContents", + Handler: _Registry_GetApiSpecContents_Handler, + }, + { + MethodName: "CreateApiSpec", + Handler: _Registry_CreateApiSpec_Handler, + }, + { + MethodName: "UpdateApiSpec", + Handler: _Registry_UpdateApiSpec_Handler, + }, + { + MethodName: "DeleteApiSpec", + Handler: _Registry_DeleteApiSpec_Handler, + }, + { + MethodName: "TagApiSpecRevision", + Handler: _Registry_TagApiSpecRevision_Handler, + }, + { + MethodName: "ListApiSpecRevisions", + Handler: _Registry_ListApiSpecRevisions_Handler, + }, + { + MethodName: "RollbackApiSpec", + Handler: _Registry_RollbackApiSpec_Handler, + }, + { + MethodName: "DeleteApiSpecRevision", + Handler: _Registry_DeleteApiSpecRevision_Handler, + }, + { + MethodName: "ListArtifacts", + Handler: _Registry_ListArtifacts_Handler, + }, + { + MethodName: "GetArtifact", + Handler: _Registry_GetArtifact_Handler, + }, + { + MethodName: "GetArtifactContents", + Handler: _Registry_GetArtifactContents_Handler, + }, + { + MethodName: "CreateArtifact", + Handler: _Registry_CreateArtifact_Handler, + }, + { + MethodName: "ReplaceArtifact", + Handler: _Registry_ReplaceArtifact_Handler, + }, + { + MethodName: "DeleteArtifact", + Handler: _Registry_DeleteArtifact_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/apigee/registry/v1/registry_service.proto", +} diff --git a/rpc/registry_styleguide.pb.go b/rpc/registry_styleguide.pb.go new file mode 100644 index 000000000..e4dc42cb9 --- /dev/null +++ b/rpc/registry_styleguide.pb.go @@ -0,0 +1,708 @@ +// Copyright 2021 Google LLC +// +// 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.17.3 +// source: google/cloud/apigee/registry/applications/v1alpha1/registry_styleguide.proto + +package rpc + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + 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) +) + +// Possible severities for this guideline. +type Guideline_Status int32 + +const ( + // The default value, unused. + Guideline_STATUS_UNSPECIFIED Guideline_Status = 0 + // The guideline is being proposed, and shouldn't yet + // be enforced. + Guideline_PROPOSED Guideline_Status = 1 + // The guideline is active and should be enforced. + Guideline_ACTIVE Guideline_Status = 2 + // The guideline is deprecated as of the recent version, + // and shouldn't be enforced. + Guideline_DEPRECATED Guideline_Status = 3 + // The guideline has been disabled and shouldn't be enforced. + Guideline_DISABLED Guideline_Status = 4 +) + +// Enum value maps for Guideline_Status. +var ( + Guideline_Status_name = map[int32]string{ + 0: "STATUS_UNSPECIFIED", + 1: "PROPOSED", + 2: "ACTIVE", + 3: "DEPRECATED", + 4: "DISABLED", + } + Guideline_Status_value = map[string]int32{ + "STATUS_UNSPECIFIED": 0, + "PROPOSED": 1, + "ACTIVE": 2, + "DEPRECATED": 3, + "DISABLED": 4, + } +) + +func (x Guideline_Status) Enum() *Guideline_Status { + p := new(Guideline_Status) + *p = x + return p +} + +func (x Guideline_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Guideline_Status) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes[0].Descriptor() +} + +func (Guideline_Status) Type() protoreflect.EnumType { + return &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes[0] +} + +func (x Guideline_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Guideline_Status.Descriptor instead. +func (Guideline_Status) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{1, 0} +} + +// Possible severities for the violation of a rule. +type Rule_Severity int32 + +const ( + // The default value, unused. + Rule_SEVERITY_UNSPECIFIED Rule_Severity = 0 + // Violation of the rule is an error that must be fixed. + Rule_ERROR Rule_Severity = 1 + // Violation of the rule is a pattern that is wrong, + // and should be warned about. + Rule_WARNING Rule_Severity = 2 + // Violation of the rule is not necessarily a bad pattern + // or error, but information the user should be aware of. + Rule_INFO Rule_Severity = 3 + // Violation of the rule is a hint that is provided to + // the user to fix their spec's design. + Rule_HINT Rule_Severity = 4 +) + +// Enum value maps for Rule_Severity. +var ( + Rule_Severity_name = map[int32]string{ + 0: "SEVERITY_UNSPECIFIED", + 1: "ERROR", + 2: "WARNING", + 3: "INFO", + 4: "HINT", + } + Rule_Severity_value = map[string]int32{ + "SEVERITY_UNSPECIFIED": 0, + "ERROR": 1, + "WARNING": 2, + "INFO": 3, + "HINT": 4, + } +) + +func (x Rule_Severity) Enum() *Rule_Severity { + p := new(Rule_Severity) + *p = x + return p +} + +func (x Rule_Severity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Rule_Severity) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes[1].Descriptor() +} + +func (Rule_Severity) Type() protoreflect.EnumType { + return &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes[1] +} + +func (x Rule_Severity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Rule_Severity.Descriptor instead. +func (Rule_Severity) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{2, 0} +} + +// StyleGuide defines a set of guidelines and linters that govern the +// static analysis of API Specs with specified mime types. +type StyleGuide struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier of the style guide. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Human-meaningful name of the style guide. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // This field lists the MIME types of the specs that the style guide applies to. + // It is a list containing style (format) descriptors that are specified + // as a Media Type (https://en.wikipedia.org/wiki/Media_type). + // Possible values include "application/vnd.apigee.proto", + // "application/vnd.apigee.openapi", and "application/vnd.apigee.graphql", + // with possible suffixes representing compression types. These hypothetical + // names are defined in the vendor tree defined in RFC6838 + // (https://tools.ietf.org/html/rfc6838) and are not final. + MimeTypes []string `protobuf:"bytes,3,rep,name=mime_types,json=mimeTypes,proto3" json:"mime_types,omitempty"` + // A list of guidelines that are specified by this style guide. + Guidelines []*Guideline `protobuf:"bytes,4,rep,name=guidelines,proto3" json:"guidelines,omitempty"` + // A list of linters that this style guide uses. + Linters []*Linter `protobuf:"bytes,5,rep,name=linters,proto3" json:"linters,omitempty"` +} + +func (x *StyleGuide) Reset() { + *x = StyleGuide{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StyleGuide) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StyleGuide) ProtoMessage() {} + +func (x *StyleGuide) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_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 StyleGuide.ProtoReflect.Descriptor instead. +func (*StyleGuide) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{0} +} + +func (x *StyleGuide) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *StyleGuide) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *StyleGuide) GetMimeTypes() []string { + if x != nil { + return x.MimeTypes + } + return nil +} + +func (x *StyleGuide) GetGuidelines() []*Guideline { + if x != nil { + return x.Guidelines + } + return nil +} + +func (x *StyleGuide) GetLinters() []*Linter { + if x != nil { + return x.Linters + } + return nil +} + +// Guideline defines a set of rules that achieve a common design +// goal for API specs. +type Guideline struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier of the guideline. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Human-meaningful name of the guideline. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A detailed description of the guideline. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // A list of rules that this guideline specifies. + Rules []*Rule `protobuf:"bytes,4,rep,name=rules,proto3" json:"rules,omitempty"` + // Indicates the status of the guideline. + Status Guideline_Status `protobuf:"varint,5,opt,name=status,proto3,enum=google.cloud.apigee.registry.applications.v1alpha1.Guideline_Status" json:"status,omitempty"` +} + +func (x *Guideline) Reset() { + *x = Guideline{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Guideline) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Guideline) ProtoMessage() {} + +func (x *Guideline) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_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 Guideline.ProtoReflect.Descriptor instead. +func (*Guideline) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{1} +} + +func (x *Guideline) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Guideline) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Guideline) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Guideline) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil +} + +func (x *Guideline) GetStatus() Guideline_Status { + if x != nil { + return x.Status + } + return Guideline_STATUS_UNSPECIFIED +} + +// Rule is a specific design rule that can be applied to an API spec, +// and is enforced by a specified linter. +type Rule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier of the rule. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Human-meaningful name of the rule. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A detailed description of the rule. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Name of the linter that enforces this rule. + Linter string `protobuf:"bytes,4,opt,name=linter,proto3" json:"linter,omitempty"` + // Name of the rule on the linter that enforces it. + LinterRulename string `protobuf:"bytes,5,opt,name=linter_rulename,json=linterRulename,proto3" json:"linter_rulename,omitempty"` + // Severity of violating this rule. + Severity Rule_Severity `protobuf:"varint,6,opt,name=severity,proto3,enum=google.cloud.apigee.registry.applications.v1alpha1.Rule_Severity" json:"severity,omitempty"` + // A link to additional documentation relating to this rule. + DocUri string `protobuf:"bytes,7,opt,name=doc_uri,json=docUri,proto3" json:"doc_uri,omitempty"` +} + +func (x *Rule) Reset() { + *x = Rule{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Rule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rule) ProtoMessage() {} + +func (x *Rule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_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 Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{2} +} + +func (x *Rule) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Rule) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Rule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Rule) GetLinter() string { + if x != nil { + return x.Linter + } + return "" +} + +func (x *Rule) GetLinterRulename() string { + if x != nil { + return x.LinterRulename + } + return "" +} + +func (x *Rule) GetSeverity() Rule_Severity { + if x != nil { + return x.Severity + } + return Rule_SEVERITY_UNSPECIFIED +} + +func (x *Rule) GetDocUri() string { + if x != nil { + return x.DocUri + } + return "" +} + +// Linter contains the name and source code / documentation of specific +// linter that a style guide uses. +type Linter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the linter. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A uri to the linter source code or documentation. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *Linter) Reset() { + *x = Linter{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Linter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Linter) ProtoMessage() {} + +func (x *Linter) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_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 Linter.ProtoReflect.Descriptor instead. +func (*Linter) Descriptor() ([]byte, []int) { + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP(), []int{3} +} + +func (x *Linter) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Linter) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +var File_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto protoreflect.FileDescriptor + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDesc = []byte{ + 0x0a, 0x4c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x74, + 0x79, 0x6c, 0x65, 0x67, 0x75, 0x69, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x32, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0xa2, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x47, 0x75, 0x69, + 0x64, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x69, + 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x0a, 0x67, 0x75, 0x69, 0x64, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x12, 0x54, 0x0a, 0x07, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x07, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x22, 0xf2, 0x02, 0x0a, 0x09, 0x47, 0x75, 0x69, + 0x64, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x64, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x58, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, + 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, + 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x22, 0xf5, 0x02, + 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, + 0x0f, 0x6c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6c, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x52, 0x75, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x6f, + 0x63, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x63, + 0x55, 0x72, 0x69, 0x22, 0x50, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, + 0x49, 0x4e, 0x54, 0x10, 0x04, 0x22, 0x38, 0x0a, 0x06, 0x4c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x42, + 0x77, 0x0a, 0x36, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x17, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x67, 0x65, 0x65, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2f, 0x72, 0x70, 0x63, 0x3b, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescOnce sync.Once + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescData = file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDesc +) + +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescGZIP() []byte { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescOnce.Do(func() { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescData) + }) + return file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDescData +} + +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_goTypes = []interface{}{ + (Guideline_Status)(0), // 0: google.cloud.apigee.registry.applications.v1alpha1.Guideline.Status + (Rule_Severity)(0), // 1: google.cloud.apigee.registry.applications.v1alpha1.Rule.Severity + (*StyleGuide)(nil), // 2: google.cloud.apigee.registry.applications.v1alpha1.StyleGuide + (*Guideline)(nil), // 3: google.cloud.apigee.registry.applications.v1alpha1.Guideline + (*Rule)(nil), // 4: google.cloud.apigee.registry.applications.v1alpha1.Rule + (*Linter)(nil), // 5: google.cloud.apigee.registry.applications.v1alpha1.Linter +} +var file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_depIdxs = []int32{ + 3, // 0: google.cloud.apigee.registry.applications.v1alpha1.StyleGuide.guidelines:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Guideline + 5, // 1: google.cloud.apigee.registry.applications.v1alpha1.StyleGuide.linters:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Linter + 4, // 2: google.cloud.apigee.registry.applications.v1alpha1.Guideline.rules:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Rule + 0, // 3: google.cloud.apigee.registry.applications.v1alpha1.Guideline.status:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Guideline.Status + 1, // 4: google.cloud.apigee.registry.applications.v1alpha1.Rule.severity:type_name -> google.cloud.apigee.registry.applications.v1alpha1.Rule.Severity + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_init() } +func file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_init() { + if File_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StyleGuide); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Guideline); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Rule); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Linter); 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_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDesc, + NumEnums: 2, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_goTypes, + DependencyIndexes: file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_depIdxs, + EnumInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_enumTypes, + MessageInfos: file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_msgTypes, + }.Build() + File_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto = out.File + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_rawDesc = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_goTypes = nil + file_google_cloud_apigee_registry_applications_v1alpha1_registry_styleguide_proto_depIdxs = nil +} diff --git a/third_party/.gitignore b/third_party/.gitignore index d3f14e7d5..e2e04cbe8 100644 --- a/third_party/.gitignore +++ b/third_party/.gitignore @@ -1,2 +1 @@ api-common-protos -gnostic diff --git a/tools/COMPILE-PROTOS.sh b/tools/COMPILE-PROTOS.sh deleted file mode 100755 index 947295bc8..000000000 --- a/tools/COMPILE-PROTOS.sh +++ /dev/null @@ -1,120 +0,0 @@ -#!/bin/bash -# -# Copyright 2020 Google LLC. All Rights Reserved. -# -# 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. -# - -# -# Compile .proto files into the files needed to build the registry server and -# command-line tools. -# - -echo "Updating tool dependencies." -go install google.golang.org/protobuf/cmd/protoc-gen-go -go install google.golang.org/grpc/cmd/protoc-gen-go-grpc -go install github.com/googleapis/gapic-generator-go/cmd/protoc-gen-go_gapic -go install github.com/googleapis/gapic-generator-go/cmd/protoc-gen-go_cli -go install github.com/googleapis/api-linter/cmd/api-linter - -# add installed dependencies to PATH in case they aren't already -export PATH=$PATH:$(go env GOBIN):$(go env GOPATH)/bin - -echo "Clearing any previously-generated files." -rm -rf rpc/*.go gapic/*.go cmd/apg/*.go -mkdir -p rpc gapic cmd/apg - -ANNOTATIONS="third_party/api-common-protos" - -PROTOS=( \ - google/cloud/apigee/registry/applications/v1alpha1/registry_conformance_report.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_styleguide.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_index.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_lint.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_references.proto \ - google/cloud/apigee/registry/applications/v1alpha1/diff_analytics.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_manifest.proto \ - google/cloud/apigee/registry/applications/v1alpha1/registry_receipt.proto \ - google/cloud/apigee/registry/internal/v1/registry_map.proto \ - google/cloud/apigee/registry/v1/registry_models.proto \ - google/cloud/apigee/registry/v1/registry_notifications.proto \ - google/cloud/apigee/registry/v1/registry_service.proto \ -) - -echo "Running the API linter." -for p in ${PROTOS[@]}; do - echo "api-linter $p" - api-linter -I ${ANNOTATIONS} $p -done - -echo "Generating proto support code." -protoc --proto_path=. --proto_path=${ANNOTATIONS} \ - ${PROTOS[*]} \ - --go_out=rpc \ - --go-grpc_out=rpc - -# fix the location of proto output files -mv rpc/github.com/apigee/registry/rpc/* rpc -rm -rf rpc/github.com - -echo "Generating GAPIC library." -protoc --proto_path=. --proto_path=${ANNOTATIONS} \ - ${PROTOS[*]} \ - --go_gapic_out gapic \ - --go_gapic_opt="go-gapic-package=github.com/apigee/registry/gapic;gapic" \ - --go_gapic_opt="grpc-service-config=gapic/grpc_service_config.json" - -# fix the location of gapic output files -mv gapic/github.com/apigee/registry/gapic/* gapic -rm -rf gapic/github.com - -# add an accessor for the underlying gRPC client of the GAPIC client -cat >> gapic/registry_client.go <> gapic/registry_client.go <