googleapis/google/cloud/cloudsecuritycompliance/v1/config.proto
Google APIs 0654a03c3f feat: add Audit API surface
docs: Changes to few fields are also made

PiperOrigin-RevId: 824893251
2025-10-28 00:51:33 -07:00

399 lines
15 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.cloudsecuritycompliance.v1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/cloudsecuritycompliance/v1/common.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/field_mask.proto";
option csharp_namespace = "Google.Cloud.CloudSecurityCompliance.V1";
option go_package = "cloud.google.com/go/cloudsecuritycompliance/apiv1/cloudsecuritycompliancepb;cloudsecuritycompliancepb";
option java_multiple_files = true;
option java_outer_classname = "ConfigProto";
option java_package = "com.google.cloud.cloudsecuritycompliance.v1";
option php_namespace = "Google\\Cloud\\CloudSecurityCompliance\\V1";
option ruby_package = "Google::Cloud::CloudSecurityCompliance::V1";
// Config Service manages compliance frameworks, cloud controls, and their
// configurations.
service Config {
option (google.api.default_host) = "cloudsecuritycompliance.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/cloud-platform";
// Lists the frameworks (both built-in and custom) that are available within
// the parent resource. The latest major version of each framework is
// returned.
// This method supports pagination.
rpc ListFrameworks(ListFrameworksRequest) returns (ListFrameworksResponse) {
option (google.api.http) = {
get: "/v1/{parent=organizations/*/locations/*}/frameworks"
};
option (google.api.method_signature) = "parent";
}
// Gets details about a framework.
// This method retrieves the latest major version of the framework.
//
// To retrieve a specific major version, include `major_revision_id` in
// the request.
rpc GetFramework(GetFrameworkRequest) returns (Framework) {
option (google.api.http) = {
get: "/v1/{name=organizations/*/locations/*/frameworks/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a custom framework in a given parent resource.
// You can't create built-in frameworks because those are managed by
// Google.
rpc CreateFramework(CreateFrameworkRequest) returns (Framework) {
option (google.api.http) = {
post: "/v1/{parent=organizations/*/locations/*}/frameworks"
body: "framework"
};
option (google.api.method_signature) = "parent,framework,framework_id";
}
// Updates a custom framework.
// This method allows for partial updates of a framework. Use the
// `update_mask` to specify which fields to update. Consider the following:
//
// - If you provide an `update_mask`, only the fields that are specified
// in the mask are updated.
// - If you don't provide an `update_mask`, all the fields that are present
// in the request's `framework` body are used to overwrite the existing
// resource.
//
// You can only update frameworks with the `CUSTOM` type.
// A successful update creates a new version of the framework.
rpc UpdateFramework(UpdateFrameworkRequest) returns (Framework) {
option (google.api.http) = {
patch: "/v1/{framework.name=organizations/*/locations/*/frameworks/*}"
body: "framework"
};
option (google.api.method_signature) = "framework,update_mask";
}
// Deletes a custom framework, including all its major and
// minor revisions. Consider the following:
//
// - You can't delete built-in frameworks. You can only delete frameworks
// with type `CUSTOM`.
// - You can't delete frameworks that are deployed to a resource.
// - You can't restore a deleted framework. This action is permanent.
rpc DeleteFramework(DeleteFrameworkRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=organizations/*/locations/*/frameworks/*}"
};
option (google.api.method_signature) = "name";
}
// Lists the cloud controls (both built-in and custom) that are available
// in a given parent resource. The latest major version of each cloud control
// is returned.
// This method supports pagination.
rpc ListCloudControls(ListCloudControlsRequest)
returns (ListCloudControlsResponse) {
option (google.api.http) = {
get: "/v1/{parent=organizations/*/locations/*}/cloudControls"
};
option (google.api.method_signature) = "parent";
}
// Gets details about a cloud control.
// This method retrieves the latest major version of a cloud control that
// you identify by name.
//
// By default, the latest major version of the cloud control is returned.
// To retrieve a specific major version, include `major_revision_id` in
// the request.
rpc GetCloudControl(GetCloudControlRequest) returns (CloudControl) {
option (google.api.http) = {
get: "/v1/{name=organizations/*/locations/*/cloudControls/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a custom cloud control in a given parent
// resource.
// You can't create built-in cloud controls because those are managed by
// Google.
rpc CreateCloudControl(CreateCloudControlRequest) returns (CloudControl) {
option (google.api.http) = {
post: "/v1/{parent=organizations/*/locations/*}/cloudControls"
body: "cloud_control"
};
option (google.api.method_signature) =
"parent,cloud_control,cloud_control_id";
}
// Updates a custom cloud control.
// This method allows for partial updates of a cloud control. Use the
// `update_mask` to specify which fields to update. Consider the following:
//
// - If you provide an `update_mask`, only the fields that are specified
// in the mask are updated.
// - If you don't provide an `update_mask`, all the fields that are present
// in the request's `cloud_control` body are used to overwrite the existing
// resource.
//
// You can only update cloud controls with the `CUSTOM` type.
// A successful update creates a new version of the cloud control.
rpc UpdateCloudControl(UpdateCloudControlRequest) returns (CloudControl) {
option (google.api.http) = {
patch: "/v1/{cloud_control.name=organizations/*/locations/*/cloudControls/*}"
body: "cloud_control"
};
option (google.api.method_signature) = "cloud_control,update_mask";
}
// Deletes a custom cloud control, including all its
// major and minor revisions. Consider the following:
//
// - You can't delete built-in cloud controls. You can only delete cloud
// controls with type `CUSTOM`.
// - You can't delete cloud controls if any of the versions are referenced
// by a framework.
// - You can't restore a deleted cloud control. This action is permanent.
rpc DeleteCloudControl(DeleteCloudControlRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/v1/{name=organizations/*/locations/*/cloudControls/*}"
};
option (google.api.method_signature) = "name";
}
}
// Request message for [ListFrameworks][].
message ListFrameworksRequest {
// Required. The parent resource name, in the format
// `organizations/{organization}/locations/{location}`.
// The only supported location is `global`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "cloudsecuritycompliance.googleapis.com/Framework"
}
];
// Optional. The maximum number of frameworks to return. The default value is
// `500`.
//
// If you exceed the maximum value of `1000`, then the service uses the
// maximum value.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A pagination token returned from a previous request to list
// frameworks. Provide this token to retrieve the next page of results.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// The response message for [ListFrameworks][].
// Returns a paginated list of Framework resources.
message ListFrameworksResponse {
// The list of framework resources.
repeated Framework frameworks = 1;
// A pagination token. To retrieve the next page of results, call the method
// again with this token.
string next_page_token = 2;
}
// The request message for [GetFramework][].
message GetFrameworkRequest {
// Required. The name of the framework to retrieve, in the format
// `organizations/{organization}/locations/{location}/frameworks/{framework_id}`
// The only supported location is `global`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudsecuritycompliance.googleapis.com/Framework"
}
];
// Optional. The framework major version to retrieve. If not specified, the
// most recently updated `revision_id` is retrieved.
int64 major_revision_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// The request message for [CreateFramework][].
message CreateFrameworkRequest {
// Required. The parent resource name, in the format
// `organizations/{organization}/locations/{location}`.
// The only supported location is `global`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "cloudsecuritycompliance.googleapis.com/Framework"
}
];
// Required. The identifier (ID) of the framework. The ID is not the full name
// of the framework; it's the last part of the full name of the framework.
string framework_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The resource being created.
Framework framework = 3 [(google.api.field_behavior) = REQUIRED];
}
// The request message for [UpdateFramework][].
message UpdateFrameworkRequest {
// Optional. A field mask is used to specify the fields to be overwritten in
// the framework resource by the update. The fields specified in the
// `update_mask` are relative to the resource, not the full request. A field
// is overwritten if it is in the mask. If you don't provide a mask then all
// fields present in the request will be overwritten.
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The resource that is being updated.
Framework framework = 2 [(google.api.field_behavior) = REQUIRED];
// Optional. The major version ID of the framework to update.
int64 major_revision_id = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for [DeleteFramework][].
message DeleteFrameworkRequest {
// Required. The name of the resource, in the format
// `organizations/{organization}/locations/{location}/frameworks/{framework}`.
// The only supported location is `global`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudsecuritycompliance.googleapis.com/Framework"
}
];
}
// Request message for [ListCloudControls][].
message ListCloudControlsRequest {
// Required. The parent resource name, in the format
// `organizations/{organization}/locations/{location}`.
// The only supported location is `global`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "cloudsecuritycompliance.googleapis.com/CloudControl"
}
];
// Optional. The maximum number of cloud controls to return. The default value
// is `500`.
//
// If you exceed the maximum value of `1000`, then the service uses the
// maximum value.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A pagination token that's returned from a previous request to
// list cloud controls. Provide this token to retrieve the next page of
// results.
//
// When paginating, the parent that you provide to the
// [ListCloudControls][google.cloud.cloudsecuritycompliance.v1.Config.ListCloudControls]
// request must match the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// The response message for [ListCloudControls][].
message ListCloudControlsResponse {
// The list of CloudControl resources.
repeated CloudControl cloud_controls = 1;
// A pagination token. To retrieve the next page of results, call the method
// again with this token.
string next_page_token = 2;
}
// The request message for [GetCloudControl][].
message GetCloudControlRequest {
// Required. The name of the cloud control to retrieve, in the format
// `organizations/{organization}/locations/{location}/cloudControls/{cloud_control}`.
// The only supported location is `global`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudsecuritycompliance.googleapis.com/CloudControl"
}
];
// Optional. The major version of the cloud control to retrieve. If not
// specified, the most recently updated `revision_id` is retrieved.
int64 major_revision_id = 2 [(google.api.field_behavior) = OPTIONAL];
}
// The request message for [CreateCloudControl][].
message CreateCloudControlRequest {
// Required. The parent resource name, in the format
// `organizations/{organization}/locations/{location}`.
// The only supported location is `global`.
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "cloudsecuritycompliance.googleapis.com/CloudControl"
}
];
// Required. The identifier for the cloud control, which is the last segment
// of the cloud control name. The format is
// `^[a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$`.
string cloud_control_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The cloud control that's being created.
CloudControl cloud_control = 3 [(google.api.field_behavior) = REQUIRED];
}
// The request message for [UpdateCloudControl][].
message UpdateCloudControlRequest {
// Optional. Use a field mask to specify the fields to be overwritten in the
// cloud control during the update.
// The fields that you specify in the `update_mask` are relative to the
// cloud control, not the full request. A field is overwritten if it is in
// the mask. If you don't provide a mask, all fields in the request
// are updated.
//
// You can update the following fields:
//
// - Display name
// - Description
// - Parameters
// - Rules
// - Parameter specification
google.protobuf.FieldMask update_mask = 1
[(google.api.field_behavior) = OPTIONAL];
// Required. The cloud control that you're updating.
CloudControl cloud_control = 2 [(google.api.field_behavior) = REQUIRED];
}
// The request message for [DeleteCloudControl][].
message DeleteCloudControlRequest {
// Required. The name of the cloud control to delete, in the format
// `organizations/{organization}/locations/{location}/CloudControls/{CloudControl}`.
// The only supported location is `global`.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "cloudsecuritycompliance.googleapis.com/CloudControl"
}
];
}