// NOTE: This file was generated by the ServiceGenerator.

// ----------------------------------------------------------------------------
// API:
//   Dialogflow API (dialogflow/v2)
// Description:
//   An end-to-end development suite for conversational interfaces (e.g.,
//   chatbots, voice-powered apps and devices).
// Documentation:
//   https://cloud.google.com/dialogflow-enterprise/

#if GTLR_BUILT_AS_FRAMEWORK
  #import "GTLR/GTLRQuery.h"
#else
  #import "GTLRQuery.h"
#endif

#if GTLR_RUNTIME_VERSION != 3000
#error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source.
#endif

@class GTLRDialogflow_GoogleCloudDialogflowV2BatchCreateEntitiesRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntitiesRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteIntentsRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntitiesRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateIntentsRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2Context;
@class GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2EntityType;
@class GTLRDialogflow_GoogleCloudDialogflowV2ExportAgentRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2ImportAgentRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2Intent;
@class GTLRDialogflow_GoogleCloudDialogflowV2RestoreAgentRequest;
@class GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType;
@class GTLRDialogflow_GoogleCloudDialogflowV2TrainAgentRequest;

// Generated comments include content from the discovery document; avoid them
// causing warnings since clang's checks are some what arbitrary.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdocumentation"

NS_ASSUME_NONNULL_BEGIN

// ----------------------------------------------------------------------------
// Constants - For some of the query classes' properties below.

// ----------------------------------------------------------------------------
// intentView

/** Value: "INTENT_VIEW_FULL" */
GTLR_EXTERN NSString * const kGTLRDialogflowIntentViewIntentViewFull;
/** Value: "INTENT_VIEW_UNSPECIFIED" */
GTLR_EXTERN NSString * const kGTLRDialogflowIntentViewIntentViewUnspecified;

// ----------------------------------------------------------------------------
// Query Classes
//

/**
 *  Parent class for other Dialogflow query classes.
 */
@interface GTLRDialogflowQuery : GTLRQuery

/** Selector specifying which fields to include in a partial response. */
@property(nonatomic, copy, nullable) NSString *fields;

@end

