123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556 |
- // 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.
- syntax = "proto3";
- package google.cloud.privatecatalog.v1beta1;
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/api/resource.proto";
- import "google/longrunning/operations.proto";
- import "google/protobuf/struct.proto";
- import "google/protobuf/timestamp.proto";
- option csharp_namespace = "Google.Cloud.PrivateCatalog.V1Beta1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/privatecatalog/v1beta1;privatecatalog";
- option java_multiple_files = true;
- option java_outer_classname = "PrivateCatalogProto";
- option java_package = "com.google.cloud.privatecatalog.v1beta1";
- option php_namespace = "Google\\Cloud\\PrivateCatalog\\V1beta1";
- option ruby_package = "Google::Cloud::PrivateCatalog::V1beta1";
- // `PrivateCatalog` allows catalog consumers to retrieve `Catalog`, `Product`
- // and `Version` resources under a target resource context.
- //
- // `Catalog` is computed based on the [Association][]s linked to the target
- // resource and its ancestors. Each association's
- // [google.cloud.privatecatalogproducer.v1beta.Catalog][] is transformed into a
- // `Catalog`. If multiple associations have the same parent
- // [google.cloud.privatecatalogproducer.v1beta.Catalog][], they are
- // de-duplicated into one `Catalog`. Users must have
- // `cloudprivatecatalog.catalogTargets.get` IAM permission on the resource
- // context in order to access catalogs. `Catalog` contains the resource name and
- // a subset of data of the original
- // [google.cloud.privatecatalogproducer.v1beta.Catalog][].
- //
- // `Product` is child resource of the catalog. A `Product` contains the resource
- // name and a subset of the data of the original
- // [google.cloud.privatecatalogproducer.v1beta.Product][].
- //
- // `Version` is child resource of the product. A `Version` contains the resource
- // name and a subset of the data of the original
- // [google.cloud.privatecatalogproducer.v1beta.Version][].
- service PrivateCatalog {
- option (google.api.default_host) = "cloudprivatecatalog.googleapis.com";
- option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
- // Search [Catalog][google.cloud.privatecatalog.v1beta1.Catalog] resources that consumers have access to, within the
- // scope of the consumer cloud resource hierarchy context.
- rpc SearchCatalogs(SearchCatalogsRequest) returns (SearchCatalogsResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{resource=projects/*}/catalogs:search"
- additional_bindings {
- get: "/v1beta1/{resource=organizations/*}/catalogs:search"
- }
- additional_bindings {
- get: "/v1beta1/{resource=folders/*}/catalogs:search"
- }
- };
- }
- // Search [Product][google.cloud.privatecatalog.v1beta1.Product] resources that consumers have access to, within the
- // scope of the consumer cloud resource hierarchy context.
- rpc SearchProducts(SearchProductsRequest) returns (SearchProductsResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{resource=projects/*}/products:search"
- additional_bindings {
- get: "/v1beta1/{resource=organizations/*}/products:search"
- }
- additional_bindings {
- get: "/v1beta1/{resource=folders/*}/products:search"
- }
- };
- }
- // Search [Version][google.cloud.privatecatalog.v1beta1.Version] resources that consumers have access to, within the
- // scope of the consumer cloud resource hierarchy context.
- rpc SearchVersions(SearchVersionsRequest) returns (SearchVersionsResponse) {
- option (google.api.http) = {
- get: "/v1beta1/{resource=projects/*}/versions:search"
- additional_bindings {
- get: "/v1beta1/{resource=organizations/*}/versions:search"
- }
- additional_bindings {
- get: "/v1beta1/{resource=folders/*}/versions:search"
- }
- };
- }
- }
- // Request message for [PrivateCatalog.SearchCatalogs][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchCatalogs].
- message SearchCatalogsRequest {
- // Required. The name of the resource context. It can be in following formats:
- //
- // * `projects/{project}`
- // * `folders/{folder}`
- // * `organizations/{organization}`
- string resource = 1 [(google.api.field_behavior) = REQUIRED];
- // The query to filter the catalogs. The supported queries are:
- //
- // * Get a single catalog: `name=catalogs/{catalog}`
- string query = 2;
- // The maximum number of entries that are requested.
- int32 page_size = 3;
- // A pagination token returned from a previous call to SearchCatalogs that
- // indicates where this listing should continue from.
- string page_token = 4;
- }
- // Response message for [PrivateCatalog.SearchCatalogs][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchCatalogs].
- message SearchCatalogsResponse {
- // The `Catalog`s computed from the resource context.
- repeated Catalog catalogs = 1;
- // A pagination token returned from a previous call to SearchCatalogs that
- // indicates from where listing should continue.
- string next_page_token = 2;
- }
- // Request message for [PrivateCatalog.SearchProducts][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchProducts].
- message SearchProductsRequest {
- // Required. The name of the resource context. See [SearchCatalogsRequest.resource][google.cloud.privatecatalog.v1beta1.SearchCatalogsRequest.resource]
- // for details.
- string resource = 1 [(google.api.field_behavior) = REQUIRED];
- // The query to filter the products.
- //
- // The supported queries are:
- // * List products of all catalogs: empty
- // * List products under a catalog: `parent=catalogs/{catalog}`
- // * Get a product by name:
- // `name=catalogs/{catalog}/products/{product}`
- string query = 2;
- // The maximum number of entries that are requested.
- int32 page_size = 3;
- // A pagination token returned from a previous call to SearchProducts that
- // indicates where this listing should continue from.
- string page_token = 4;
- }
- // Response message for [PrivateCatalog.SearchProducts][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchProducts].
- message SearchProductsResponse {
- // The `Product` resources computed from the resource context.
- repeated Product products = 1;
- // A pagination token returned from a previous call to SearchProducts that
- // indicates from where listing should continue.
- string next_page_token = 2;
- }
- // Request message for [PrivateCatalog.SearchVersions][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchVersions].
- message SearchVersionsRequest {
- // Required. The name of the resource context. See [SearchCatalogsRequest.resource][google.cloud.privatecatalog.v1beta1.SearchCatalogsRequest.resource]
- // for details.
- string resource = 1 [(google.api.field_behavior) = REQUIRED];
- // Required. The query to filter the versions.
- //
- // The supported queries are:
- // * List versions under a product:
- // `parent=catalogs/{catalog}/products/{product}`
- // * Get a version by name:
- // `name=catalogs/{catalog}/products/{product}/versions/{version}`
- string query = 2 [(google.api.field_behavior) = REQUIRED];
- // The maximum number of entries that are requested.
- int32 page_size = 3;
- // A pagination token returned from a previous call to SearchVersions
- // that indicates where this listing should continue from.
- string page_token = 4;
- }
- // Response message for [PrivateCatalog.SearchVersions][google.cloud.privatecatalog.v1beta1.PrivateCatalog.SearchVersions].
- message SearchVersionsResponse {
- // The `Version` resources computed from the resource context.
- repeated Version versions = 1;
- // A pagination token returned from a previous call to SearchVersions that
- // indicates from where the listing should continue.
- string next_page_token = 2;
- }
- // The readonly representation of a catalog computed with a given resource
- // context.
- message Catalog {
- option (google.api.resource) = {
- type: "cloudprivatecatalog.googleapis.com/Catalog"
- pattern: "catalogs/{catalog}"
- };
- // Output only. The resource name of the target catalog, in the format of
- // `catalogs/{catalog}'.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The descriptive name of the catalog as it appears in UIs.
- string display_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The description of the catalog.
- string description = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the catalog was created.
- google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the catalog was last updated.
- google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // The readonly representation of a product computed with a given resource
- // context.
- message Product {
- option (google.api.resource) = {
- type: "cloudprivatecatalog.googleapis.com/Product"
- pattern: "products/{product}"
- };
- // Output only. The resource name of the target product, in the format of
- // `products/[a-z][-a-z0-9]*[a-z0-9]'.
- //
- // A unique identifier for the product under a catalog.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The type of the product asset. It can be one of the following values:
- //
- // * `google.deploymentmanager.Template`
- // * `google.cloudprivatecatalog.ListingOnly`
- // * `google.cloudprivatecatalog.Terraform`
- string asset_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Required. Output only. The display metadata to describe the product. The JSON schema of the
- // metadata differs by [Product.asset_type][google.cloud.privatecatalog.v1beta1.Product.asset_type].
- // When the type is `google.deploymentmanager.Template`, the schema is as
- // follows:
- //
- // ```
- // "$schema": http://json-schema.org/draft-04/schema#
- // type: object
- // properties:
- // name:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // tagline:
- // type: string
- // minLength: 1
- // maxLength: 100
- // support_info:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // creator:
- // type: string
- // minLength: 1
- // maxLength: 100
- // documentations:
- // type: array
- // items:
- // type: object
- // properties:
- // url:
- // type: string
- // pattern:
- // "^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
- // title:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // required:
- // - name
- // - description
- // additionalProperties: false
- //
- // ```
- //
- // When the asset type is `google.cloudprivatecatalog.ListingOnly`, the schema
- // is as follows:
- //
- // ```
- // "$schema": http://json-schema.org/draft-04/schema#
- // type: object
- // properties:
- // name:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // tagline:
- // type: string
- // minLength: 1
- // maxLength: 100
- // support_info:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // creator:
- // type: string
- // minLength: 1
- // maxLength: 100
- // documentations:
- // type: array
- // items:
- // type: object
- // properties:
- // url:
- // type: string
- // pattern:
- // "^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
- // title:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // signup_url:
- // type: string
- // pattern:
- // "^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
- // required:
- // - name
- // - description
- // - signup_url
- // additionalProperties: false
- //
- // ```
- //
- // When the asset type is `google.cloudprivatecatalog.Terraform`, the schema
- // is as follows:
- //
- // ```
- // "$schema": http://json-schema.org/draft-04/schema#
- // type: object
- // properties:
- // name:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // tagline:
- // type: string
- // minLength: 1
- // maxLength: 100
- // support_info:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // creator:
- // type: string
- // minLength: 1
- // maxLength: 100
- // documentations:
- // type: array
- // items:
- // type: object
- // properties:
- // url:
- // type: string
- // pattern:
- // "^(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"
- // title:
- // type: string
- // minLength: 1
- // maxLength: 64
- // description:
- // type: string
- // minLength: 1
- // maxLength: 2048
- // required:
- // - name
- // - description
- // additionalProperties: true
- google.protobuf.Struct display_metadata = 3 [
- (google.api.field_behavior) = REQUIRED,
- (google.api.field_behavior) = OUTPUT_ONLY
- ];
- // Output only. The icon URI of the product.
- string icon_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. A collection of assets referred by a product.
- // This field is set for Terraform Products only.
- repeated AssetReference asset_references = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the product was created.
- google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the product was last updated.
- google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Defines the reference of an asset belonging to a product.
- message AssetReference {
- // Possible validation steates of an asset reference.
- enum AssetValidationState {
- // Unknown state.
- ASSET_VALIDATION_STATE_UNSPECIFIED = 0;
- // The validation is still in process.
- PENDING = 1;
- // The validation is done and the asset reference is valid.
- VALID = 2;
- // The validation is done and the asset reference is invalid.
- INVALID = 3;
- }
- // Output only. A unique identifier among asset references in a product.
- string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The human-readable description of the referenced asset. Maximum 256
- // characters in length.
- string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The definition of input parameters to hydrate the asset template.
- Inputs inputs = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The current state of the asset reference.
- AssetValidationState validation_status = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The validation process metadata.
- google.longrunning.Operation validation_operation = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The destination of the asset.
- oneof source {
- // Output only. The asset resource name if an asset is hosted by Private Catalog.
- string asset = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The cloud storage object path.
- string gcs_path = 11 [
- deprecated = true,
- (google.api.field_behavior) = OUTPUT_ONLY
- ];
- // Output only. The git source.
- GitSource git_source = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Output only. The cloud storage source.
- GcsSource gcs_source = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The creation timestamp of the asset reference.
- google.protobuf.Timestamp create_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The last update timestamp of the asset reference.
- google.protobuf.Timestamp update_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The version of the source used for this asset reference.
- string version = 14 [deprecated = true];
- }
- // Defines definition of input parameters of asset templates.
- message Inputs {
- // Output only. The JSON schema defining the inputs and their formats.
- google.protobuf.Struct parameters = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Defines how to access Cloud Storage source.
- message GcsSource {
- // Output only. the cloud storage object path.
- string gcs_path = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. Generation of the object, which is set when the content of an object starts
- // being written.
- int64 generation = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the object metadata was last changed.
- google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // Defines how to access a Git Source.
- message GitSource {
- // Location of the Git repo to build.
- string repo = 1;
- // Directory, relative to the source root, in which to run the build.
- //
- // This must be a relative path. If a step's `dir` is specified and is an
- // absolute path, this value is ignored for that step's execution.
- string dir = 2;
- // The revision to fetch from the Git repository such as a branch, a tag, a
- // commit SHA, or any Git ref.
- oneof ref {
- // The revision commit to use.
- string commit = 3;
- // The revision branch to use.
- string branch = 4;
- // The revision tag to use.
- string tag = 5;
- }
- }
- // The consumer representation of a version which is a child resource under a
- // `Product` with asset data.
- message Version {
- option (google.api.resource) = {
- type: "cloudprivatecatalog.googleapis.com/Version"
- pattern: "catalogs/{catalog}/products/{product}/versions/{version}"
- };
- // Output only. The resource name of the version, in the format
- // `catalogs/{catalog}/products/{product}/versions/[a-z][-a-z0-9]*[a-z0-9]'.
- //
- // A unique identifier for the version under a product.
- string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The user-supplied description of the version. Maximum of 256
- // characters.
- string description = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The asset which has been validated and is ready to be
- // provisioned. See
- // [google.cloud.privatecatalogproducer.v1beta.Version.asset][] for details.
- google.protobuf.Struct asset = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the version was created.
- google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The time when the version was last updated.
- google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
|