// Copyright 2026 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.chat.v1;

option csharp_namespace = "Google.Apps.Chat.V1";
option go_package = "cloud.google.com/go/chat/apiv1/chatpb;chatpb";
option java_multiple_files = true;
option java_outer_classname = "AppCommandMetadataProto";
option java_package = "com.google.chat.v1";
option php_namespace = "Google\\Apps\\Chat\\V1";
option ruby_package = "Google::Apps::Chat::V1";

// Metadata about a [Chat app
// command](https://developers.google.com/workspace/chat/commands).
message AppCommandMetadata {
  // The type of Chat app command. For details, see [Types of Chat
  // app commands](https://developers.google.com/workspace/chat/commands#types).
  enum AppCommandType {
    // Default value. Unspecified.
    APP_COMMAND_TYPE_UNSPECIFIED = 0;

    // A slash command. The user sends the command in a Chat message.
    SLASH_COMMAND = 1;

    // A quick command. The user selects the command from the Chat menu
    // in the message reply area.
    QUICK_COMMAND = 3;

    // A message action. The user selects the command from the message context
    // menu in Chat.
    MESSAGE_ACTION = 4;
  }

  // The ID for the command specified in the Chat API configuration.
  int32 app_command_id = 1;

  // The type of Chat app command.
  AppCommandType app_command_type = 2;
}