/**
 *  Deletes entity types in the specified agent.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.entityTypes.batchDelete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesBatchDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesBatchDeleteWithObject:parent:]

/**
 *  Required. The name of the agent to delete all entities types for. Format:
 *  `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Deletes entity types in the specified agent.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest to
 *    include in the query.
 *  @param parent Required. The name of the agent to delete all entities types
 *    for. Format:
 *    `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesBatchDelete
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Updates/Creates multiple entity types in the specified agent.
 *  Operation
 *  <response: BatchUpdateEntityTypesResponse, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.entityTypes.batchUpdate
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesBatchUpdate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesBatchUpdateWithObject:parent:]

/**
 *  Required. The name of the agent to update or create entity types in.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Updates/Creates multiple entity types in the specified agent.
 *  Operation
 *  <response: BatchUpdateEntityTypesResponse, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest to
 *    include in the query.
 *  @param parent Required. The name of the agent to update or create entity
 *    types in.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesBatchUpdate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Creates an entity type in the specified agent.
 *
 *  Method: dialogflow.projects.agent.entityTypes.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesCreateWithObject:parent:]

/**
 *  Optional. The language of entity synonyms defined in `entity_type`. If not
 *  specified, the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required. The agent to create a entity type for.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2EntityType.
 *
 *  Creates an entity type in the specified agent.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2EntityType to
 *    include in the query.
 *  @param parent Required. The agent to create a entity type for.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2EntityType *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified entity type.
 *
 *  Method: dialogflow.projects.agent.entityTypes.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesDeleteWithname:]

/**
 *  Required. The name of the entity type to delete.
 *  Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified entity type.
 *
 *  @param name Required. The name of the entity type to delete.
 *    Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Creates multiple new entities in the specified entity type (extends the
 *  existing collection of entries).
 *  Operation <response: google.protobuf.Empty>
 *
 *  Method: dialogflow.projects.agent.entityTypes.entities.batchCreate
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesEntitiesBatchCreateWithObject:parent:]

/**
 *  Required. The name of the entity type to create entities in. Format:
 *  `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Creates multiple new entities in the specified entity type (extends the
 *  existing collection of entries).
 *  Operation <response: google.protobuf.Empty>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchCreateEntitiesRequest to
 *    include in the query.
 *  @param parent Required. The name of the entity type to create entities in.
 *    Format:
 *    `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchCreateEntitiesRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes entities in the specified entity type.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.entityTypes.entities.batchDelete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesEntitiesBatchDeleteWithObject:parent:]

/**
 *  Required. The name of the entity type to delete entries for. Format:
 *  `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Deletes entities in the specified entity type.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntitiesRequest to
 *    include in the query.
 *  @param parent Required. The name of the entity type to delete entries for.
 *    Format:
 *    `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchDelete
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteEntitiesRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Updates entities in the specified entity type (replaces the existing
 *  collection of entries).
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.entityTypes.entities.batchUpdate
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchUpdate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesEntitiesBatchUpdateWithObject:parent:]

/**
 *  Required. The name of the entity type to update the entities in. Format:
 *  `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Updates entities in the specified entity type (replaces the existing
 *  collection of entries).
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntitiesRequest to
 *    include in the query.
 *  @param parent Required. The name of the entity type to update the entities
 *    in. Format:
 *    `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesEntitiesBatchUpdate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateEntitiesRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Retrieves the specified entity type.
 *
 *  Method: dialogflow.projects.agent.entityTypes.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesGetWithname:]

/**
 *  Optional. The language to retrieve entity synonyms for. If not specified,
 *  the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required. The name of the entity type.
 *  Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2EntityType.
 *
 *  Retrieves the specified entity type.
 *
 *  @param name Required. The name of the entity type.
 *    Format: `projects/<Project ID>/agent/entityTypes/<EntityType ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all entity types in the specified agent.
 *
 *  Method: dialogflow.projects.agent.entityTypes.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesListWithparent:]

/**
 *  Optional. The language to list entity synonyms for. If not specified,
 *  the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The agent to list all entity types from.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2ListEntityTypesResponse.
 *
 *  Returns the list of all entity types in the specified agent.
 *
 *  @param parent Required. The agent to list all entity types from.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified entity type.
 *
 *  Method: dialogflow.projects.agent.entityTypes.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentEntityTypesPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentEntityTypesPatchWithObject:name:]

/**
 *  Optional. The language of entity synonyms defined in `entity_type`. If not
 *  specified, the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required for all methods except `create` (`create` populates the name
 *  automatically.
 *  The unique identifier of the entity type. Format:
 *  `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2EntityType.
 *
 *  Updates the specified entity type.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2EntityType to
 *    include in the query.
 *  @param name Required for all methods except `create` (`create` populates the
 *    name
 *    automatically.
 *    The unique identifier of the entity type. Format:
 *    `projects/<Project ID>/agent/entityTypes/<Entity Type ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentEntityTypesPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2EntityType *)object
                           name:(NSString *)name;

@end

/**
 *  Exports the specified agent to a ZIP file.
 *  Operation
 *  <response: ExportAgentResponse, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.export
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentExport : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentExportWithObject:parent:]

/**
 *  Required. The project that the agent to export is associated with.
 *  Format: `projects/<Project ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Exports the specified agent to a ZIP file.
 *  Operation
 *  <response: ExportAgentResponse, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2ExportAgentRequest to include in the
 *    query.
 *  @param parent Required. The project that the agent to export is associated
 *    with.
 *    Format: `projects/<Project ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentExport
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2ExportAgentRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Imports the specified agent from a ZIP file.
 *  Uploads new intents and entity types without deleting the existing ones.
 *  Intents and entity types with the same name are replaced with the new
 *  versions from ImportAgentRequest.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.import
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentImport : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentImportWithObject:parent:]

/**
 *  Required. The project that the agent to import is associated with.
 *  Format: `projects/<Project ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Imports the specified agent from a ZIP file.
 *  Uploads new intents and entity types without deleting the existing ones.
 *  Intents and entity types with the same name are replaced with the new
 *  versions from ImportAgentRequest.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2ImportAgentRequest to include in the
 *    query.
 *  @param parent Required. The project that the agent to import is associated
 *    with.
 *    Format: `projects/<Project ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentImport
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2ImportAgentRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes intents in the specified agent.
 *  Operation <response: google.protobuf.Empty>
 *
 *  Method: dialogflow.projects.agent.intents.batchDelete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsBatchDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsBatchDeleteWithObject:parent:]

/**
 *  Required. The name of the agent to delete all entities types for. Format:
 *  `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Deletes intents in the specified agent.
 *  Operation <response: google.protobuf.Empty>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteIntentsRequest to include
 *    in the query.
 *  @param parent Required. The name of the agent to delete all entities types
 *    for. Format:
 *    `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsBatchDelete
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchDeleteIntentsRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Updates/Creates multiple intents in the specified agent.
 *  Operation <response: BatchUpdateIntentsResponse>
 *
 *  Method: dialogflow.projects.agent.intents.batchUpdate
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsBatchUpdate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsBatchUpdateWithObject:parent:]

/**
 *  Required. The name of the agent to update or create intents in.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Updates/Creates multiple intents in the specified agent.
 *  Operation <response: BatchUpdateIntentsResponse>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateIntentsRequest to include
 *    in the query.
 *  @param parent Required. The name of the agent to update or create intents
 *    in.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsBatchUpdate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2BatchUpdateIntentsRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Creates an intent in the specified agent.
 *
 *  Method: dialogflow.projects.agent.intents.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsCreateWithObject:parent:]

/**
 *  Optional. The resource view to apply to the returned intent.
 *
 *  Likely values:
 *    @arg @c kGTLRDialogflowIntentViewIntentViewUnspecified Value
 *        "INTENT_VIEW_UNSPECIFIED"
 *    @arg @c kGTLRDialogflowIntentViewIntentViewFull Value "INTENT_VIEW_FULL"
 */
