1- // Copyright 2025 Google LLC
1+ // Copyright 2026 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -132,6 +132,18 @@ enum CloudControlCategory {
132132
133133 // The business continuity and disaster recovery (BCDR) category.
134134 CC_CATEGORY_BCDR = 15 ;
135+
136+ // The admin access category.
137+ CC_CATEGORY_ADMIN_ACCESS = 16 ;
138+
139+ // DRZ (Data Residency).
140+ CC_CATEGORY_DATA_RESIDENCY = 17 ;
141+
142+ // RUR (Resource Usage Restriction).
143+ CC_CATEGORY_RESOURCE_USAGE_RESTRICTION = 18 ;
144+
145+ // SERVICE SPECIFIC
146+ CC_CATEGORY_SERVICE_SPECIFIC = 19 ;
135147}
136148
137149// The cloud provider that's associated with the cloud control.
@@ -240,6 +252,7 @@ message Framework {
240252 option (google.api.resource ) = {
241253 type : "cloudsecuritycompliance.googleapis.com/Framework"
242254 pattern : "organizations/{organization}/locations/{location}/frameworks/{framework}"
255+ pattern : "projects/{project}/locations/{location}/frameworks/{framework}"
243256 plural : "frameworks"
244257 singular : "framework"
245258 };
@@ -256,8 +269,12 @@ message Framework {
256269 CUSTOM = 2 ;
257270 }
258271
259- // Required. Identifier. The name of the framework, in the format
260- // `organizations/{organization}/locations/{location}/frameworks/{framework_id}`.
272+ // Required. Identifier. The name of the framework, in one of the following
273+ // formats:
274+ // `organizations/{organization}/locations/{location}/frameworks/{framework}`
275+ // or
276+ // `projects/{project}/locations/{location}/frameworks/{framework}`.
277+ //
261278 // The only supported location is `global`.
262279 string name = 1 [
263280 (google.api.field_behavior ) = REQUIRED ,
@@ -303,8 +320,11 @@ message Framework {
303320
304321// The details of a cloud control.
305322message CloudControlDetails {
306- // Required. The name of the cloud control, in the format
307- // `organizations/{organization}/locations/{location}/cloudControls/{cloud-control}`.
323+ // Required. The name of the cloud control, in one of the following formats:
324+ // `organizations/{organization}/locations/{location}/cloudControls/{cloud_control}`
325+ // or
326+ // `projects/{project}/locations/{location}/cloudControls/{cloud_control}`.
327+ //
308328 // The only supported location is `global`.
309329 string name = 1 [(google.api.field_behavior ) = REQUIRED ];
310330
@@ -318,13 +338,20 @@ message CloudControlDetails {
318338 repeated Parameter parameters = 4 [(google.api.field_behavior ) = OPTIONAL ];
319339}
320340
321- // The reference of a framework, in the format
322- // `organizations/{organization}/locations/{location}/frameworks/{framework}`.
341+ // The reference of a framework, in one of the following formats:
342+ // - `organizations/{organization}/locations/{location}/frameworks/{framework}`
343+ // - `projects/{project}/locations/{location}/frameworks/{framework}`.
344+ //
323345// The only supported location is `global`.
324346message FrameworkReference {
325347 // Required. The major version of the framework. If not specified, the version
326348 // corresponds to the latest version of the framework.
327- string framework = 1 [(google.api.field_behavior ) = REQUIRED ];
349+ string framework = 1 [
350+ (google.api.field_behavior ) = REQUIRED ,
351+ (google.api.resource_reference ) = {
352+ type : "cloudsecuritycompliance.googleapis.com/Framework"
353+ }
354+ ];
328355
329356 // Optional. The major version of the framework. If not specified, the version
330357 // corresponds to the latest version of the framework.
@@ -348,6 +375,7 @@ message CloudControl {
348375 option (google.api.resource ) = {
349376 type : "cloudsecuritycompliance.googleapis.com/CloudControl"
350377 pattern : "organizations/{organization}/locations/{location}/cloudControls/{cloud_control}"
378+ pattern : "projects/{project}/locations/{location}/cloudControls/{cloud_control}"
351379 plural : "cloudControls"
352380 singular : "cloudControl"
353381 };
@@ -364,8 +392,12 @@ message CloudControl {
364392 BUILT_IN = 2 ;
365393 }
366394
367- // Required. Identifier. The name of the cloud control, in the format
368- // `organizations/{organization}/locations/{location}/cloudControls/{cloud_control_id}`.
395+ // Required. Identifier. The name of the cloud control, in either of the
396+ // formats:
397+ // `organizations/{organization}/locations/{location}/cloudControls/{cloud_control}`
398+ // or
399+ // `projects/{project}/locations/{location}/cloudControls/{cloud_control}`.
400+ //
369401 // The only supported location is `global`.
370402 string name = 1 [
371403 (google.api.field_behavior ) = REQUIRED ,
@@ -535,20 +567,20 @@ message StringList {
535567message ParamValue {
536568 // The list of possible parameter value types.
537569 oneof kind {
538- // A string value.
539- string string_value = 3 ;
570+ // Optional. A string value.
571+ string string_value = 3 [ (google.api .field_behavior ) = OPTIONAL ] ;
540572
541- // A boolean value.
542- bool bool_value = 4 ;
573+ // Optional. A boolean value.
574+ bool bool_value = 4 [ (google.api .field_behavior ) = OPTIONAL ] ;
543575
544- // A repeated string.
545- StringList string_list_value = 5 ;
576+ // Optional. A repeated string.
577+ StringList string_list_value = 5 [ (google.api .field_behavior ) = OPTIONAL ] ;
546578
547- // A double value.
548- double number_value = 6 ;
579+ // Optional. A double value.
580+ double number_value = 6 [ (google.api .field_behavior ) = OPTIONAL ] ;
549581
550- // Sub-parameter values.
551- Parameter oneof_value = 7 ;
582+ // Optional. Sub-parameter values.
583+ Parameter oneof_value = 7 [ (google.api .field_behavior ) = OPTIONAL ] ;
552584 }
553585}
554586
@@ -639,6 +671,135 @@ message OperationMetadata {
639671 string api_version = 7 [(google.api.field_behavior ) = OUTPUT_ONLY ];
640672}
641673
674+ // The regulatory control.
675+ message Control {
676+ option (google.api.resource ) = {
677+ type : "cloudsecuritycompliance.googleapis.com/Control"
678+ pattern : "organizations/{organization}/locations/{location}/controls/{control}"
679+ pattern : "projects/{project}/locations/{location}/controls/{control}"
680+ plural : "controls"
681+ singular : "control"
682+ };
683+
684+ // The regulatory control family.
685+ enum Family {
686+ // Default value. This value is unused.
687+ FAMILY_UNSPECIFIED = 0 ;
688+
689+ // Access control
690+ AC = 1 ;
691+
692+ // Awareness and araining
693+ AT = 2 ;
694+
695+ // Audit and accountability
696+ AU = 3 ;
697+
698+ // Certification, accreditation, and security assessments
699+ CA = 4 ;
700+
701+ // Configuration management
702+ CM = 5 ;
703+
704+ // Contingency planning
705+ CP = 6 ;
706+
707+ // Identification and authentication
708+ IA = 7 ;
709+
710+ // Incident response
711+ IR = 8 ;
712+
713+ // Maintenance
714+ MA = 9 ;
715+
716+ // Media protection
717+ MP = 10 ;
718+
719+ // Physical and environmental protection
720+ PE = 11 ;
721+
722+ // Security planning
723+ PL = 12 ;
724+
725+ // Personnel aecurity
726+ PS = 13 ;
727+
728+ // Risk assessment
729+ RA = 14 ;
730+
731+ // System services and acquisition
732+ SA = 15 ;
733+
734+ // System and communications protection
735+ SC = 16 ;
736+
737+ // System and information integrity
738+ SI = 17 ;
739+
740+ // Supply chain risk management
741+ SR = 18 ;
742+ }
743+
744+ // Output only. The name of a regulatory control, in one of the following
745+ // formats:
746+ // - `organizations/{organization}/locations/{location}/controls/{control}`
747+ // - `projects/{project}/locations/{location}/controls/{control}`.
748+ //
749+ // The only supported location is `global`.
750+ string name = 1 [(google.api.field_behavior ) = OUTPUT_ONLY ];
751+
752+ // Output only. The friendly name for the regulatory control.
753+ string display_name = 3 [(google.api.field_behavior ) = OUTPUT_ONLY ];
754+
755+ // Output only. The description of the regulatory control.
756+ string description = 4 [(google.api.field_behavior ) = OUTPUT_ONLY ];
757+
758+ // Output only. The regulatory group that the control belongs to.
759+ Family family = 5 [(google.api.field_behavior ) = OUTPUT_ONLY ];
760+
761+ // Output only. The regulatory family that the control belongs to.
762+ ControlFamily control_family = 6 [(google.api.field_behavior ) = OUTPUT_ONLY ];
763+
764+ // Output only. The entity that's responsible for the control, whether Google,
765+ // you as the customer, or both.
766+ RegulatoryControlResponsibilityType responsibility_type = 7
767+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
768+
769+ // Output only. A description of Google's responsibility for the regulatory
770+ // control.
771+ string google_responsibility_description = 8
772+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
773+
774+ // Output only. A description of Google's responsibility for implementing the
775+ // regulatory control.
776+ string google_responsibility_implementation = 9
777+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
778+
779+ // Output only. A description of your responsibility for the regulatory
780+ // control.
781+ string customer_responsibility_description = 10
782+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
783+
784+ // Output only. A description of the your responsibility for implementing the
785+ // regulatory control.
786+ string customer_responsibility_implementation = 11
787+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
788+
789+ // Output only. A description of the responsibility that's shared between
790+ // Google and you in implementing this control.
791+ string shared_responsibility_description = 12
792+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
793+
794+ // Output only. A link to the documentation that's related to this control.
795+ string additional_content_uri = 13
796+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
797+
798+ // Output only. The frameworks that include this control.
799+ repeated string related_frameworks = 14
800+ [(google.api.field_behavior ) = OUTPUT_ONLY ];
801+ }
802+
642803// The regulatory family of the control.
643804message ControlFamily {
644805 // The identifier for the regulatory control family.
0 commit comments