# frozen_string_literal: true

# 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
#
#     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.

# Auto-generated by gapic-generator-ruby. DO NOT EDIT!


module Google
  module Cloud
    module CloudSecurityCompliance
      module V1
        # Request message for listing Frameworks.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The parent resource name, in the format
        #     `organizations/{organization}/locations/{location}`.
        #     Only global location is supported.
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     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.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     Optional. A pagination token returned from a previous request to list
        #     frameworks. Provide this token to retrieve the next page of results.
        class ListFrameworksRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Response message for listing Frameworks.
        # Contains a paginated list of Framework resources.
        # @!attribute [rw] frameworks
        #   @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::Framework>]
        #     The list of Framework resources.
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A pagination token. To retrieve the next page of results, call the method
        #     again with this token.
        class ListFrameworksResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for getting a Framework.
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the framework to retrieve.
        #     Format:
        #     organizations/\\{organization}/locations/\\{location}/frameworks/\\{framework_id}
        # @!attribute [rw] major_revision_id
        #   @return [::Integer]
        #     Optional. The Framework major version to retrieve. If not specified, the
        #     most recently updated revision_id is retrieved.
        class GetFrameworkRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for creating a Framework
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The parent resource name, in the format
        #     `organizations/{organization}/locations/{location}`.
        # @!attribute [rw] framework_id
        #   @return [::String]
        #     Required. ID of the framework.
        #     This is not the full name of the framework.
        #     This is the last part of the full name of the framework.
        # @!attribute [rw] framework
        #   @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
        #     Required. The resource being created
        class CreateFrameworkRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for updating a Framework.
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. 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 will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields present in the request will be
        #     overwritten.
        # @!attribute [rw] framework
        #   @return [::Google::Cloud::CloudSecurityCompliance::V1::Framework]
        #     Required. The resource being updated
        # @!attribute [rw] major_revision_id
        #   @return [::Integer]
        #     Optional. The major version ID of the framework to update.
        class UpdateFrameworkRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for deleting a Framework.
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. Name of the resource, in the format
        #     `organizations/{organization}/locations/{location}/frameworks/{framework}`.
        class DeleteFrameworkRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for listing CloudControls.
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The parent resource name, in the format
        #     `organizations/{organization}/locations/{location}`.
        # @!attribute [rw] page_size
        #   @return [::Integer]
        #     Optional. The maximum number of CloudControls to return. The default value
        #     is `500`.
        #
        #     If you exceed the maximum value of `1000`, then the service uses the
        #     maximum value.
        # @!attribute [rw] page_token
        #   @return [::String]
        #     Optional. A pagination token returned from a previous request to list
        #     CloudControls. Provide this token to retrieve the next page of results.
        #
        #     When paginating, parent provided to
        #     ListCloudControls request must match the call that provided the page
        #     token.
        class ListCloudControlsRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Response message for ListCloudControls.
        # @!attribute [rw] cloud_controls
        #   @return [::Array<::Google::Cloud::CloudSecurityCompliance::V1::CloudControl>]
        #     The list of CloudControl resources.
        # @!attribute [rw] next_page_token
        #   @return [::String]
        #     A pagination token. To retrieve the next page of results, call the method
        #     again with this token.
        class ListCloudControlsResponse
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for getting a CloudControl.
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. The name of the cloudcontrol to retrieve in the format:
        #     organizations/\\{organization}/locations/\\{location}/cloudControls/\\{cloud_control}
        class GetCloudControlRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for creating a CloudControl
        # @!attribute [rw] parent
        #   @return [::String]
        #     Required. The parent resource name, in the format
        #     `organizations/{organization}/locations/{location}`.
        # @!attribute [rw] cloud_control_id
        #   @return [::String]
        #     Required. ID of the CloudControl.
        #     This is the last segment of the CloudControl resource name.
        #     Format: `^[a-zA-Z][a-zA-Z0-9-]{0,61}[a-zA-Z0-9]$`.
        # @!attribute [rw] cloud_control
        #   @return [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
        #     Required. The resource being created
        class CreateCloudControlRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for UpdateCloudControl.
        # @!attribute [rw] update_mask
        #   @return [::Google::Protobuf::FieldMask]
        #     Optional. Field mask is used to specify the fields to be overwritten in the
        #     CloudControl resource by the update.
        #     The fields specified in the update_mask are relative to the resource, not
        #     the full request. A field will be overwritten if it is in the mask. If the
        #     user does not provide a mask then all fields present in the request will be
        #     overwritten. The fields that can be updated are:
        #     1. Display_name
        #     2. Description
        #     3. Parameters
        #     4. Rules
        #     5. ParameterSpec.
        # @!attribute [rw] cloud_control
        #   @return [::Google::Cloud::CloudSecurityCompliance::V1::CloudControl]
        #     Required. The resource being updated
        class UpdateCloudControlRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end

        # Request message for deleting a CloudControl.
        # @!attribute [rw] name
        #   @return [::String]
        #     Required. Name of the resource, in the format
        #     `organizations/{organization}/locations/{location}/CloudControls/{CloudControl}`.
        class DeleteCloudControlRequest
          include ::Google::Protobuf::MessageExts
          extend ::Google::Protobuf::MessageExts::ClassMethods
        end
      end
    end
  end
end