@property(nonatomic, copy, nullable) NSString *intentView;

/**
 *  Optional. The language of training phrases, parameters and rich messages
 *  defined in `intent`. If not specified, the agent's default language is
 *  used. [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required. The agent to create a intent for.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Intent.
 *
 *  Creates an intent in the specified agent.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Intent to include
 *    in the query.
 *  @param parent Required. The agent to create a intent for.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Intent *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified intent.
 *
 *  Method: dialogflow.projects.agent.intents.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsDeleteWithname:]

/**
 *  Required. The name of the intent to delete.
 *  Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified intent.
 *
 *  @param name Required. The name of the intent to delete.
 *    Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Retrieves the specified intent.
 *
 *  Method: dialogflow.projects.agent.intents.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsGetWithname:]

/**
 *  Optional. The resource view to apply to the returned intent.
 *
 *  Likely values:
 *    @arg @c kGTLRDialogflowIntentViewIntentViewUnspecified Value
 *        "INTENT_VIEW_UNSPECIFIED"
 *    @arg @c kGTLRDialogflowIntentViewIntentViewFull Value "INTENT_VIEW_FULL"
 */
@property(nonatomic, copy, nullable) NSString *intentView;

/**
 *  Optional. The language to retrieve training phrases, parameters and rich
 *  messages for. If not specified, the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required. The name of the intent.
 *  Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Intent.
 *
 *  Retrieves the specified intent.
 *
 *  @param name Required. The name of the intent.
 *    Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all intents in the specified agent.
 *
 *  Method: dialogflow.projects.agent.intents.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsListWithparent:]

/**
 *  Optional. The resource view to apply to the returned intent.
 *
 *  Likely values:
 *    @arg @c kGTLRDialogflowIntentViewIntentViewUnspecified Value
 *        "INTENT_VIEW_UNSPECIFIED"
 *    @arg @c kGTLRDialogflowIntentViewIntentViewFull Value "INTENT_VIEW_FULL"
 */
