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

# Shared flags definitions for multiple commands.

description:
  arg_name: description
  api_field: notificationConfig.description
  is_positional: false
  required: false
  help_text: |
    The text that will be used to describe a notification configuration.

event_type:
  arg_name: event-type
  api_field: notificationConfig.eventType
  default: FINDING
  choices:
    arg_value: FINDING
    enum_value: FINDING
    help_text: A Notification Configuration for SCC Findings.
  is_positional: false
  required: true
  help_text: |
    The SCC resource which you would like to receive notifications for.

pubsub_topic:
  arg_name: pubsub-topic
  api_field: notificationConfig.pubsubTopic
  is_positional: false
  required: false
  help_text: |
    The Pub/Sub topic which will receive notifications. Its format is
    "projects/[project_id]/topics/[topic]".

# Note:
# SCC's custom --filter is passing the streaming config filter as part of
# the request body. However --filter is a global filter flag in gcloud. The
# --filter flag in gcloud (outside of this command) is used for client side
# filtering. This has led to a collision in logic as gcloud believes the
# update is trying to perform client side filtering. In the context of
# notifications, it is instead updating the streaming config filter.
#
# Any future new commands should reconsider not using --filter for this logic and perhaps use a
# different name to avoid any collisions with gcloud logic.
filter:
  arg_name: filter
  api_field: notificationConfig.streamingConfig.filter
  is_positional: false
  required: false
  help_text: |
    The filter string which will applied to events of findings of a
    notification configuration.
