# -*- coding: utf-8 -*- #
# Copyright 2025 Google LLC. All Rights Reserved.
#
# 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.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
  - GA
  auto_generated: true
  hidden: true
  help_text:
    brief: Update a framework.
    description: |
      Update a specific framework.
    examples: |-
      To update framework `my-framework-id` in organization `my-organization-id` and location `global`, run:

      $ {command} my-framework-id --organization=my-organization-id --location=global \
          --description="New framework description"
  arguments:
    params:
    - help_text: |-
        Identifier. The name of the framework, in the format
        `organizations/{organization}/locations/{location}/frameworks/{framework_id}`.
        The only supported location is `global`.
      is_positional: true
      is_primary_resource: true
      resource_spec: !REF googlecloudsdk.command_lib.compliance_manager.v1_resources:organizations_locations_frameworks
      required: true
    - arg_name: display-name
      api_field: framework.displayName
      required: false
      repeated: false
      help_text: |-
        The friendly name of the framework. The maximum length is 200 characters.
    - arg_name: description
      api_field: framework.description
      required: false
      repeated: false
      help_text: |-
        The description of the framework. The maximum length is 2000 characters.
    - arg_name: cloud-control-details
      api_field: framework.cloudControlDetails
      required: false
      repeated: true
      help_text: |-
        The cloud control details that are directly added without any
        grouping in the framework.
      clearable: true
      spec:
      - api_field: name
        help_text: |-
          The name of the cloud control, in the format
          `organizations/{organization}/locations/{location}/cloudControls/{cloud-control}`.
          The only supported location is `global`.
      - api_field: majorRevisionId
        help_text: |-
          The major version of the cloud control.
      - api_field: parameters
        help_text: |-
          Parameters are key-value pairs that let you provide your custom location
          requirements, environment requirements, or other settings that are
          relevant to the cloud control. An example parameter is
          `{"name": "location","value": "us-west-1"}`.
        spec:
        - api_field: name
          help_text: |-
            The name or key of the parameter.
    - arg_name: category
      api_field: framework.category
      required: false
      repeated: true
      help_text: |-
        The category of the framework.
      choices:
      - arg_value: industry-defined-standard
        enum_value: INDUSTRY_DEFINED_STANDARD
        help_text: |-
          An industry-defined framework.
      - arg_value: assured-workloads
        enum_value: ASSURED_WORKLOADS
        help_text: |-
          An Assured Workloads framework.
      - arg_value: data-security
        enum_value: DATA_SECURITY
        help_text: |-
          A data security posture framework.
      - arg_value: google-best-practices
        enum_value: GOOGLE_BEST_PRACTICES
        help_text: |-
          A Google's best practices framework.
      - arg_value: custom-framework
        enum_value: CUSTOM_FRAMEWORK
        help_text: |-
          A user-created framework.
      clearable: true
    - arg_name: major-revision-id
      api_field: majorRevisionId
      required: false
      repeated: false
      type: long
      help_text: |-
        The major version ID of the framework to update.
  request:
    api_version: v1
    collection:
    - cloudsecuritycompliance.organizations.locations.frameworks
  update:
    read_modify_update: true