@property(nonatomic, copy, nullable) NSString *intentView;

/**
 *  Optional. The language to list training phrases, parameters and rich
 *  messages for. If not specified, the agent's default language is used.
 *  [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The agent to list all intents from.
 *  Format: `projects/<Project ID>/agent`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2ListIntentsResponse.
 *
 *  Returns the list of all intents in the specified agent.
 *
 *  @param parent Required. The agent to list all intents from.
 *    Format: `projects/<Project ID>/agent`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified intent.
 *
 *  Method: dialogflow.projects.agent.intents.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentIntentsPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentIntentsPatchWithObject:name:]

/**
 *  Optional. The resource view to apply to the returned intent.
 *
 *  Likely values:
 *    @arg @c kGTLRDialogflowIntentViewIntentViewUnspecified Value
 *        "INTENT_VIEW_UNSPECIFIED"
 *    @arg @c kGTLRDialogflowIntentViewIntentViewFull Value "INTENT_VIEW_FULL"
 */
@property(nonatomic, copy, nullable) NSString *intentView;

/**
 *  Optional. The language of training phrases, parameters and rich messages
 *  defined in `intent`. If not specified, the agent's default language is
 *  used. [More than a dozen
 *  languages](https://dialogflow.com/docs/reference/language) are supported.
 *  Note: languages must be enabled in the agent, before they can be used.
 */
@property(nonatomic, copy, nullable) NSString *languageCode;

/**
 *  Required for all methods except `create` (`create` populates the name
 *  automatically.
 *  The unique identifier of this intent.
 *  Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Intent.
 *
 *  Updates the specified intent.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Intent to include
 *    in the query.
 *  @param name Required for all methods except `create` (`create` populates the
 *    name
 *    automatically.
 *    The unique identifier of this intent.
 *    Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentIntentsPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Intent *)object
                           name:(NSString *)name;

@end

/**
 *  Restores the specified agent from a ZIP file.
 *  Replaces the current agent version with a new one. All the intents and
 *  entity types in the older version are deleted.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.restore
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRestore : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRestoreWithObject:parent:]

/**
 *  Required. The project that the agent to restore is associated with.
 *  Format: `projects/<Project ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Restores the specified agent from a ZIP file.
 *  Replaces the current agent version with a new one. All the intents and
 *  entity types in the older version are deleted.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2RestoreAgentRequest to include in
 *    the query.
 *  @param parent Required. The project that the agent to restore is associated
 *    with.
 *    Format: `projects/<Project ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRestore
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2RestoreAgentRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Creates a context.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.contexts.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsContextsCreateWithObject:parent:]

/**
 *  Required. The session to create a context for.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Creates a context.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Context to
 *    include in the query.
 *  @param parent Required. The session to create a context for.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Context *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified context.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.contexts.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsContextsDeleteWithname:]

/**
 *  Required. The name of the context to delete. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *  or `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are under
 *  construction and will
 *  be available soon. If <Runtime ID> is not specified, we assume default
 *  'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified context.
 *
 *  @param name Required. The name of the context to delete. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *    or `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are
 *    under construction and will
 *    be available soon. If <Runtime ID> is not specified, we assume default
 *    'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Retrieves the specified context.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.contexts.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsContextsGetWithname:]

/**
 *  Required. The name of the context. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *  or `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are under
 *  construction and will
 *  be available soon. If <Runtime ID> is not specified, we assume default
 *  'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Retrieves the specified context.
 *
 *  @param name Required. The name of the context. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *    or `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are
 *    under construction and will
 *    be available soon. If <Runtime ID> is not specified, we assume default
 *    'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all contexts in the specified session.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.contexts.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsContextsListWithparent:]

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The session to list all contexts from.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2ListContextsResponse.
 *
 *  Returns the list of all contexts in the specified session.
 *
 *  @param parent Required. The session to list all contexts from.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified context.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.contexts.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsContextsPatchWithObject:name:]

/**
 *  Required. The unique identifier of the context. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`,
 *  or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  The Context ID is always converted to lowercase.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Updates the specified context.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Context to
 *    include in the query.
 *  @param name Required. The unique identifier of the context. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`,
 *    or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    The Context ID is always converted to lowercase.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsContextsPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Context *)object
                           name:(NSString *)name;

@end

/**
 *  Deletes all active contexts in the specified session.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.deleteContexts
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsDeleteContexts : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsDeleteContextsWithparent:]

/**
 *  Required. The name of the session to delete all contexts from. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project 
 ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are
 *  under construction and will be available soon. If <Runtime ID> is not
 *  specified we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes all active contexts in the specified session.
 *
 *  @param parent Required. The name of the session to delete all contexts from.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project 
 ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>`. Note: Runtimes are
 *    under construction and will be available soon. If <Runtime ID> is not
 *    specified we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsDeleteContexts
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Processes a natural language query and returns structured, actionable data
 *  as a result. This method is not idempotent, because it may cause contexts
 *  and session entity types to be updated, which in turn might affect
 *  results of future queries.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.detectIntent
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsDetectIntent : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsDetectIntentWithObject:session:]

/**
 *  Required. The name of the session this query is sent to. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>`, or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *  It's up to the API caller to choose an appropriate session ID. It can be
 *  a random number or some type of user identifier (preferably hashed).
 *  The length of the session ID must not exceed 36 bytes.
 */
