content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: a2a.proto
  // Protobuf Java Version: 4.31.1
  
  package io.a2a.grpc;
  
  @com.google.protobuf.Generated
  public interface AgentCardOrBuilder extends
      // @@protoc_insertion_point(interface_extends:a2a.v1.AgentCard)
      com.google.protobuf.MessageOrBuilder {
  
    /**
     * <pre>
     * The version of the A2A protocol this agent supports.
     * </pre>
     *
     * <code>string protocol_version = 16;</code>
     * @return The protocolVersion.
     */
    java.lang.String getProtocolVersion();
    /**
     * <pre>
     * The version of the A2A protocol this agent supports.
     * </pre>
     *
     * <code>string protocol_version = 16;</code>
     * @return The bytes for protocolVersion.
     */
    com.google.protobuf.ByteString
        getProtocolVersionBytes();
  
    /**
     * <pre>
     * A human readable name for the agent.
     * Example: "Recipe Agent"
     * </pre>
     *
     * <code>string name = 1;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <pre>
     * A human readable name for the agent.
     * Example: "Recipe Agent"
     * </pre>
     *
     * <code>string name = 1;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();
  
    /**
     * <pre>
     * A description of the agent's domain of action/solution space.
     * Example: "Agent that helps users with recipes and cooking."
     * </pre>
     *
     * <code>string description = 2;</code>
     * @return The description.
     */
    java.lang.String getDescription();
    /**
     * <pre>
     * A description of the agent's domain of action/solution space.
     * Example: "Agent that helps users with recipes and cooking."
     * </pre>
     *
     * <code>string description = 2;</code>
     * @return The bytes for description.
     */
    com.google.protobuf.ByteString
        getDescriptionBytes();
  
    /**
     * <pre>
     * A URL to the address the agent is hosted at. This represents the
     * preferred endpoint as declared by the agent.
     * </pre>
     *
     * <code>string url = 3;</code>
     * @return The url.
     */
    java.lang.String getUrl();
    /**
     * <pre>
     * A URL to the address the agent is hosted at. This represents the
     * preferred endpoint as declared by the agent.
     * </pre>
     *
     * <code>string url = 3;</code>
     * @return The bytes for url.
     */
    com.google.protobuf.ByteString
        getUrlBytes();
  
    /**
     * <pre>
     * The transport of the preferred endpoint. If empty, defaults to JSONRPC.
     * </pre>
     *
     * <code>string preferred_transport = 14;</code>
     * @return The preferredTransport.
     */
    java.lang.String getPreferredTransport();
    /**
     * <pre>
     * The transport of the preferred endpoint. If empty, defaults to JSONRPC.
     * </pre>
     *
     * <code>string preferred_transport = 14;</code>
     * @return The bytes for preferredTransport.
     */
    com.google.protobuf.ByteString
        getPreferredTransportBytes();
  
    /**
     * <pre>
     * Announcement of additional supported transports. Client can use any of
     * the supported transports.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentInterface additional_interfaces = 15;</code>
     */
    java.util.List<io.a2a.grpc.AgentInterface> 
        getAdditionalInterfacesList();
    /**
     * <pre>
     * Announcement of additional supported transports. Client can use any of
     * the supported transports.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentInterface additional_interfaces = 15;</code>
     */
    io.a2a.grpc.AgentInterface getAdditionalInterfaces(int index);
    /**
     * <pre>
     * Announcement of additional supported transports. Client can use any of
     * the supported transports.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentInterface additional_interfaces = 15;</code>
     */
    int getAdditionalInterfacesCount();
    /**
     * <pre>
     * Announcement of additional supported transports. Client can use any of
     * the supported transports.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentInterface additional_interfaces = 15;</code>
     */
    java.util.List<? extends io.a2a.grpc.AgentInterfaceOrBuilder> 
        getAdditionalInterfacesOrBuilderList();
    /**
     * <pre>
     * Announcement of additional supported transports. Client can use any of
     * the supported transports.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentInterface additional_interfaces = 15;</code>
     */
    io.a2a.grpc.AgentInterfaceOrBuilder getAdditionalInterfacesOrBuilder(
        int index);
  
    /**
     * <pre>
     * The service provider of the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentProvider provider = 4;</code>
     * @return Whether the provider field is set.
     */
    boolean hasProvider();
    /**
     * <pre>
     * The service provider of the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentProvider provider = 4;</code>
     * @return The provider.
     */
    io.a2a.grpc.AgentProvider getProvider();
    /**
     * <pre>
     * The service provider of the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentProvider provider = 4;</code>
     */
    io.a2a.grpc.AgentProviderOrBuilder getProviderOrBuilder();
  
    /**
     * <pre>
     * The version of the agent.
     * Example: "1.0.0"
     * </pre>
     *
     * <code>string version = 5;</code>
     * @return The version.
     */
    java.lang.String getVersion();
    /**
     * <pre>
     * The version of the agent.
     * Example: "1.0.0"
     * </pre>
     *
     * <code>string version = 5;</code>
     * @return The bytes for version.
     */
    com.google.protobuf.ByteString
        getVersionBytes();
  
    /**
     * <pre>
     * A url to provide additional documentation about the agent.
     * </pre>
     *
     * <code>string documentation_url = 6;</code>
     * @return The documentationUrl.
     */
    java.lang.String getDocumentationUrl();
    /**
     * <pre>
     * A url to provide additional documentation about the agent.
     * </pre>
     *
     * <code>string documentation_url = 6;</code>
     * @return The bytes for documentationUrl.
     */
    com.google.protobuf.ByteString
        getDocumentationUrlBytes();
  
    /**
     * <pre>
     * A2A Capability set supported by the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentCapabilities capabilities = 7;</code>
     * @return Whether the capabilities field is set.
     */
    boolean hasCapabilities();
    /**
     * <pre>
     * A2A Capability set supported by the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentCapabilities capabilities = 7;</code>
     * @return The capabilities.
     */
    io.a2a.grpc.AgentCapabilities getCapabilities();
    /**
     * <pre>
     * A2A Capability set supported by the agent.
     * </pre>
     *
     * <code>.a2a.v1.AgentCapabilities capabilities = 7;</code>
     */
    io.a2a.grpc.AgentCapabilitiesOrBuilder getCapabilitiesOrBuilder();
  
    /**
     * <pre>
     * The security scheme details used for authenticating with this agent.
     * </pre>
     *
     * <code>map&lt;string, .a2a.v1.SecurityScheme&gt; security_schemes = 8;</code>
     */
    int getSecuritySchemesCount();
    /**
     * <pre>
     * The security scheme details used for authenticating with this agent.
     * </pre>
     *
     * <code>map&lt;string, .a2a.v1.SecurityScheme&gt; security_schemes = 8;</code>
     */
    boolean containsSecuritySchemes(
        java.lang.String key);
    /**
     * Use {@link #getSecuritySchemesMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.a2a.grpc.SecurityScheme>
    getSecuritySchemes();
    /**
     * <pre>
     * The security scheme details used for authenticating with this agent.
     * </pre>
     *
     * <code>map&lt;string, .a2a.v1.SecurityScheme&gt; security_schemes = 8;</code>
     */
    java.util.Map<java.lang.String, io.a2a.grpc.SecurityScheme>
    getSecuritySchemesMap();
    /**
     * <pre>
     * The security scheme details used for authenticating with this agent.
     * </pre>
     *
     * <code>map&lt;string, .a2a.v1.SecurityScheme&gt; security_schemes = 8;</code>
     */
    /* nullable */
  io.a2a.grpc.SecurityScheme getSecuritySchemesOrDefault(
        java.lang.String key,
        /* nullable */
  io.a2a.grpc.SecurityScheme defaultValue);
    /**
     * <pre>
     * The security scheme details used for authenticating with this agent.
     * </pre>
     *
     * <code>map&lt;string, .a2a.v1.SecurityScheme&gt; security_schemes = 8;</code>
     */
    io.a2a.grpc.SecurityScheme getSecuritySchemesOrThrow(
        java.lang.String key);
  
    /**
     * <pre>
     * protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
     * Security requirements for contacting the agent.
     * This list can be seen as an OR of ANDs. Each object in the list describes
     * one possible set of security requirements that must be present on a
     * request. This allows specifying, for example, "callers must either use
     * OAuth OR an API Key AND mTLS."
     * Example:
     * security {
     * schemes { key: "oauth" value { list: ["read"] } }
     * }
     * security {
     * schemes { key: "api-key" }
     * schemes { key: "mtls" }
     * }
     * </pre>
     *
     * <code>repeated .a2a.v1.Security security = 9;</code>
     */
    java.util.List<io.a2a.grpc.Security> 
        getSecurityList();
    /**
     * <pre>
     * protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
     * Security requirements for contacting the agent.
     * This list can be seen as an OR of ANDs. Each object in the list describes
     * one possible set of security requirements that must be present on a
     * request. This allows specifying, for example, "callers must either use
     * OAuth OR an API Key AND mTLS."
     * Example:
     * security {
     * schemes { key: "oauth" value { list: ["read"] } }
     * }
     * security {
     * schemes { key: "api-key" }
     * schemes { key: "mtls" }
     * }
     * </pre>
     *
     * <code>repeated .a2a.v1.Security security = 9;</code>
     */
    io.a2a.grpc.Security getSecurity(int index);
    /**
     * <pre>
     * protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
     * Security requirements for contacting the agent.
     * This list can be seen as an OR of ANDs. Each object in the list describes
     * one possible set of security requirements that must be present on a
     * request. This allows specifying, for example, "callers must either use
     * OAuth OR an API Key AND mTLS."
     * Example:
     * security {
     * schemes { key: "oauth" value { list: ["read"] } }
     * }
     * security {
     * schemes { key: "api-key" }
     * schemes { key: "mtls" }
     * }
     * </pre>
     *
     * <code>repeated .a2a.v1.Security security = 9;</code>
     */
    int getSecurityCount();
    /**
     * <pre>
     * protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
     * Security requirements for contacting the agent.
     * This list can be seen as an OR of ANDs. Each object in the list describes
     * one possible set of security requirements that must be present on a
     * request. This allows specifying, for example, "callers must either use
     * OAuth OR an API Key AND mTLS."
     * Example:
     * security {
     * schemes { key: "oauth" value { list: ["read"] } }
     * }
     * security {
     * schemes { key: "api-key" }
     * schemes { key: "mtls" }
     * }
     * </pre>
     *
     * <code>repeated .a2a.v1.Security security = 9;</code>
     */
    java.util.List<? extends io.a2a.grpc.SecurityOrBuilder> 
        getSecurityOrBuilderList();
    /**
     * <pre>
     * protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
     * Security requirements for contacting the agent.
     * This list can be seen as an OR of ANDs. Each object in the list describes
     * one possible set of security requirements that must be present on a
     * request. This allows specifying, for example, "callers must either use
     * OAuth OR an API Key AND mTLS."
     * Example:
     * security {
     * schemes { key: "oauth" value { list: ["read"] } }
     * }
     * security {
     * schemes { key: "api-key" }
     * schemes { key: "mtls" }
     * }
     * </pre>
     *
     * <code>repeated .a2a.v1.Security security = 9;</code>
     */
    io.a2a.grpc.SecurityOrBuilder getSecurityOrBuilder(
        int index);
  
    /**
     * <pre>
     * protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
     * The set of interaction modes that the agent supports across all skills.
     * This can be overridden per skill. Defined as mime types.
     * </pre>
     *
     * <code>repeated string default_input_modes = 10;</code>
     * @return A list containing the defaultInputModes.
     */
    java.util.List<java.lang.String>
        getDefaultInputModesList();
    /**
     * <pre>
     * protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
     * The set of interaction modes that the agent supports across all skills.
     * This can be overridden per skill. Defined as mime types.
     * </pre>
     *
     * <code>repeated string default_input_modes = 10;</code>
     * @return The count of defaultInputModes.
     */
    int getDefaultInputModesCount();
    /**
     * <pre>
     * protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
     * The set of interaction modes that the agent supports across all skills.
     * This can be overridden per skill. Defined as mime types.
     * </pre>
     *
     * <code>repeated string default_input_modes = 10;</code>
     * @param index The index of the element to return.
     * @return The defaultInputModes at the given index.
     */
    java.lang.String getDefaultInputModes(int index);
    /**
     * <pre>
     * protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
     * The set of interaction modes that the agent supports across all skills.
     * This can be overridden per skill. Defined as mime types.
     * </pre>
     *
     * <code>repeated string default_input_modes = 10;</code>
     * @param index The index of the value to return.
     * @return The bytes of the defaultInputModes at the given index.
     */
    com.google.protobuf.ByteString
        getDefaultInputModesBytes(int index);
  
    /**
     * <pre>
     * The mime types supported as outputs from this agent.
     * </pre>
     *
     * <code>repeated string default_output_modes = 11;</code>
     * @return A list containing the defaultOutputModes.
     */
    java.util.List<java.lang.String>
        getDefaultOutputModesList();
    /**
     * <pre>
     * The mime types supported as outputs from this agent.
     * </pre>
     *
     * <code>repeated string default_output_modes = 11;</code>
     * @return The count of defaultOutputModes.
     */
    int getDefaultOutputModesCount();
    /**
     * <pre>
     * The mime types supported as outputs from this agent.
     * </pre>
     *
     * <code>repeated string default_output_modes = 11;</code>
     * @param index The index of the element to return.
     * @return The defaultOutputModes at the given index.
     */
    java.lang.String getDefaultOutputModes(int index);
    /**
     * <pre>
     * The mime types supported as outputs from this agent.
     * </pre>
     *
     * <code>repeated string default_output_modes = 11;</code>
     * @param index The index of the value to return.
     * @return The bytes of the defaultOutputModes at the given index.
     */
    com.google.protobuf.ByteString
        getDefaultOutputModesBytes(int index);
  
    /**
     * <pre>
     * Skills represent a unit of ability an agent can perform. This may
     * somewhat abstract but represents a more focused set of actions that the
     * agent is highly likely to succeed at.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentSkill skills = 12;</code>
     */
    java.util.List<io.a2a.grpc.AgentSkill> 
        getSkillsList();
    /**
     * <pre>
     * Skills represent a unit of ability an agent can perform. This may
     * somewhat abstract but represents a more focused set of actions that the
     * agent is highly likely to succeed at.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentSkill skills = 12;</code>
     */
    io.a2a.grpc.AgentSkill getSkills(int index);
    /**
     * <pre>
     * Skills represent a unit of ability an agent can perform. This may
     * somewhat abstract but represents a more focused set of actions that the
     * agent is highly likely to succeed at.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentSkill skills = 12;</code>
     */
    int getSkillsCount();
    /**
     * <pre>
     * Skills represent a unit of ability an agent can perform. This may
     * somewhat abstract but represents a more focused set of actions that the
     * agent is highly likely to succeed at.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentSkill skills = 12;</code>
     */
    java.util.List<? extends io.a2a.grpc.AgentSkillOrBuilder> 
        getSkillsOrBuilderList();
    /**
     * <pre>
     * Skills represent a unit of ability an agent can perform. This may
     * somewhat abstract but represents a more focused set of actions that the
     * agent is highly likely to succeed at.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentSkill skills = 12;</code>
     */
    io.a2a.grpc.AgentSkillOrBuilder getSkillsOrBuilder(
        int index);
  
    /**
     * <pre>
     * Whether the agent supports providing an extended agent card when
     * the user is authenticated, i.e. is the card from .well-known
     * different than the card from GetAgentCard.
     * </pre>
     *
     * <code>bool supports_authenticated_extended_card = 13;</code>
     * @return The supportsAuthenticatedExtendedCard.
     */
    boolean getSupportsAuthenticatedExtendedCard();
  
    /**
     * <pre>
     * JSON Web Signatures computed for this AgentCard.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentCardSignature signatures = 17;</code>
     */
    java.util.List<io.a2a.grpc.AgentCardSignature> 
        getSignaturesList();
    /**
     * <pre>
     * JSON Web Signatures computed for this AgentCard.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentCardSignature signatures = 17;</code>
     */
    io.a2a.grpc.AgentCardSignature getSignatures(int index);
    /**
     * <pre>
     * JSON Web Signatures computed for this AgentCard.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentCardSignature signatures = 17;</code>
     */
    int getSignaturesCount();
    /**
     * <pre>
     * JSON Web Signatures computed for this AgentCard.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentCardSignature signatures = 17;</code>
     */
    java.util.List<? extends io.a2a.grpc.AgentCardSignatureOrBuilder> 
        getSignaturesOrBuilderList();
    /**
     * <pre>
     * JSON Web Signatures computed for this AgentCard.
     * </pre>
     *
     * <code>repeated .a2a.v1.AgentCardSignature signatures = 17;</code>
     */
    io.a2a.grpc.AgentCardSignatureOrBuilder getSignaturesOrBuilder(
        int index);
  }
  