/*
 * 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
 *
 *     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.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: google/apps/card/v1/card.proto
// Protobuf Java Version: 4.33.2

package com.google.apps.card.v1;

@com.google.protobuf.Generated
public interface ButtonOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.apps.card.v1.Button)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * The text displayed inside the button.
   * </pre>
   *
   * <code>string text = 1;</code>
   *
   * @return The text.
   */
  java.lang.String getText();

  /**
   *
   *
   * <pre>
   * The text displayed inside the button.
   * </pre>
   *
   * <code>string text = 1;</code>
   *
   * @return The bytes for text.
   */
  com.google.protobuf.ByteString getTextBytes();

  /**
   *
   *
   * <pre>
   * An icon displayed inside the button. If both `icon` and `text` are set,
   * then the icon appears before the text.
   * </pre>
   *
   * <code>.google.apps.card.v1.Icon icon = 2;</code>
   *
   * @return Whether the icon field is set.
   */
  boolean hasIcon();

  /**
   *
   *
   * <pre>
   * An icon displayed inside the button. If both `icon` and `text` are set,
   * then the icon appears before the text.
   * </pre>
   *
   * <code>.google.apps.card.v1.Icon icon = 2;</code>
   *
   * @return The icon.
   */
  com.google.apps.card.v1.Icon getIcon();

  /**
   *
   *
   * <pre>
   * An icon displayed inside the button. If both `icon` and `text` are set,
   * then the icon appears before the text.
   * </pre>
   *
   * <code>.google.apps.card.v1.Icon icon = 2;</code>
   */
  com.google.apps.card.v1.IconOrBuilder getIconOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. The color of the button. If set, the button `type` is set to
   * `FILLED` and the color of `text` and `icon` fields are set to a
   * contrasting color for readability. For example, if the button color is
   * set to blue, any text or icons in the button are set to white.
   *
   * To set the button color, specify a value for the `red`, `green`, and `blue`
   * fields.
   * The value must be a float number between 0 and 1 based on the RGB color
   * value, where `0` (0/255) represents the absence of color  and `1` (255/255)
   * represents the maximum intensity of the color.
   *
   * For example, the following sets the color to red at its maximum intensity:
   *
   * ```
   * "color": {
   * "red": 1,
   * "green": 0,
   * "blue": 0,
   * }
   * ```
   *
   * The `alpha` field is unavailable for button color. If specified, this field
   * is ignored.
   * </pre>
   *
   * <code>.google.type.Color color = 3;</code>
   *
   * @return Whether the color field is set.
   */
  boolean hasColor();

  /**
   *
   *
   * <pre>
   * Optional. The color of the button. If set, the button `type` is set to
   * `FILLED` and the color of `text` and `icon` fields are set to a
   * contrasting color for readability. For example, if the button color is
   * set to blue, any text or icons in the button are set to white.
   *
   * To set the button color, specify a value for the `red`, `green`, and `blue`
   * fields.
   * The value must be a float number between 0 and 1 based on the RGB color
   * value, where `0` (0/255) represents the absence of color  and `1` (255/255)
   * represents the maximum intensity of the color.
   *
   * For example, the following sets the color to red at its maximum intensity:
   *
   * ```
   * "color": {
   * "red": 1,
   * "green": 0,
   * "blue": 0,
   * }
   * ```
   *
   * The `alpha` field is unavailable for button color. If specified, this field
   * is ignored.
   * </pre>
   *
   * <code>.google.type.Color color = 3;</code>
   *
   * @return The color.
   */
  com.google.type.Color getColor();

  /**
   *
   *
   * <pre>
   * Optional. The color of the button. If set, the button `type` is set to
   * `FILLED` and the color of `text` and `icon` fields are set to a
   * contrasting color for readability. For example, if the button color is
   * set to blue, any text or icons in the button are set to white.
   *
   * To set the button color, specify a value for the `red`, `green`, and `blue`
   * fields.
   * The value must be a float number between 0 and 1 based on the RGB color
   * value, where `0` (0/255) represents the absence of color  and `1` (255/255)
   * represents the maximum intensity of the color.
   *
   * For example, the following sets the color to red at its maximum intensity:
   *
   * ```
   * "color": {
   * "red": 1,
   * "green": 0,
   * "blue": 0,
   * }
   * ```
   *
   * The `alpha` field is unavailable for button color. If specified, this field
   * is ignored.
   * </pre>
   *
   * <code>.google.type.Color color = 3;</code>
   */
  com.google.type.ColorOrBuilder getColorOrBuilder();

  /**
   *
   *
   * <pre>
   * Required. The action to perform when a user clicks the button, such as
   * opening a hyperlink or running a custom function.
   * </pre>
   *
   * <code>.google.apps.card.v1.OnClick on_click = 4;</code>
   *
   * @return Whether the onClick field is set.
   */
  boolean hasOnClick();

  /**
   *
   *
   * <pre>
   * Required. The action to perform when a user clicks the button, such as
   * opening a hyperlink or running a custom function.
   * </pre>
   *
   * <code>.google.apps.card.v1.OnClick on_click = 4;</code>
   *
   * @return The onClick.
   */
  com.google.apps.card.v1.OnClick getOnClick();

  /**
   *
   *
   * <pre>
   * Required. The action to perform when a user clicks the button, such as
   * opening a hyperlink or running a custom function.
   * </pre>
   *
   * <code>.google.apps.card.v1.OnClick on_click = 4;</code>
   */
  com.google.apps.card.v1.OnClickOrBuilder getOnClickOrBuilder();

  /**
   *
   *
   * <pre>
   * If `true`, the button is displayed in an inactive state and doesn't respond
   * to user actions.
   * </pre>
   *
   * <code>bool disabled = 5;</code>
   *
   * @return The disabled.
   */
  boolean getDisabled();

  /**
   *
   *
   * <pre>
   * The alternative text that's used for accessibility.
   *
   * Set descriptive text that lets users know what the button does. For
   * example, if a button opens a hyperlink, you might write: "Opens a new
   * browser tab and navigates to the Google Chat developer documentation at
   * https://developers.google.com/workspace/chat".
   * </pre>
   *
   * <code>string alt_text = 6;</code>
   *
   * @return The altText.
   */
  java.lang.String getAltText();

  /**
   *
   *
   * <pre>
   * The alternative text that's used for accessibility.
   *
   * Set descriptive text that lets users know what the button does. For
   * example, if a button opens a hyperlink, you might write: "Opens a new
   * browser tab and navigates to the Google Chat developer documentation at
   * https://developers.google.com/workspace/chat".
   * </pre>
   *
   * <code>string alt_text = 6;</code>
   *
   * @return The bytes for altText.
   */
  com.google.protobuf.ByteString getAltTextBytes();

  /**
   *
   *
   * <pre>
   * Optional. The type of a button. If unset, button type defaults to
   * `OUTLINED`. If the `color` field is set, the button type is forced to
   * `FILLED` and any value set for this field is ignored.
   * </pre>
   *
   * <code>.google.apps.card.v1.Button.Type type = 7;</code>
   *
   * @return The enum numeric value on the wire for type.
   */
  int getTypeValue();

  /**
   *
   *
   * <pre>
   * Optional. The type of a button. If unset, button type defaults to
   * `OUTLINED`. If the `color` field is set, the button type is forced to
   * `FILLED` and any value set for this field is ignored.
   * </pre>
   *
   * <code>.google.apps.card.v1.Button.Type type = 7;</code>
   *
   * @return The type.
   */
  com.google.apps.card.v1.Button.Type getType();
}