@property(nonatomic, copy, nullable) NSString *session;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentResponse.
 *
 *  Processes a natural language query and returns structured, actionable data
 *  as a result. This method is not idempotent, because it may cause contexts
 *  and session entity types to be updated, which in turn might affect
 *  results of future queries.
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentRequest to include in
 *    the query.
 *  @param session Required. The name of the session this query is sent to.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>`, or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *    It's up to the API caller to choose an appropriate session ID. It can be
 *    a random number or some type of user identifier (preferably hashed).
 *    The length of the session ID must not exceed 36 bytes.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsDetectIntent
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentRequest *)object
                        session:(NSString *)session;

@end

/**
 *  Creates a session entity type.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.entityTypes.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsEntityTypesCreateWithObject:parent:]

/**
 *  Required. The session to create a session entity type for.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Creates a session entity type.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType
 *    to include in the query.
 *  @param parent Required. The session to create a session entity type for.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.entityTypes.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsEntityTypesDeleteWithname:]

/**
 *  Required. The name of the entity type to delete. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *  Runtimes are under construction and will be available soon. If <Runtime ID>
 *  is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified session entity type.
 *
 *  @param name Required. The name of the entity type to delete. Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *    Runtimes are under construction and will be available soon. If
 *    <Runtime ID>
 *    is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Retrieves the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.entityTypes.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsEntityTypesGetWithname:]

/**
 *  Required. The name of the session entity type. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *  Runtimes are under construction and will be available soon. If <Runtime ID>
 *  is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Retrieves the specified session entity type.
 *
 *  @param name Required. The name of the session entity type. Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *    Runtimes are under construction and will be available soon. If
 *    <Runtime ID>
 *    is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all session entity types in the specified session.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.entityTypes.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsEntityTypesListWithparent:]

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The session to list all session entity types from.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c
 *  GTLRDialogflow_GoogleCloudDialogflowV2ListSessionEntityTypesResponse.
 *
 *  Returns the list of all session entity types in the specified session.
 *
 *  @param parent Required. The session to list all session entity types from.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.runtimes.sessions.entityTypes.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentRuntimesSessionsEntityTypesPatchWithObject:name:]

/**
 *  Required. The unique identifier of this session entity type. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>`, or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>sessions/<Session 
 ID>/entityTypes/<Entity Type Display Name>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Updates the specified session entity type.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType
 *    to include in the query.
 *  @param name Required. The unique identifier of this session entity type.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>`, or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>sessions/<Session 
 ID>/entityTypes/<Entity Type Display Name>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentRuntimesSessionsEntityTypesPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType *)object
                           name:(NSString *)name;

@end

/**
 *  Returns the list of agents.
 *  Since there is at most one conversational agent per project, this method is
 *  useful primarily for listing all agents across projects the caller has
 *  access to. One can achieve that with a wildcard project collection id "-".
 *  Refer to [List
 *  Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
 *
 *  Method: dialogflow.projects.agent.search
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSearch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSearchWithparent:]

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The project to list agents from.
 *  Format: `projects/<Project ID or '-'>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SearchAgentsResponse.
 *
 *  Returns the list of agents.
 *  Since there is at most one conversational agent per project, this method is
 *  useful primarily for listing all agents across projects the caller has
 *  access to. One can achieve that with a wildcard project collection id "-".
 *  Refer to [List
 *  Sub-Collections](https://cloud.google.com/apis/design/design_patterns#list_sub-collections).
 *
 *  @param parent Required. The project to list agents from.
 *    Format: `projects/<Project ID or '-'>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSearch
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Creates a context.
 *
 *  Method: dialogflow.projects.agent.sessions.contexts.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsContextsCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsContextsCreateWithObject:parent:]

/**
 *  Required. The session to create a context for.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Creates a context.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Context to
 *    include in the query.
 *  @param parent Required. The session to create a context for.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsContextsCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Context *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified context.
 *
 *  Method: dialogflow.projects.agent.sessions.contexts.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsContextsDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsContextsDeleteWithname:]

/**
 *  Required. The name of the context to delete. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *  or `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are under
 *  construction and will
 *  be available soon. If <Runtime ID> is not specified, we assume default
 *  'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified context.
 *
 *  @param name Required. The name of the context to delete. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *    or `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are
 *    under construction and will
 *    be available soon. If <Runtime ID> is not specified, we assume default
 *    'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsContextsDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Retrieves the specified context.
 *
 *  Method: dialogflow.projects.agent.sessions.contexts.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsContextsGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsContextsGetWithname:]

/**
 *  Required. The name of the context. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *  or `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are under
 *  construction and will
 *  be available soon. If <Runtime ID> is not specified, we assume default
 *  'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Retrieves the specified context.
 *
 *  @param name Required. The name of the context. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`
 *    or `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`. Note: Runtimes are
 *    under construction and will
 *    be available soon. If <Runtime ID> is not specified, we assume default
 *    'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsContextsGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all contexts in the specified session.
 *
 *  Method: dialogflow.projects.agent.sessions.contexts.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsContextsList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsContextsListWithparent:]

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The session to list all contexts from.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2ListContextsResponse.
 *
 *  Returns the list of all contexts in the specified session.
 *
 *  @param parent Required. The session to list all contexts from.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsContextsList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified context.
 *
 *  Method: dialogflow.projects.agent.sessions.contexts.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsContextsPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsContextsPatchWithObject:name:]

/**
 *  Required. The unique identifier of the context. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`,
 *  or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session 
 ID>/contexts/<Context ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  The Context ID is always converted to lowercase.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Context.
 *
 *  Updates the specified context.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2Context to
 *    include in the query.
 *  @param name Required. The unique identifier of the context. Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>/contexts/<Context ID>`,
 *    or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session 
 ID>/contexts/<Context ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    The Context ID is always converted to lowercase.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsContextsPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2Context *)object
                           name:(NSString *)name;

@end

/**
 *  Deletes all active contexts in the specified session.
 *
 *  Method: dialogflow.projects.agent.sessions.deleteContexts
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsDeleteContexts : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsDeleteContextsWithparent:]

/**
 *  Required. The name of the session to delete all contexts from. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project 
 ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are
 *  under construction and will be available soon. If <Runtime ID> is not
 *  specified we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes all active contexts in the specified session.
 *
 *  @param parent Required. The name of the session to delete all contexts from.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project 
 ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>`. Note: Runtimes are
 *    under construction and will be available soon. If <Runtime ID> is not
 *    specified we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsDeleteContexts
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Processes a natural language query and returns structured, actionable data
 *  as a result. This method is not idempotent, because it may cause contexts
 *  and session entity types to be updated, which in turn might affect
 *  results of future queries.
 *
 *  Method: dialogflow.projects.agent.sessions.detectIntent
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsDetectIntent : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsDetectIntentWithObject:session:]

