googleapis/google/cloud/parametermanager/v1/service.proto
2025-06-20 03:10:44 -07:00

612 lines
23 KiB
Protocol Buffer

// Copyright 2025 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.parametermanager.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/field_info.proto";
import "google/api/resource.proto";
import "google/iam/v1/resource_policy_member.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.ParameterManager.V1";
option go_package = "cloud.google.com/go/parametermanager/apiv1/parametermanagerpb;parametermanagerpb";
option java_multiple_files = true;
option java_outer_classname = "V1mainProto";
option java_package = "com.google.cloud.parametermanager.v1";
option php_namespace = "Google\\Cloud\\ParameterManager\\V1";
option ruby_package = "Google::Cloud::ParameterManager::V1";
option (google.api.resource_definition) = {
type: "cloudkms.googleapis.com/CryptoKey"
pattern: "projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"
};
// Service describing handlers for resources
service ParameterManager {
option (google.api.default_host) = "parametermanager.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists Parameters in a given project and location.
rpc ListParameters(ListParametersRequest) returns (ListParametersResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*}/parameters"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single Parameter.
rpc GetParameter(GetParameterRequest) returns (Parameter) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/parameters/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a new Parameter in a given project and location.
rpc CreateParameter(CreateParameterRequest) returns (Parameter) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*}/parameters"
body: "parameter"
};
option (google.api.method_signature) = "parent,parameter,parameter_id";
}
// Updates a single Parameter.
rpc UpdateParameter(UpdateParameterRequest) returns (Parameter) {
option (google.api.http) = {
patch: "/v1/{parameter.name=projects/*/locations/*/parameters/*}"
body: "parameter"
};
option (google.api.method_signature) = "parameter,update_mask";
}
// Deletes a single Parameter.
rpc DeleteParameter(DeleteParameterRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/parameters/*}"
};
option (google.api.method_signature) = "name";
}
// Lists ParameterVersions in a given project, location, and parameter.
rpc ListParameterVersions(ListParameterVersionsRequest)
returns (ListParameterVersionsResponse) {
option (google.api.http) = {
get: "/v1/{parent=projects/*/locations/*/parameters/*}/versions"
};
option (google.api.method_signature) = "parent";
}
// Gets details of a single ParameterVersion.
rpc GetParameterVersion(GetParameterVersionRequest)
returns (ParameterVersion) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/parameters/*/versions/*}"
};
option (google.api.method_signature) = "name";
}
// Gets rendered version of a ParameterVersion.
rpc RenderParameterVersion(RenderParameterVersionRequest)
returns (RenderParameterVersionResponse) {
option (google.api.http) = {
get: "/v1/{name=projects/*/locations/*/parameters/*/versions/*}:render"
};
option (google.api.method_signature) = "name";
}
// Creates a new ParameterVersion in a given project, location, and parameter.
rpc CreateParameterVersion(CreateParameterVersionRequest)
returns (ParameterVersion) {
option (google.api.http) = {
post: "/v1/{parent=projects/*/locations/*/parameters/*}/versions"
body: "parameter_version"
};
option (google.api.method_signature) =
"parent,parameter_version,parameter_version_id";
}
// Updates a single ParameterVersion.
rpc UpdateParameterVersion(UpdateParameterVersionRequest)
returns (ParameterVersion) {
option (google.api.http) = {
patch: "/v1/{parameter_version.name=projects/*/locations/*/parameters/*/versions/*}"
body: "parameter_version"
};
option (google.api.method_signature) = "parameter_version,update_mask";
}
// Deletes a single ParameterVersion.
rpc DeleteParameterVersion(DeleteParameterVersionRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=projects/*/locations/*/parameters/*/versions/*}"
};
option (google.api.method_signature) = "name";
}
}
// Option to specify the format of a Parameter resource (UNFORMATTED / YAML /
// JSON). This option is user specified at the time of creation of the resource
// and is immutable.
enum ParameterFormat {
// The default / unset value.
// The API will default to the UNFORMATTED format.
PARAMETER_FORMAT_UNSPECIFIED = 0;
// Unformatted.
UNFORMATTED = 1;
// YAML format.
YAML = 2;
// JSON format.
JSON = 3;
}
// Option for requesting only metadata, or user provided payload
// of a ParameterVersion resource.
enum View {
// The default / unset value.
// The API will default to the FULL view..
VIEW_UNSPECIFIED = 0;
// Include only the metadata for the resource.
BASIC = 1;
// Include metadata & other relevant payload data as well.
// This is the default view.
FULL = 2;
}
// Message describing Parameter resource
message Parameter {
option (google.api.resource) = {
type: "parametermanager.googleapis.com/Parameter"
pattern: "projects/{project}/locations/{location}/parameters/{parameter}"
plural: "parameters"
singular: "parameter"
};
// Identifier. [Output only] The resource name of the Parameter in the format
// `projects/*/locations/*/parameters/*`.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Output only. [Output only] Create time stamp
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Update time stamp
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Labels as key value pairs
map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Specifies the format of a Parameter.
ParameterFormat format = 5 [(google.api.field_behavior) = OPTIONAL];
// Output only. [Output-only] policy member strings of a Google Cloud
// resource.
google.iam.v1.ResourcePolicyMember policy_member = 6
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Customer managed encryption key (CMEK) to use for encrypting the
// Parameter Versions. If not set, the default Google-managed encryption key
// will be used. Cloud KMS CryptoKeys must reside in the same location as the
// Parameter. The expected format is
// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
optional string kms_key = 7 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "cloudkms.googleapis.com/CryptoKey"
}
];
}
// Message for requesting list of Parameters
message ListParametersRequest {
// Required. Parent value for ListParametersRequest in the format
// `projects/*/locations/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "parametermanager.googleapis.com/Parameter"
}
];
// Optional. Requested page size. Server may return fewer items than
// requested. If unspecified, server will pick an appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results the server should return.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filtering results
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Hint for how to order the results
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for response to listing Parameters
message ListParametersResponse {
// The list of Parameters
repeated Parameter parameters = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
// Unordered list. Locations that could not be reached.
repeated string unreachable = 3
[(google.api.field_behavior) = UNORDERED_LIST];
}
// Message for getting a Parameter
message GetParameterRequest {
// Required. Name of the resource in the format
// `projects/*/locations/*/parameters/*`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/Parameter"
}
];
}
// Message for creating a Parameter
message CreateParameterRequest {
// Required. Value for parent in the format
// `projects/*/locations/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "parametermanager.googleapis.com/Parameter"
}
];
// Required. Id of the Parameter resource
string parameter_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The Parameter resource being created
Parameter parameter = 3 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}
// Message for updating a Parameter
message UpdateParameterRequest {
// Optional. Field mask is used to specify the fields to be overwritten in the
// Parameter resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A mutable field will be overwritten if it is in the
// mask. If the user does not provide a mask then all mutable fields present
// in the request will be overwritten.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The Parameter resource being updated
Parameter parameter = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}
// Message for deleting a Parameter
message DeleteParameterRequest {
// Required. Name of the resource in the format
// `projects/*/locations/*/parameters/*`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/Parameter"
}
];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes after the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}
// Message describing ParameterVersion resource
message ParameterVersion {
option (google.api.resource) = {
type: "parametermanager.googleapis.com/ParameterVersion"
pattern: "projects/{project}/locations/{location}/parameters/{parameter}/versions/{parameter_version}"
plural: "parameterVersions"
singular: "parameterVersion"
};
// Identifier. [Output only] The resource name of the ParameterVersion in the
// format `projects/*/locations/*/parameters/*/versions/*`.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Output only. [Output only] Create time stamp
google.protobuf.Timestamp create_time = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. [Output only] Update time stamp
google.protobuf.Timestamp update_time = 3
[(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Disabled boolean to determine if a ParameterVersion acts as a
// metadata only resource (payload is never returned if disabled is true). If
// true any calls will always default to BASIC view even if the user
// explicitly passes FULL view as part of the request. A render call on a
// disabled resource fails with an error. Default value is False.
bool disabled = 4 [(google.api.field_behavior) = OPTIONAL];
// Required. Immutable. Payload content of a ParameterVersion resource. This
// is only returned when the request provides the View value of FULL (default
// for GET request).
ParameterVersionPayload payload = 5 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// Optional. Output only. [Output only] The resource name of the KMS key
// version used to encrypt the ParameterVersion payload. This field is
// populated only if the Parameter resource has customer managed encryption
// key (CMEK) configured.
optional string kms_key_version = 6 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.field_behavior) = OPTIONAL
];
}
// Message for storing a ParameterVersion resource's payload data
message ParameterVersionPayload {
// Required. bytes data for storing payload.
bytes data = 1 [(google.api.field_behavior) = REQUIRED];
}
// Message for requesting list of ParameterVersions
message ListParameterVersionsRequest {
// Required. Parent value for ListParameterVersionsRequest in the format
// `projects/*/locations/*/parameters/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "parametermanager.googleapis.com/ParameterVersion"
}
];
// Optional. Requested page size. Server may return fewer items than
// requested. If unspecified, server will pick an appropriate default.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A token identifying a page of results the server should return.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. Filtering results
string filter = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Hint for how to order the results
string order_by = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Message for response to listing ParameterVersions
message ListParameterVersionsResponse {
// The list of ParameterVersions
repeated ParameterVersion parameter_versions = 1;
// A token identifying a page of results the server should return.
string next_page_token = 2;
// Unordered list. Locations that could not be reached.
repeated string unreachable = 3
[(google.api.field_behavior) = UNORDERED_LIST];
}
// Message for getting a ParameterVersion
message GetParameterVersionRequest {
// Required. Name of the resource in the format
// `projects/*/locations/*/parameters/*/versions/*`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/ParameterVersion"
}
];
// Optional. View of the ParameterVersion.
// In the default FULL view, all metadata & payload associated with the
// ParameterVersion will be returned.
View view = 6 [(google.api.field_behavior) = OPTIONAL];
}
// Message for getting a ParameterVersionRender
message RenderParameterVersionRequest {
// Required. Name of the resource
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/ParameterVersion"
}
];
}
// Message describing RenderParameterVersionResponse resource
message RenderParameterVersionResponse {
// Output only. Resource identifier of a ParameterVersion in the format
// `projects/*/locations/*/parameters/*/versions/*`.
string parameter_version = 1 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/ParameterVersion"
}
];
// Payload content of a ParameterVersion resource.
ParameterVersionPayload payload = 2;
// Output only. Server generated rendered version of the user provided payload
// data (ParameterVersionPayload) which has substitutions of all (if any)
// references to a SecretManager SecretVersion resources. This substitution
// only works for a Parameter which is in JSON or YAML format.
bytes rendered_payload = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Message for creating a ParameterVersion
message CreateParameterVersionRequest {
// Required. Value for parent in the format
// `projects/*/locations/*/parameters/*`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "parametermanager.googleapis.com/ParameterVersion"
}
];
// Required. Id of the ParameterVersion resource
string parameter_version_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ParameterVersion resource being created
ParameterVersion parameter_version = 3
[(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 4 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}
// Message for updating a ParameterVersion
message UpdateParameterVersionRequest {
// Optional. Field mask is used to specify the fields to be overwritten in the
// ParameterVersion resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A mutable field will be overwritten if it is in the
// mask. If the user does not provide a mask then all mutable fields present
// in the request will be overwritten.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The ParameterVersion resource being updated
ParameterVersion parameter_version = 2
[(google.api.field_behavior) = REQUIRED];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes since the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 3 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}
// Message for deleting a ParameterVersion
message DeleteParameterVersionRequest {
// Required. Name of the resource in the format
// `projects/*/locations/*/parameters/*/versions/*`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "parametermanager.googleapis.com/ParameterVersion"
}
];
// Optional. An optional request ID to identify requests. Specify a unique
// request ID so that if you must retry your request, the server will know to
// ignore the request if it has already been completed. The server will
// guarantee that for at least 60 minutes after the first request.
//
// For example, consider a situation where you make an initial request and the
// request times out. If you make the request again with the same request
// ID, the server can check if original operation with the same request ID
// was received, and if so, will ignore the second request. This prevents
// clients from accidentally creating duplicate commitments.
//
// The request ID must be a valid UUID with the exception that zero UUID is
// not supported (00000000-0000-0000-0000-000000000000).
string request_id = 2 [
(google.api.field_info).format = UUID4,
(google.api.field_behavior) = OPTIONAL
];
}