/**
 *  Required. The name of the session this query is sent to. Format:
 *  `projects/<Project ID>/agent/sessions/<Session ID>`, or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *  It's up to the API caller to choose an appropriate session ID. It can be
 *  a random number or some type of user identifier (preferably hashed).
 *  The length of the session ID must not exceed 36 bytes.
 */
@property(nonatomic, copy, nullable) NSString *session;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentResponse.
 *
 *  Processes a natural language query and returns structured, actionable data
 *  as a result. This method is not idempotent, because it may cause contexts
 *  and session entity types to be updated, which in turn might affect
 *  results of future queries.
 *
 *  @param object The @c
 *    GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentRequest to include in
 *    the query.
 *  @param session Required. The name of the session this query is sent to.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session ID>`, or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *    It's up to the API caller to choose an appropriate session ID. It can be
 *    a random number or some type of user identifier (preferably hashed).
 *    The length of the session ID must not exceed 36 bytes.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsDetectIntent
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2DetectIntentRequest *)object
                        session:(NSString *)session;

@end

/**
 *  Creates a session entity type.
 *
 *  Method: dialogflow.projects.agent.sessions.entityTypes.create
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesCreate : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsEntityTypesCreateWithObject:parent:]

/**
 *  Required. The session to create a session entity type for.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Creates a session entity type.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType
 *    to include in the query.
 *  @param parent Required. The session to create a session entity type for.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesCreate
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType *)object
                         parent:(NSString *)parent;

@end

/**
 *  Deletes the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.sessions.entityTypes.delete
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesDelete : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsEntityTypesDeleteWithname:]

/**
 *  Required. The name of the entity type to delete. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *  Runtimes are under construction and will be available soon. If <Runtime ID>
 *  is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleProtobufEmpty.
 *
 *  Deletes the specified session entity type.
 *
 *  @param name Required. The name of the entity type to delete. Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *    Runtimes are under construction and will be available soon. If
 *    <Runtime ID>
 *    is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesDelete
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Retrieves the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.sessions.entityTypes.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsEntityTypesGetWithname:]

/**
 *  Required. The name of the session entity type. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *  Runtimes are under construction and will be available soon. If <Runtime ID>
 *  is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Retrieves the specified session entity type.
 *
 *  @param name Required. The name of the session entity type. Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>/sessions/<Session ID>/entityTypes/<Entity Type Display Name>`. Note:
 *    Runtimes are under construction and will be available soon. If
 *    <Runtime ID>
 *    is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

/**
 *  Returns the list of all session entity types in the specified session.
 *
 *  Method: dialogflow.projects.agent.sessions.entityTypes.list
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesList : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsEntityTypesListWithparent:]

/**
 *  Optional. The maximum number of items to return in a single page. By
 *  default 100 and at most 1000.
 */
@property(nonatomic, assign) NSInteger pageSize;

/**
 *  Optional. The next_page_token value returned from a previous list request.
 */
@property(nonatomic, copy, nullable) NSString *pageToken;

/**
 *  Required. The session to list all session entity types from.
 *  Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *  `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c
 *  GTLRDialogflow_GoogleCloudDialogflowV2ListSessionEntityTypesResponse.
 *
 *  Returns the list of all session entity types in the specified session.
 *
 *  @param parent Required. The session to list all session entity types from.
 *    Format: `projects/<Project ID>/agent/sessions/<Session ID>` or
 *    `projects/<Project ID>/agent/runtimes/<Runtime ID>/sessions/<Session ID>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesList
 *
 *  @note Automatic pagination will be done when @c shouldFetchNextPages is
 *        enabled. See @c shouldFetchNextPages on @c GTLRService for more
 *        information.
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Updates the specified session entity type.
 *
 *  Method: dialogflow.projects.agent.sessions.entityTypes.patch
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesPatch : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentSessionsEntityTypesPatchWithObject:name:]

/**
 *  Required. The unique identifier of this session entity type. Format:
 *  `projects/<Project ID>/agent/sessions/<Session
 *  ID>/entityTypes/<Entity Type 
 Display Name>`, or
 *  `projects/<Project ID>/agent/runtimes/<Runtime
 *  ID>sessions/<Session 
 ID>/entityTypes/<Entity Type Display Name>`.
 *  Note: Runtimes are under construction and will be available soon.
 *  If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Optional. The mask to control which fields get updated.
 *
 *  String format is a comma-separated list of fields.
 */
@property(nonatomic, copy, nullable) NSString *updateMask;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType.
 *
 *  Updates the specified session entity type.
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType
 *    to include in the query.
 *  @param name Required. The unique identifier of this session entity type.
 *    Format:
 *    `projects/<Project ID>/agent/sessions/<Session
 *    ID>/entityTypes/<Entity Type 
 Display Name>`, or
 *    `projects/<Project ID>/agent/runtimes/<Runtime
 *    ID>sessions/<Session 
 ID>/entityTypes/<Entity Type Display Name>`.
 *    Note: Runtimes are under construction and will be available soon.
 *    If <Runtime ID> is not specified, we assume default 'sandbox' runtime.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentSessionsEntityTypesPatch
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2SessionEntityType *)object
                           name:(NSString *)name;

@end

/**
 *  Trains the specified agent.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  Method: dialogflow.projects.agent.train
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsAgentTrain : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsAgentTrainWithObject:parent:]

/**
 *  Required. The project that the agent to train is associated with.
 *  Format: `projects/<Project ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Trains the specified agent.
 *  Operation
 *  <response: google.protobuf.Empty, 
            metadata: google.protobuf.Struct>
 *
 *  @param object The @c GTLRDialogflow_GoogleCloudDialogflowV2TrainAgentRequest
 *    to include in the query.
 *  @param parent Required. The project that the agent to train is associated
 *    with.
 *    Format: `projects/<Project ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsAgentTrain
 */
+ (instancetype)queryWithObject:(GTLRDialogflow_GoogleCloudDialogflowV2TrainAgentRequest *)object
                         parent:(NSString *)parent;

@end

/**
 *  Retrieves the specified agent.
 *
 *  Method: dialogflow.projects.getAgent
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsGetAgent : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsGetAgentWithparent:]

/**
 *  Required. The project that the agent to fetch is associated with.
 *  Format: `projects/<Project ID>`.
 */
@property(nonatomic, copy, nullable) NSString *parent;

/**
 *  Fetches a @c GTLRDialogflow_GoogleCloudDialogflowV2Agent.
 *
 *  Retrieves the specified agent.
 *
 *  @param parent Required. The project that the agent to fetch is associated
 *    with.
 *    Format: `projects/<Project ID>`.
 *
 *  @returns GTLRDialogflowQuery_ProjectsGetAgent
 */
+ (instancetype)queryWithParent:(NSString *)parent;

@end

/**
 *  Gets the latest state of a long-running operation. Clients can use this
 *  method to poll the operation result at intervals as recommended by the API
 *  service.
 *
 *  Method: dialogflow.projects.operations.get
 *
 *  Authorization scope(s):
 *    @c kGTLRAuthScopeDialogflowCloudPlatform
 */
@interface GTLRDialogflowQuery_ProjectsOperationsGet : GTLRDialogflowQuery
// Previous library name was
//   +[GTLQueryDialogflow queryForProjectsOperationsGetWithname:]

/** The name of the operation resource. */
@property(nonatomic, copy, nullable) NSString *name;

/**
 *  Fetches a @c GTLRDialogflow_GoogleLongrunningOperation.
 *
 *  Gets the latest state of a long-running operation. Clients can use this
 *  method to poll the operation result at intervals as recommended by the API
 *  service.
 *
 *  @param name The name of the operation resource.
 *
 *  @returns GTLRDialogflowQuery_ProjectsOperationsGet
 */
+ (instancetype)queryWithName:(NSString *)name;

@end

NS_ASSUME_NONNULL_END

#pragma clang diagnostic pop
