blob: 7bea716cb9a87e7cf07d953190d1be8201b2e8d7 [file] [edit]
// Copyright 2021 Google LLC
//
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file or at
// https://developers.google.com/open-source/licenses/bsd
// This is a generated file (see the discoveryapis_generator project).
// ignore_for_file: camel_case_types
// ignore_for_file: comment_references
// ignore_for_file: deprecated_member_use_from_same_package
// ignore_for_file: doc_directive_unknown
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: prefer_interpolation_to_compose_strings
// ignore_for_file: unintended_html_in_doc_comment
// ignore_for_file: unnecessary_brace_in_string_interps
// ignore_for_file: unnecessary_lambdas
// ignore_for_file: unnecessary_string_interpolations
/// Contact Center AI Insights API - v1
///
/// For more information, see
/// <https://cloud.google.com/contact-center/insights/docs>
///
/// Create an instance of [ContactcenterinsightsApi] to access these resources:
///
/// - [ProjectsResource]
/// - [ProjectsLocationsResource]
/// - [ProjectsLocationsAnalysisRulesResource]
/// - [ProjectsLocationsAssessmentRulesResource]
/// - [ProjectsLocationsAuthorizedViewSetsResource]
/// - [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsResource]
/// - [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsResource]
/// -
/// [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsResource]
/// -
/// [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsNotesResource]
/// -
/// [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsFeedbackLabelsResource]
/// - [ProjectsLocationsAuthorizedViewSetsAuthorizedViewsOperationsResource]
/// - [ProjectsLocationsAutoLabelingRulesResource]
/// - [ProjectsLocationsConversationsResource]
/// - [ProjectsLocationsConversationsAnalysesResource]
/// - [ProjectsLocationsConversationsAssessmentsResource]
/// - [ProjectsLocationsConversationsAssessmentsNotesResource]
/// - [ProjectsLocationsConversationsFeedbackLabelsResource]
/// - [ProjectsLocationsConversationsSegmentsResource]
/// - [ProjectsLocationsDashboardsResource]
/// - [ProjectsLocationsDashboardsChartsResource]
/// - [ProjectsLocationsDatasetsResource]
/// - [ProjectsLocationsDatasetsConversationsResource]
/// - [ProjectsLocationsDatasetsConversationsFeedbackLabelsResource]
/// - [ProjectsLocationsDatasetsInsightsdataResource]
/// - [ProjectsLocationsDiagnosticsResource]
/// - [ProjectsLocationsEncryptionSpecResource]
/// - [ProjectsLocationsInsightsdataResource]
/// - [ProjectsLocationsIssueModelsResource]
/// - [ProjectsLocationsIssueModelsIssuesResource]
/// - [ProjectsLocationsOperationsResource]
/// - [ProjectsLocationsPhraseMatchersResource]
/// - [ProjectsLocationsQaQuestionTagsResource]
/// - [ProjectsLocationsQaScorecardsResource]
/// - [ProjectsLocationsQaScorecardsRevisionsResource]
/// - [ProjectsLocationsQaScorecardsRevisionsQaQuestionsResource]
/// - [ProjectsLocationsViewsResource]
library;
import 'dart:async' as async;
import 'dart:convert' as convert;
import 'dart:core' as core;
import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons;
import 'package:http/http.dart' as http;
import '../shared.dart';
import '../src/user_agent.dart';
export 'package:_discoveryapis_commons/_discoveryapis_commons.dart'
show ApiRequestError, DetailedApiRequestError;
class ContactcenterinsightsApi {
/// See, edit, configure, and delete your Google Cloud data and see the email
/// address for your Google Account.
static const cloudPlatformScope =
'https://www.googleapis.com/auth/cloud-platform';
final commons.ApiRequester _requester;
ProjectsResource get projects => ProjectsResource(_requester);
ContactcenterinsightsApi(
http.Client client, {
core.String rootUrl = 'https://contactcenterinsights.googleapis.com/',
core.String servicePath = '',
}) : _requester = commons.ApiRequester(
client,
rootUrl,
servicePath,
requestHeaders,
);
}
class ProjectsResource {
final commons.ApiRequester _requester;
ProjectsLocationsResource get locations =>
ProjectsLocationsResource(_requester);
ProjectsResource(commons.ApiRequester client) : _requester = client;
}
class ProjectsLocationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAnalysisRulesResource get analysisRules =>
ProjectsLocationsAnalysisRulesResource(_requester);
ProjectsLocationsAssessmentRulesResource get assessmentRules =>
ProjectsLocationsAssessmentRulesResource(_requester);
ProjectsLocationsAuthorizedViewSetsResource get authorizedViewSets =>
ProjectsLocationsAuthorizedViewSetsResource(_requester);
ProjectsLocationsAutoLabelingRulesResource get autoLabelingRules =>
ProjectsLocationsAutoLabelingRulesResource(_requester);
ProjectsLocationsConversationsResource get conversations =>
ProjectsLocationsConversationsResource(_requester);
ProjectsLocationsDashboardsResource get dashboards =>
ProjectsLocationsDashboardsResource(_requester);
ProjectsLocationsDatasetsResource get datasets =>
ProjectsLocationsDatasetsResource(_requester);
ProjectsLocationsDiagnosticsResource get diagnostics =>
ProjectsLocationsDiagnosticsResource(_requester);
ProjectsLocationsEncryptionSpecResource get encryptionSpec =>
ProjectsLocationsEncryptionSpecResource(_requester);
ProjectsLocationsInsightsdataResource get insightsdata =>
ProjectsLocationsInsightsdataResource(_requester);
ProjectsLocationsIssueModelsResource get issueModels =>
ProjectsLocationsIssueModelsResource(_requester);
ProjectsLocationsOperationsResource get operations =>
ProjectsLocationsOperationsResource(_requester);
ProjectsLocationsPhraseMatchersResource get phraseMatchers =>
ProjectsLocationsPhraseMatchersResource(_requester);
ProjectsLocationsQaQuestionTagsResource get qaQuestionTags =>
ProjectsLocationsQaQuestionTagsResource(_requester);
ProjectsLocationsQaScorecardsResource get qaScorecards =>
ProjectsLocationsQaScorecardsResource(_requester);
ProjectsLocationsViewsResource get views =>
ProjectsLocationsViewsResource(_requester);
ProjectsLocationsResource(commons.ApiRequester client) : _requester = client;
/// Delete feedback labels in bulk using a filter.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDeleteFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkDeleteFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkDeleteFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Download feedback labels in bulk from an external source.
///
/// Currently supports exporting Quality AI example conversations with
/// transcripts and question bodies.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDownloadFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkDownloadFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Upload feedback labels from an external source in bulk.
///
/// Currently supports labeling Quality AI example conversations.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkUploadFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkUploadFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Analyzes conversation data using specialized agentic workflows, such as
/// ReAct, to diagnose issues and provide insights.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource where the analysis will be
/// performed.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> diagnoseConversations(
GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':diagnoseConversations';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Natural language based Insights which powers the next generation of
/// dashboards in Insights.
///
/// Next generation of QueryMetrics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location of the data.
/// "projects/{project}/locations/{location}"
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> generativeInsights(
GoogleCloudContactcenterinsightsV1GenerativeInsightsRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$location') + ':generativeInsights';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets correlation config.
///
/// Request parameters:
///
/// [name] - Required. The name of the correlation config resource to get.
/// Format: projects/{project}/locations/{location}/correlationConfig
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/correlationConfig$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1CorrelationConfig].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1CorrelationConfig>
getCorrelationConfig(core.String name, {core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CorrelationConfig.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets location-level encryption key specification.
///
/// Request parameters:
///
/// [name] - Required. The name of the encryption spec resource to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/encryptionSpec$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1EncryptionSpec].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1EncryptionSpec>
getEncryptionSpec(core.String name, {core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1EncryptionSpec.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets project-level settings.
///
/// Request parameters:
///
/// [name] - Required. The name of the settings resource to get.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+/settings$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Settings].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Settings> getSettings(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Settings.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List all feedback labels by project number.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of all feedback labels per
/// project.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset in
/// the entire project. Supports disjunctions (OR) and conjunctions (AND).
/// Supported fields: * `issue_model_id` * `qa_question_id` *
/// `min_create_time` * `max_create_time` * `min_update_time` *
/// `max_update_time` * `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// [pageSize] - Optional. The maximum number of feedback labels to return in
/// the response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAllFeedbackLabelsResponse`. This value indicates that this is a
/// continuation of a prior `ListAllFeedbackLabels` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse>
listAllFeedbackLabels(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':listAllFeedbackLabels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Query metrics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location of the data.
/// "projects/{project}/locations/{location}"
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> queryMetrics(
GoogleCloudContactcenterinsightsV1QueryMetricsRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$location') + ':queryMetrics';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Generates a summary of predefined performance metrics for a set of
/// conversations.
///
/// Conversations can be specified by specifying a time window and an agent
/// id, for now. The summary includes a comparison of metrics computed for
/// conversations in the previous time period, and also a comparison with
/// peers in the same time period.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversations to derive
/// performance stats from. "projects/{project}/locations/{location}"
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> queryPerformanceOverview(
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':queryPerformanceOverview';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Tests correlation config on a conversation.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location to test correlation config. Format:
/// projects/{project}/locations/{location}
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> testCorrelationConfig(
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$location') + ':testCorrelationConfig';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates correlation config.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. Identifier. The resource name of the correlation
/// config. Format: projects/{project}/locations/{location}/correlationConfig
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/correlationConfig$`.
///
/// [updateMask] - Optional. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1CorrelationConfig].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1CorrelationConfig>
updateCorrelationConfig(
GoogleCloudContactcenterinsightsV1CorrelationConfig request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CorrelationConfig.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates project-level settings.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the settings resource. Format:
/// projects/{project}/locations/{location}/settings
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+/settings$`.
///
/// [updateMask] - Required. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Settings].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Settings> updateSettings(
GoogleCloudContactcenterinsightsV1Settings request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Settings.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAnalysisRulesResource {
final commons.ApiRequester _requester;
ProjectsLocationsAnalysisRulesResource(commons.ApiRequester client)
: _requester = client;
/// Creates a analysis rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the analysis rule. Required.
/// The location to create a analysis rule for. Format: `projects//locations/`
/// or `projects//locations/`
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AnalysisRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AnalysisRule> create(
GoogleCloudContactcenterinsightsV1AnalysisRule request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/analysisRules';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AnalysisRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a analysis rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the analysis rule to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/analysisRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get a analysis rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the AnalysisRule to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/analysisRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AnalysisRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AnalysisRule> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AnalysisRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists analysis rules.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the analysis rules.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of analysis rule to return in
/// the response. If this value is zero, the service will select a default
/// size. A call may return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAnalysisRulesResponse`; indicates that this is a continuation of a
/// prior `ListAnalysisRules` call and the system should return the next page
/// of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse>
list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/analysisRules';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a analysis rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the analysis rule. Format:
/// projects/{project}/locations/{location}/analysisRules/{analysis_rule}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/analysisRules/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. If the
/// update_mask is not provided, the update will be applied to all fields.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AnalysisRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AnalysisRule> patch(
GoogleCloudContactcenterinsightsV1AnalysisRule request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AnalysisRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAssessmentRulesResource {
final commons.ApiRequester _requester;
ProjectsLocationsAssessmentRulesResource(commons.ApiRequester client)
: _requester = client;
/// Creates an assessment rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessment rule. Required.
/// The location to create a assessment rule for. Format:
/// `projects//locations/` or `projects//locations/`
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [assessmentRuleId] - Optional. A unique ID for the new AssessmentRule.
/// This ID will become the final component of the AssessmentRule's resource
/// name. If no ID is specified, a server-generated ID will be used. This
/// value should be 4-64 characters and must match the regular expression
/// `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AssessmentRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AssessmentRule> create(
GoogleCloudContactcenterinsightsV1AssessmentRule request,
core.String parent, {
core.String? assessmentRuleId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'assessmentRuleId': ?assessmentRuleId == null ? null : [assessmentRuleId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessmentRules';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AssessmentRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an assessment rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment rule to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/assessmentRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get an assessment rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment rule to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/assessmentRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AssessmentRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AssessmentRule> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AssessmentRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists assessment rules.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessment rules.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of assessment rule to return in
/// the response. If this value is zero, the service will select a default
/// size. A call may return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAssessmentRulesResponse`; indicates that this is a continuation of a
/// prior `ListAssessmentRules` call and the system should return the next
/// page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse>
list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessmentRules';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an assessment rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the assessment rule. Format:
/// projects/{project}/locations/{location}/assessmentRules/{assessment_rule}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/assessmentRules/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. If the
/// update_mask is not provided, the update will be applied to all fields.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AssessmentRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AssessmentRule> patch(
GoogleCloudContactcenterinsightsV1AssessmentRule request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AssessmentRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsResource
get authorizedViews =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsResource(_requester);
ProjectsLocationsAuthorizedViewSetsResource(commons.ApiRequester client)
: _requester = client;
/// Create AuthorizedViewSet
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the AuthorizedViewSet.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [authorizedViewSetId] - Optional. A unique ID for the new
/// AuthorizedViewSet. This ID will become the final component of the
/// AuthorizedViewSet's resource name. If no ID is specified, a
/// server-generated ID will be used. This value should be 4-64 characters and
/// must match the regular expression `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. See
/// https://google.aip.dev/122#resource-id-segments
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedViewSet].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedViewSet> create(
GoogleCloudContactcenterinsightsV1AuthorizedViewSet request,
core.String parent, {
core.String? authorizedViewSetId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'authorizedViewSetId': ?authorizedViewSetId == null
? null
: [authorizedViewSetId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/authorizedViewSets';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedViewSet.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an AuthorizedViewSet.
///
/// Request parameters:
///
/// [name] - Required. The name of the AuthorizedViewSet to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [force] - Optional. If set to true, all of this AuthorizedViewSet's child
/// resources will also be deleted. Otherwise, the request will only succeed
/// if it has none.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get AuthorizedViewSet
///
/// Request parameters:
///
/// [name] - Required. The name of the AuthorizedViewSet to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedViewSet].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedViewSet> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedViewSet.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List AuthorizedViewSets
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the AuthorizedViewSets.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. The filter expression to filter authorized view sets
/// listed in the response.
///
/// [orderBy] - Optional. The order by expression to order authorized view
/// sets listed in the response.
///
/// [pageSize] - Optional. The maximum number of view sets to return in the
/// response. If the value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAuthorizedViewSetsResponse`. This value indicates that this is a
/// continuation of a prior `ListAuthorizedViewSets` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse>
list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/authorizedViewSets';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an AuthorizedViewSet.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the AuthorizedViewSet. Format:
/// projects/{project}/locations/{location}/authorizedViewSets/{authorized_view_set}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. All possible
/// fields can be updated by passing `*`, or a subset of the following
/// updateable fields can be provided: * `display_name`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedViewSet].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedViewSet> patch(
GoogleCloudContactcenterinsightsV1AuthorizedViewSet request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedViewSet.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsResource
get conversations =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsResource(
_requester,
);
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsOperationsResource
get operations =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsOperationsResource(
_requester,
);
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsResource(
commons.ApiRequester client,
) : _requester = client;
/// Create AuthorizedView
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the AuthorizedView.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [authorizedViewId] - Optional. A unique ID for the new AuthorizedView.
/// This ID will become the final component of the AuthorizedView's resource
/// name. If no ID is specified, a server-generated ID will be used. This
/// value should be 4-64 characters and must match the regular expression
/// `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`. See
/// https://google.aip.dev/122#resource-id-segments
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedView].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedView> create(
GoogleCloudContactcenterinsightsV1AuthorizedView request,
core.String parent, {
core.String? authorizedViewId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'authorizedViewId': ?authorizedViewId == null ? null : [authorizedViewId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/authorizedViews';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an AuthorizedView.
///
/// Request parameters:
///
/// [name] - Required. The name of the AuthorizedView to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Natural language based Insights which powers the next generation of
/// dashboards in Insights.
///
/// Next generation of QueryMetrics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location of the data.
/// "projects/{project}/locations/{location}"
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> generativeInsights(
GoogleCloudContactcenterinsightsV1GenerativeInsightsRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$location') + ':generativeInsights';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get AuthorizedView
///
/// Request parameters:
///
/// [name] - Required. The name of the AuthorizedView to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedView].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedView> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets the access control policy for a resource.
///
/// Returns an empty policy if the resource exists and does not have a policy
/// set.
///
/// Request parameters:
///
/// [resource] - REQUIRED: The resource for which the policy is being
/// requested. See
/// [Resource names](https://cloud.google.com/apis/design/resource_names) for
/// the appropriate value for this field.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [options_requestedPolicyVersion] - Optional. The maximum policy version
/// that will be used to format the policy. Valid values are 0, 1, and 3.
/// Requests specifying an invalid value will be rejected. Requests for
/// policies with any conditional role bindings must specify version 3.
/// Policies with no conditional role bindings may specify any valid value or
/// leave the field unset. The policy in the response might use the policy
/// version that you specified, or it might use a lower policy version. For
/// example, if you specify version 3, but the policy has no conditional role
/// bindings, the response uses version 1. To learn which resources support
/// conditions in their IAM policies, see the
/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleIamV1Policy].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleIamV1Policy> getIamPolicy(
core.String resource, {
core.int? options_requestedPolicyVersion,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'options.requestedPolicyVersion': ?options_requestedPolicyVersion == null
? null
: ['${options_requestedPolicyVersion}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleIamV1Policy.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List AuthorizedViewSets
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the AuthorizedViews. If the
/// parent is set to `-`, all AuthorizedViews under the location will be
/// returned.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [filter] - Optional. The filter expression to filter authorized views
/// listed in the response.
///
/// [orderBy] - Optional. The order by expression to order authorized views
/// listed in the response.
///
/// [pageSize] - Optional. The maximum number of view to return in the
/// response. If the value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAuthorizedViewsResponse`. This value indicates that this is a
/// continuation of a prior `ListAuthorizedViews` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse>
list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/authorizedViews';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an AuthorizedView.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the AuthorizedView. Format:
/// projects/{project}/locations/{location}/authorizedViewSets/{authorized_view_set}/authorizedViews/{authorized_view}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. All possible
/// fields can be updated by passing `*`, or a subset of the following
/// updateable fields can be provided: * `conversation_filter` *
/// `display_name`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AuthorizedView].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AuthorizedView> patch(
GoogleCloudContactcenterinsightsV1AuthorizedView request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Query metrics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location of the data.
/// "projects/{project}/locations/{location}"
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> queryMetrics(
GoogleCloudContactcenterinsightsV1QueryMetricsRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$location') + ':queryMetrics';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Generates a summary of predefined performance metrics for a set of
/// conversations.
///
/// Conversations can be specified by specifying a time window and an agent
/// id, for now. The summary includes a comparison of metrics computed for
/// conversations in the previous time period, and also a comparison with
/// peers in the same time period.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversations to derive
/// performance stats from. "projects/{project}/locations/{location}"
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> queryPerformanceOverview(
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':queryPerformanceOverview';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// SearchAuthorizedViewSets
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the AuthorizedViews. If the
/// parent is set to `-`, all AuthorizedViews under the location will be
/// returned.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+$`.
///
/// [orderBy] - Optional. The order by expression to order authorized views
/// listed in the response.
///
/// [pageSize] - Optional. The maximum number of view to return in the
/// response. If the value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAuthorizedViewsResponse`. This value indicates that this is a
/// continuation of a prior `ListAuthorizedViews` call and that the system
/// should return the next page of data.
///
/// [query] - Optional. The query expression to search authorized views.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse>
search(
core.String parent, {
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? query,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'query': ?query == null ? null : [query],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/authorizedViews:search';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Sets the access control policy on the specified resource.
///
/// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`,
/// and `PERMISSION_DENIED` errors.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [resource] - REQUIRED: The resource for which the policy is being
/// specified. See
/// [Resource names](https://cloud.google.com/apis/design/resource_names) for
/// the appropriate value for this field.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleIamV1Policy].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleIamV1Policy> setIamPolicy(
GoogleIamV1SetIamPolicyRequest request,
core.String resource, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleIamV1Policy.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Returns permissions that a caller has on the specified resource.
///
/// If the resource does not exist, this will return an empty set of
/// permissions, not a `NOT_FOUND` error. Note: This operation is designed to
/// be used for building permission-aware UIs and command-line tools, not for
/// authorization checking. This operation may "fail open" without warning.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [resource] - REQUIRED: The resource for which the policy detail is being
/// requested. See
/// [Resource names](https://cloud.google.com/apis/design/resource_names) for
/// the appropriate value for this field.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleIamV1TestIamPermissionsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleIamV1TestIamPermissionsResponse> testIamPermissions(
GoogleIamV1TestIamPermissionsRequest request,
core.String resource, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$resource') + ':testIamPermissions';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleIamV1TestIamPermissionsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsResource
get assessments =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsResource(
_requester,
);
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsFeedbackLabelsResource
get feedbackLabels =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsFeedbackLabelsResource(
_requester,
);
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsResource(
commons.ApiRequester client,
) : _requester = client;
/// Gets conversation statistics.
///
/// Request parameters:
///
/// [location] - Required. The location of the conversations.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. This field is
/// useful for getting statistics about conversations with specific
/// properties.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1CalculateStatsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1CalculateStatsResponse>
calculateStats(
core.String location, {
core.String? filter,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' +
core.Uri.encodeFull('$location') +
'/conversations:calculateStats';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CalculateStatsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [force] - If set to true, all of this conversation's analyses will also be
/// deleted. Otherwise, the request will only succeed if the conversation has
/// no analyses.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets the signed URI for the audio for the given conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to sign.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<
GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse
>
generateSignedAudio(core.String name, {core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':generateSignedAudio';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [view] - The level of details of the conversation. Default is `FULL`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Conversation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Conversation> get(
core.String name, {
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Conversation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists conversations.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversation.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. Useful for
/// querying conversations with specific properties.
///
/// [orderBy] - Optional. The attribute by which to order conversations in the
/// response. If empty, conversations will be ordered by descending creation
/// time. Supported values are one of the following: * create_time *
/// customer_satisfaction_rating * duration * latest_analysis * start_time *
/// turn_count The default sort order is ascending. To specify order, append
/// `asc` or `desc` (`create_time desc`). For more details, see
/// [Google AIPs Ordering](https://google.aip.dev/132#ordering).
///
/// [pageSize] - The maximum number of conversations to return in the
/// response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - The value returned by the last `ListConversationsResponse`.
/// This value indicates that this is a continuation of a prior
/// `ListConversations` call and that the system should return the next page
/// of data.
///
/// [view] - The level of details of the conversation. Default is `BASIC`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListConversationsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListConversationsResponse>
list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/conversations';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListConversationsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsNotesResource
get notes =>
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsNotesResource(
_requester,
);
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsResource(
commons.ApiRequester client,
) : _requester = client;
/// Appeal an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to appeal.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> appeal(
GoogleCloudContactcenterinsightsV1AppealAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':appeal';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Create Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessment.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> create(
GoogleCloudContactcenterinsightsV1Assessment request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessments';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete an Assessment.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [force] - Optional. If set to true, all of this assessment's notes will
/// also be deleted. Otherwise, the request will only succeed if it has no
/// notes.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Finalize an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to finalize.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> finalize(
GoogleCloudContactcenterinsightsV1FinalizeAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':finalize';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get Assessment.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List Assessments.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessments. To list all
/// assessments in a location, substitute the conversation ID with a '-'
/// character.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supported filters include: * `state` - The state of the assessment *
/// `agent_info.agent_id` - The ID of the agent the assessment is for
///
/// [pageSize] - The maximum number of assessments to list. If zero, the
/// service will select a default size. A call may return fewer objects than
/// requested. A non-empty `next_page_token` in the response indicates that
/// more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAssessmentRulesResponse`; indicates that this is a continuation of a
/// prior `ListAssessmentRules` call and the system should return the next
/// page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAssessmentsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAssessmentsResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessments';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAssessmentsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Publish an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to publish.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> publish(
GoogleCloudContactcenterinsightsV1PublishAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':publish';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsNotesResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsAssessmentsNotesResource(
commons.ApiRequester client,
) : _requester = client;
/// Create Note.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the note.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Note].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Note> create(
GoogleCloudContactcenterinsightsV1Note request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/notes';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Note.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a Note.
///
/// Request parameters:
///
/// [name] - Required. The name of the note to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+/notes/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List Notes.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the notes.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of notes to return in the
/// response. If zero the service will select a default size. A call might
/// return fewer objects than requested. A non-empty `next_page_token` in the
/// response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListNotesResponse`. This value indicates that this is a continuation of a
/// prior `ListNotes` call and that the system should return the next page of
/// data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListNotesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListNotesResponse> list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/notes';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListNotesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Update Note.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the note. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}/notes/{note}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+/notes/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. If the
/// update_mask is empty, all updateable fields will be updated. Acceptable
/// fields include: * `content`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Note].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Note> patch(
GoogleCloudContactcenterinsightsV1Note request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Note.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsFeedbackLabelsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsConversationsFeedbackLabelsResource(
commons.ApiRequester client,
) : _requester = client;
/// Create feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback label.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [feedbackLabelId] - Optional. The ID of the feedback label to create. If
/// one is not specified it will be generated by the server.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> create(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String parent, {
core.String? feedbackLabelId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'feedbackLabelId': ?feedbackLabelId == null ? null : [feedbackLabelId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List feedback labels.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supports disjunctions (OR) and conjunctions (AND). Automatically sorts by
/// conversation ID. To sort by all feedback labels in a project see
/// ListAllFeedbackLabels. Supported fields: * `issue_model_id` *
/// `qa_question_id` * `qa_scorecard_id` * `min_create_time` *
/// `max_create_time` * `min_update_time` * `max_update_time` *
/// `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// [pageSize] - Optional. The maximum number of feedback labels to return in
/// the response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListFeedbackLabelsResponse`. This value indicates that this is a
/// continuation of a prior `ListFeedbackLabels` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse>
list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Update feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. Resource name of the FeedbackLabel. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/feedbackLabels/{feedback_label}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [updateMask] - Required. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> patch(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAuthorizedViewSetsAuthorizedViewsOperationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsAuthorizedViewSetsAuthorizedViewsOperationsResource(
commons.ApiRequester client,
) : _requester = client;
/// Starts asynchronous cancellation on a long-running operation.
///
/// The server makes a best effort to cancel the operation, but success is not
/// guaranteed. If the server doesn't support this method, it returns
/// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation
/// or other methods to check whether the cancellation succeeded or whether
/// the operation completed despite cancellation. On successful cancellation,
/// the operation is not deleted; instead, it becomes an operation with an
/// Operation.error value with a google.rpc.Status.code of `1`, corresponding
/// to `Code.CANCELLED`.
///
/// Request parameters:
///
/// [name] - The name of the operation resource to be cancelled.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/operations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> cancel(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel';
final response_ = await _requester.request(
url_,
'POST',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// 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.
///
/// Request parameters:
///
/// [name] - The name of the operation resource.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+/operations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists operations that match the specified filter in the request.
///
/// If the server doesn't support this method, it returns `UNIMPLEMENTED`.
///
/// Request parameters:
///
/// [name] - The name of the operation's parent resource.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/authorizedViewSets/\[^/\]+/authorizedViews/\[^/\]+$`.
///
/// [filter] - The standard list filter.
///
/// [pageSize] - The standard list page size.
///
/// [pageToken] - The standard list page token.
///
/// [returnPartialSuccess] - When set to `true`, operations that are reachable
/// are returned as normal, and those that are unreachable are returned in the
/// ListOperationsResponse.unreachable field. This can only be `true` when
/// reading across collections. For example, when `parent` is set to
/// `"projects/example/locations/-"`. This field is not supported by default
/// and will result in an `UNIMPLEMENTED` error if set unless explicitly
/// documented otherwise in service or product specific documentation.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningListOperationsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningListOperationsResponse> list(
core.String name, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.bool? returnPartialSuccess,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'returnPartialSuccess': ?returnPartialSuccess == null
? null
: ['${returnPartialSuccess}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleLongrunningListOperationsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsAutoLabelingRulesResource {
final commons.ApiRequester _requester;
ProjectsLocationsAutoLabelingRulesResource(commons.ApiRequester client)
: _requester = client;
/// Creates an auto labeling rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The project and location to create the auto labeling
/// rule in. Format: projects/{project}/locations/{location}
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [autoLabelingRuleId] - Required. The ID to use for the auto labeling rule,
/// which will become the final component of the auto labeling rule's resource
/// name.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AutoLabelingRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AutoLabelingRule> create(
GoogleCloudContactcenterinsightsV1AutoLabelingRule request,
core.String parent, {
core.String? autoLabelingRuleId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'autoLabelingRuleId': ?autoLabelingRuleId == null
? null
: [autoLabelingRuleId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/autoLabelingRules';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an auto labeling rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the auto labeling rule to delete. Format:
/// projects/{project}/locations/{location}/autoLabelingRules/{auto_labeling_rule}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/autoLabelingRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets an auto labeling rule.
///
/// Request parameters:
///
/// [name] - Required. The name of the auto labeling rule to get. Format:
/// projects/{project}/locations/{location}/autoLabelingRules/{auto_labeling_rule}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/autoLabelingRules/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AutoLabelingRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AutoLabelingRule> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists auto labeling rules.
///
/// Request parameters:
///
/// [parent] - Required. The project and location to list auto labeling rules
/// from. Format: projects/{project}/locations/{location}
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of auto labeling rules to return
/// in a single response. If unspecified, at most 100 rules will be returned.
/// The maximum value is 1000; values above 1000 will be coerced to 1000.
///
/// [pageToken] - Optional. The next_page_token value returned from a previous
/// List request, if any.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse>
list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/autoLabelingRules';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an auto labeling rule.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the auto-labeling rule. Format:
/// projects/{project}/locations/{location}/autoLabelingRules/{auto_labeling_rule}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/autoLabelingRules/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1AutoLabelingRule].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1AutoLabelingRule> patch(
GoogleCloudContactcenterinsightsV1AutoLabelingRule request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Tests auto labeling rules against a conversation.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent project and location. Format:
/// projects/{project}/locations/{location}
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse>
test(
GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/autoLabelingRules:test';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsAnalysesResource get analyses =>
ProjectsLocationsConversationsAnalysesResource(_requester);
ProjectsLocationsConversationsAssessmentsResource get assessments =>
ProjectsLocationsConversationsAssessmentsResource(_requester);
ProjectsLocationsConversationsFeedbackLabelsResource get feedbackLabels =>
ProjectsLocationsConversationsFeedbackLabelsResource(_requester);
ProjectsLocationsConversationsSegmentsResource get segments =>
ProjectsLocationsConversationsSegmentsResource(_requester);
ProjectsLocationsConversationsResource(commons.ApiRequester client)
: _requester = client;
/// Analyzes multiple conversations in a single request.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to create analyses in.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkAnalyze(
GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:bulkAnalyze';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes multiple conversations in a single request.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to delete conversations from.
/// Format: projects/{project}/locations/{location}
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDelete(
GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:bulkDelete';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets conversation statistics.
///
/// Request parameters:
///
/// [location] - Required. The location of the conversations.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. This field is
/// useful for getting statistics about conversations with specific
/// properties.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1CalculateStatsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1CalculateStatsResponse>
calculateStats(
core.String location, {
core.String? filter,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' +
core.Uri.encodeFull('$location') +
'/conversations:calculateStats';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CalculateStatsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Creates a conversation.
///
/// Note that this method does not support audio transcription or redaction.
/// Use `conversations.upload` instead.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversation.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [conversationId] - A unique ID for the new conversation. This ID will
/// become the final component of the conversation's resource name. If no ID
/// is specified, a server-generated ID will be used. This value should be
/// 4-64 characters and must match the regular expression `^[a-z0-9-]{4,64}$`.
/// Valid characters are `a-z-`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Conversation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Conversation> create(
GoogleCloudContactcenterinsightsV1Conversation request,
core.String parent, {
core.String? conversationId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'conversationId': ?conversationId == null ? null : [conversationId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/conversations';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Conversation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [force] - If set to true, all of this conversation's analyses will also be
/// deleted. Otherwise, the request will only succeed if the conversation has
/// no analyses.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets the signed URI for the audio for the given conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to sign.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<
GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse
>
generateSignedAudio(core.String name, {core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':generateSignedAudio';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [view] - The level of details of the conversation. Default is `FULL`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Conversation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Conversation> get(
core.String name, {
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Conversation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Imports conversations and processes them according to the user's
/// configuration.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new conversations.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> ingest(
GoogleCloudContactcenterinsightsV1IngestConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:ingest';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists conversations.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversation.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. Useful for
/// querying conversations with specific properties.
///
/// [orderBy] - Optional. The attribute by which to order conversations in the
/// response. If empty, conversations will be ordered by descending creation
/// time. Supported values are one of the following: * create_time *
/// customer_satisfaction_rating * duration * latest_analysis * start_time *
/// turn_count The default sort order is ascending. To specify order, append
/// `asc` or `desc` (`create_time desc`). For more details, see
/// [Google AIPs Ordering](https://google.aip.dev/132#ordering).
///
/// [pageSize] - The maximum number of conversations to return in the
/// response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - The value returned by the last `ListConversationsResponse`.
/// This value indicates that this is a continuation of a prior
/// `ListConversations` call and that the system should return the next page
/// of data.
///
/// [view] - The level of details of the conversation. Default is `BASIC`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListConversationsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListConversationsResponse>
list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/conversations';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListConversationsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a conversation.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the conversation. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [allowMissing] - Optional. Defaults to false. If set to true, and the
/// conversation is not found, a new conversation will be created. In this
/// situation, `update_mask` is ignored.
///
/// [conversationAutoLabelingUpdateConfig_allowAutoLabelingUpdate] - Optional.
/// If set to true, the conversation will be updated with auto labeling
/// results.
///
/// [updateMask] - The list of fields to be updated. All possible fields can
/// be updated by passing `*`, or a subset of the following updateable fields
/// can be provided: * `agent_id` * `language_code` * `labels` * `metadata` *
/// `quality_metadata` * `call_metadata` * `start_time` * `expire_time` or
/// `ttl` * `data_source.gcs_source.audio_uri` or *
/// `data_source.dialogflow_source.audio_uri` *
/// `data_source.screen_recordings`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Conversation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Conversation> patch(
GoogleCloudContactcenterinsightsV1Conversation request,
core.String name, {
core.bool? allowMissing,
core.bool? conversationAutoLabelingUpdateConfig_allowAutoLabelingUpdate,
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'allowMissing': ?allowMissing == null ? null : ['${allowMissing}'],
'conversationAutoLabelingUpdateConfig.allowAutoLabelingUpdate':
?conversationAutoLabelingUpdateConfig_allowAutoLabelingUpdate == null
? null
: ['${conversationAutoLabelingUpdateConfig_allowAutoLabelingUpdate}'],
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Conversation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Samples conversations based on user configuration and handles the sampled
/// conversations for different use cases.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dataset.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> sample(
GoogleCloudContactcenterinsightsV1SampleConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:sample';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Create a long-running conversation upload operation.
///
/// This method differs from `CreateConversation` by allowing audio
/// transcription and optional DLP redaction.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversation.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> upload(
GoogleCloudContactcenterinsightsV1UploadConversationRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:upload';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsAnalysesResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsAnalysesResource(commons.ApiRequester client)
: _requester = client;
/// Creates an analysis.
///
/// The long running operation is done when the analysis has completed.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the analysis.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> create(
GoogleCloudContactcenterinsightsV1Analysis request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/analyses';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an analysis.
///
/// Request parameters:
///
/// [name] - Required. The name of the analysis to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/analyses/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets an analysis.
///
/// Request parameters:
///
/// [name] - Required. The name of the analysis to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/analyses/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Analysis].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Analysis> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Analysis.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists analyses.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the analyses.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. Useful for
/// querying conversations with specific properties.
///
/// [pageSize] - The maximum number of analyses to return in the response. If
/// this value is zero, the service will select a default size. A call might
/// return fewer objects than requested. A non-empty `next_page_token` in the
/// response indicates that more data is available.
///
/// [pageToken] - The value returned by the last `ListAnalysesResponse`;
/// indicates that this is a continuation of a prior `ListAnalyses` call and
/// the system should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListAnalysesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAnalysesResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/analyses';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAnalysesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsAssessmentsResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsAssessmentsNotesResource get notes =>
ProjectsLocationsConversationsAssessmentsNotesResource(_requester);
ProjectsLocationsConversationsAssessmentsResource(commons.ApiRequester client)
: _requester = client;
/// Appeal an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to appeal.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> appeal(
GoogleCloudContactcenterinsightsV1AppealAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':appeal';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Create Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessment.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> create(
GoogleCloudContactcenterinsightsV1Assessment request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessments';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete an Assessment.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [force] - Optional. If set to true, all of this assessment's notes will
/// also be deleted. Otherwise, the request will only succeed if it has no
/// notes.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Finalize an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to finalize.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> finalize(
GoogleCloudContactcenterinsightsV1FinalizeAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':finalize';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get Assessment.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List Assessments.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the assessments. To list all
/// assessments in a location, substitute the conversation ID with a '-'
/// character.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supported filters include: * `state` - The state of the assessment *
/// `agent_info.agent_id` - The ID of the agent the assessment is for
///
/// [pageSize] - The maximum number of assessments to list. If zero, the
/// service will select a default size. A call may return fewer objects than
/// requested. A non-empty `next_page_token` in the response indicates that
/// more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAssessmentRulesResponse`; indicates that this is a continuation of a
/// prior `ListAssessmentRules` call and the system should return the next
/// page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAssessmentsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAssessmentsResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/assessments';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAssessmentsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Publish an Assessment.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the assessment to publish.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Assessment].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Assessment> publish(
GoogleCloudContactcenterinsightsV1PublishAssessmentRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':publish';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Assessment.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsAssessmentsNotesResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsAssessmentsNotesResource(
commons.ApiRequester client,
) : _requester = client;
/// Create Note.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the note.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Note].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Note> create(
GoogleCloudContactcenterinsightsV1Note request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/notes';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Note.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a Note.
///
/// Request parameters:
///
/// [name] - Required. The name of the note to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+/notes/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List Notes.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the notes.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of notes to return in the
/// response. If zero the service will select a default size. A call might
/// return fewer objects than requested. A non-empty `next_page_token` in the
/// response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListNotesResponse`. This value indicates that this is a continuation of a
/// prior `ListNotes` call and that the system should return the next page of
/// data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListNotesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListNotesResponse> list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/notes';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListNotesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Update Note.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the note. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}/notes/{note}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/assessments/\[^/\]+/notes/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. If the
/// update_mask is empty, all updateable fields will be updated. Acceptable
/// fields include: * `content`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Note].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Note> patch(
GoogleCloudContactcenterinsightsV1Note request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Note.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsFeedbackLabelsResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsFeedbackLabelsResource(
commons.ApiRequester client,
) : _requester = client;
/// Create feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback label.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [feedbackLabelId] - Optional. The ID of the feedback label to create. If
/// one is not specified it will be generated by the server.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> create(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String parent, {
core.String? feedbackLabelId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'feedbackLabelId': ?feedbackLabelId == null ? null : [feedbackLabelId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List feedback labels.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supports disjunctions (OR) and conjunctions (AND). Automatically sorts by
/// conversation ID. To sort by all feedback labels in a project see
/// ListAllFeedbackLabels. Supported fields: * `issue_model_id` *
/// `qa_question_id` * `qa_scorecard_id` * `min_create_time` *
/// `max_create_time` * `min_update_time` * `max_update_time` *
/// `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// [pageSize] - Optional. The maximum number of feedback labels to return in
/// the response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListFeedbackLabelsResponse`. This value indicates that this is a
/// continuation of a prior `ListFeedbackLabels` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse>
list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Update feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. Resource name of the FeedbackLabel. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/feedbackLabels/{feedback_label}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [updateMask] - Required. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> patch(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsConversationsSegmentsResource {
final commons.ApiRequester _requester;
ProjectsLocationsConversationsSegmentsResource(commons.ApiRequester client)
: _requester = client;
/// Analyzes multiple conversations in a single request.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to create analyses in.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkAnalyze(
GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/segments:bulkAnalyze';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDashboardsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDashboardsChartsResource get charts =>
ProjectsLocationsDashboardsChartsResource(_requester);
ProjectsLocationsDashboardsResource(commons.ApiRequester client)
: _requester = client;
/// Creates a Dashboard.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dashboard.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [dashboardId] - Optional. A unique ID for the new Dashboard. This ID will
/// become the final component of the Dashboard's resource name. If no ID is
/// specified, a server-generated ID will be used. This value should be 4-64
/// characters and must match the regular expression
/// `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dashboard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dashboard> create(
GoogleCloudContactcenterinsightsV1Dashboard request,
core.String parent, {
core.String? dashboardId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'dashboardId': ?dashboardId == null ? null : [dashboardId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/dashboards';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dashboard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a Dashboard.
///
/// Request parameters:
///
/// [name] - Required. The name of the dashboard to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a Dashboard.
///
/// Request parameters:
///
/// [name] - Required. The name of the dashboard to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dashboard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dashboard> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dashboard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists Dashboards.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dashboards.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. The filter expression to filter dashboards listed in
/// the response.
///
/// [orderBy] - Optional. The order by expression to order dashboards listed
/// in the response.
///
/// [pageSize] - Optional. The maximum number of dashboards to return. The
/// service may return fewer than this value. The default and maximum value is
/// 100.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListDashboardsResponse`. This value indicates that this is a continuation
/// of a prior `ListDashboards` call and that the system should return the
/// next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListDashboardsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListDashboardsResponse> list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/dashboards';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListDashboardsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a Dashboard.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. Dashboard resource name. Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+$`.
///
/// [updateMask] - Optional. List of fields to be updated. All possible fields
/// can be updated by passing `*`, or a subset of the following updateable
/// fields can be provided: * `display_name` * `root_container` *
/// `description`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dashboard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dashboard> patch(
GoogleCloudContactcenterinsightsV1Dashboard request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dashboard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDashboardsChartsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDashboardsChartsResource(commons.ApiRequester client)
: _requester = client;
/// Creates a Chart.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the chart.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+$`.
///
/// [chartId] - Optional. A unique ID for the new Chart. This ID will become
/// the final component of the Chart's resource name. If no ID is specified, a
/// server-generated ID will be used. This value should be 4-64 characters and
/// must match the regular expression `^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Chart].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Chart> create(
GoogleCloudContactcenterinsightsV1Chart request,
core.String parent, {
core.String? chartId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'chartId': ?chartId == null ? null : [chartId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/charts';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Chart.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a Chart.
///
/// Request parameters:
///
/// [name] - Required. The name of the chart to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+/charts/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a Chart.
///
/// Request parameters:
///
/// [name] - Required. The name of the chart to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+/charts/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Chart].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Chart> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Chart.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists Charts.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the charts.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListChartsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListChartsResponse> list(
core.String parent, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/charts';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListChartsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a Chart.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. Chart resource name. Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}/charts/{chart}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/dashboards/\[^/\]+/charts/\[^/\]+$`.
///
/// [updateMask] - Optional. List of fields to be updated. All possible fields
/// can be updated by passing `*`, or a subset of the following updateable
/// fields can be provided: * `display_name`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Chart].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Chart> patch(
GoogleCloudContactcenterinsightsV1Chart request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Chart.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDatasetsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDatasetsConversationsResource get conversations =>
ProjectsLocationsDatasetsConversationsResource(_requester);
ProjectsLocationsDatasetsInsightsdataResource get insightsdata =>
ProjectsLocationsDatasetsInsightsdataResource(_requester);
ProjectsLocationsDatasetsResource(commons.ApiRequester client)
: _requester = client;
/// Delete feedback labels in bulk using a filter.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDeleteFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkDeleteFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkDeleteFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Download feedback labels in bulk from an external source.
///
/// Currently supports exporting Quality AI example conversations with
/// transcripts and question bodies.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDownloadFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkDownloadFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Upload feedback labels from an external source in bulk.
///
/// Currently supports labeling Quality AI example conversations.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkUploadFeedbackLabels(
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':bulkUploadFeedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Creates a dataset.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dataset.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [datasetId] - Optional. The ID to use for the dataset.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dataset].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dataset> create(
GoogleCloudContactcenterinsightsV1Dataset request,
core.String parent, {
core.String? datasetId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'datasetId': ?datasetId == null ? null : [datasetId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/datasets';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dataset.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete a dataset.
///
/// Request parameters:
///
/// [name] - Required. The name of the dataset to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a dataset.
///
/// Request parameters:
///
/// [name] - Required. The name of the dataset to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dataset].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dataset> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dataset.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List datasets matching the input.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dataset.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Useful for querying datasets with specific properties. Supported fields
/// include, for Q2 though we only support list by project: - `type` -
/// `description` - `project_number`
///
/// [pageSize] - Optional. The maximum number of datasets to return in the
/// response. If this value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListDatasetsResponse`; indicates that this is a continuation of a prior
/// `ListDatasets` call and the system should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListDatasetsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListDatasetsResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/datasets';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListDatasetsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List all feedback labels by project number.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of all feedback labels per
/// project.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset in
/// the entire project. Supports disjunctions (OR) and conjunctions (AND).
/// Supported fields: * `issue_model_id` * `qa_question_id` *
/// `min_create_time` * `max_create_time` * `min_update_time` *
/// `max_update_time` * `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// [pageSize] - Optional. The maximum number of feedback labels to return in
/// the response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListAllFeedbackLabelsResponse`. This value indicates that this is a
/// continuation of a prior `ListAllFeedbackLabels` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse>
listAllFeedbackLabels(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':listAllFeedbackLabels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a dataset.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. Identifier. Resource name of the dataset. Format:
/// projects/{project}/locations/{location}/datasets/{dataset}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to update.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Dataset].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Dataset> patch(
GoogleCloudContactcenterinsightsV1Dataset request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Dataset.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDatasetsConversationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDatasetsConversationsFeedbackLabelsResource
get feedbackLabels =>
ProjectsLocationsDatasetsConversationsFeedbackLabelsResource(_requester);
ProjectsLocationsDatasetsConversationsResource(commons.ApiRequester client)
: _requester = client;
/// Deletes multiple conversations in a single request.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to delete conversations from.
/// Format: projects/{project}/locations/{location}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> bulkDelete(
GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:bulkDelete';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets conversation statistics.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [location] - Required. The location of the conversations.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1CalculateStatsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1CalculateStatsResponse>
calculateStats(
GoogleCloudContactcenterinsightsV1CalculateStatsRequest request,
core.String location, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' +
core.Uri.encodeFull('$location') +
'/conversations:calculateStats';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CalculateStatsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+$`.
///
/// [force] - If set to true, all of this conversation's analyses will also be
/// deleted. Otherwise, the request will only succeed if the conversation has
/// no analyses.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets the signed URI for the audio for the given conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to sign.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<
GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse
>
generateSignedAudio(core.String name, {core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':generateSignedAudio';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a conversation.
///
/// Request parameters:
///
/// [name] - Required. The name of the conversation to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+$`.
///
/// [view] - The level of details of the conversation. Default is `FULL`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Conversation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Conversation> get(
core.String name, {
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Conversation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Imports conversations and processes them according to the user's
/// configuration.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new conversations.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> ingest(
GoogleCloudContactcenterinsightsV1IngestConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:ingest';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists conversations.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the conversation.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. Useful for
/// querying conversations with specific properties.
///
/// [orderBy] - Optional. The attribute by which to order conversations in the
/// response. If empty, conversations will be ordered by descending creation
/// time. Supported values are one of the following: * create_time *
/// customer_satisfaction_rating * duration * latest_analysis * start_time *
/// turn_count The default sort order is ascending. To specify order, append
/// `asc` or `desc` (`create_time desc`). For more details, see
/// [Google AIPs Ordering](https://google.aip.dev/132#ordering).
///
/// [pageSize] - The maximum number of conversations to return in the
/// response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - The value returned by the last `ListConversationsResponse`.
/// This value indicates that this is a continuation of a prior
/// `ListConversations` call and that the system should return the next page
/// of data.
///
/// [view] - The level of details of the conversation. Default is `BASIC`.
/// Possible string values are:
/// - "CONVERSATION_VIEW_UNSPECIFIED" : The conversation view is not
/// specified. * Defaults to `FULL` in `GetConversationRequest`. * Defaults to
/// `BASIC` in `ListConversationsRequest`.
/// - "FULL" : Populates all fields in the conversation.
/// - "BASIC" : Populates all fields in the conversation except the
/// transcript.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListConversationsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListConversationsResponse>
list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'orderBy': ?orderBy == null ? null : [orderBy],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'view': ?view == null ? null : [view],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/conversations';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListConversationsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Samples conversations based on user configuration and handles the sampled
/// conversations for different use cases.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the dataset.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> sample(
GoogleCloudContactcenterinsightsV1SampleConversationsRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/conversations:sample';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDatasetsConversationsFeedbackLabelsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDatasetsConversationsFeedbackLabelsResource(
commons.ApiRequester client,
) : _requester = client;
/// Create feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback label.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+$`.
///
/// [feedbackLabelId] - Optional. The ID of the feedback label to create. If
/// one is not specified it will be generated by the server.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> create(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String parent, {
core.String? feedbackLabelId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'feedbackLabelId': ?feedbackLabelId == null ? null : [feedbackLabelId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Delete feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Get feedback label.
///
/// Request parameters:
///
/// [name] - Required. The name of the feedback label to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// List feedback labels.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the feedback labels.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supports disjunctions (OR) and conjunctions (AND). Automatically sorts by
/// conversation ID. To sort by all feedback labels in a project see
/// ListAllFeedbackLabels. Supported fields: * `issue_model_id` *
/// `qa_question_id` * `qa_scorecard_id` * `min_create_time` *
/// `max_create_time` * `min_update_time` * `max_update_time` *
/// `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// [pageSize] - Optional. The maximum number of feedback labels to return in
/// the response. A valid page size ranges from 0 to 100,000 inclusive. If the
/// page size is zero or unspecified, a default page size of 100 will be
/// chosen. Note that a call might return fewer results than the requested
/// page size.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListFeedbackLabelsResponse`. This value indicates that this is a
/// continuation of a prior `ListFeedbackLabels` call and that the system
/// should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse>
list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/feedbackLabels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Update feedback label.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. Resource name of the FeedbackLabel. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/feedbackLabels/{feedback_label}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/conversations/\[^/\]+/feedbackLabels/\[^/\]+$`.
///
/// [updateMask] - Required. The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1FeedbackLabel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1FeedbackLabel> patch(
GoogleCloudContactcenterinsightsV1FeedbackLabel request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDatasetsInsightsdataResource {
final commons.ApiRequester _requester;
ProjectsLocationsDatasetsInsightsdataResource(commons.ApiRequester client)
: _requester = client;
/// Export insights data to a destination defined in the request body.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to export data from.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> export(
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/insightsdata:export';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsDiagnosticsResource {
final commons.ApiRequester _requester;
ProjectsLocationsDiagnosticsResource(commons.ApiRequester client)
: _requester = client;
/// Deletes a diagnostic.
///
/// Request parameters:
///
/// [name] - Required. The name of the diagnostic to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/diagnostics/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a diagnostic.
///
/// Request parameters:
///
/// [name] - Required. The name of the diagnostic to retrieve.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/diagnostics/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Diagnostic].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Diagnostic> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Diagnostic.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists diagnostics.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the diagnostics.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to apply to the list (e.g. `create_time >
/// "2023-01-01T00:00:00Z"`).
///
/// [pageSize] - Optional. The maximum number of diagnostics to return. The
/// service may return fewer than this value. If unspecified, at most 100
/// diagnostics will be returned. The maximum value is 1000; values above 1000
/// will be coerced to 1000.
///
/// [pageToken] - Optional. A page token, received from a previous
/// `ListDiagnostics` call. Provide this to retrieve the subsequent page.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse> list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/diagnostics';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsEncryptionSpecResource {
final commons.ApiRequester _requester;
ProjectsLocationsEncryptionSpecResource(commons.ApiRequester client)
: _requester = client;
/// Initializes a location-level encryption key specification.
///
/// An error will result if the location has resources already created before
/// the initialization. After the encryption specification is initialized at a
/// location, it is immutable and all newly created resources under the
/// location will be encrypted with the existing specification.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the encryption key specification
/// resource. Format: projects/{project}/locations/{location}/encryptionSpec
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/encryptionSpec$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> initialize(
GoogleCloudContactcenterinsightsV1InitializeEncryptionSpecRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':initialize';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsInsightsdataResource {
final commons.ApiRequester _requester;
ProjectsLocationsInsightsdataResource(commons.ApiRequester client)
: _requester = client;
/// Export insights data to a destination defined in the request body.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource to export data from.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> export(
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + '/insightsdata:export';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsIssueModelsResource {
final commons.ApiRequester _requester;
ProjectsLocationsIssueModelsIssuesResource get issues =>
ProjectsLocationsIssueModelsIssuesResource(_requester);
ProjectsLocationsIssueModelsResource(commons.ApiRequester client)
: _requester = client;
/// Gets an issue model's statistics.
///
/// Request parameters:
///
/// [issueModel] - Required. The resource name of the issue model to query
/// against.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<
GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse
>
calculateIssueModelStats(
core.String issueModel, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' +
core.Uri.encodeFull('$issueModel') +
':calculateIssueModelStats';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Creates an issue model.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the issue model.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> create(
GoogleCloudContactcenterinsightsV1IssueModel request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issueModels';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an issue model.
///
/// Request parameters:
///
/// [name] - Required. The name of the issue model to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deploys an issue model.
///
/// Returns an error if a model is already deployed. An issue model can only
/// be used in analysis after it has been deployed.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The issue model to deploy.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> deploy(
GoogleCloudContactcenterinsightsV1DeployIssueModelRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':deploy';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Exports an issue model to the provided destination.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The issue model to export.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> export(
GoogleCloudContactcenterinsightsV1ExportIssueModelRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':export';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets an issue model.
///
/// Request parameters:
///
/// [name] - Required. The name of the issue model to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1IssueModel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1IssueModel> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1IssueModel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Imports an issue model from a Cloud Storage bucket.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the issue model.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> import(
GoogleCloudContactcenterinsightsV1ImportIssueModelRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issueModels:import';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists issue models.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the issue model.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListIssueModelsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListIssueModelsResponse> list(
core.String parent, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issueModels';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListIssueModelsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an issue model.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the issue model. Format:
/// projects/{project}/locations/{location}/issueModels/{issue_model}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [updateMask] - The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1IssueModel].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1IssueModel> patch(
GoogleCloudContactcenterinsightsV1IssueModel request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1IssueModel.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Undeploys an issue model.
///
/// An issue model can not be used in analysis after it has been undeployed.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The issue model to undeploy.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> undeploy(
GoogleCloudContactcenterinsightsV1UndeployIssueModelRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':undeploy';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsIssueModelsIssuesResource {
final commons.ApiRequester _requester;
ProjectsLocationsIssueModelsIssuesResource(commons.ApiRequester client)
: _requester = client;
/// Creates an issue.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the issue.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> create(
GoogleCloudContactcenterinsightsV1Issue request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issues';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes an issue.
///
/// Request parameters:
///
/// [name] - Required. The name of the issue to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+/issues/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets an issue.
///
/// Request parameters:
///
/// [name] - Required. The name of the issue to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+/issues/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Issue].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Issue> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Issue.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists issues.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the issue.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListIssuesResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListIssuesResponse> list(
core.String parent, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issues';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListIssuesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates an issue.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the issue. Format:
/// projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+/issues/\[^/\]+$`.
///
/// [updateMask] - The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1Issue].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1Issue> patch(
GoogleCloudContactcenterinsightsV1Issue request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1Issue.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsOperationsResource {
final commons.ApiRequester _requester;
ProjectsLocationsOperationsResource(commons.ApiRequester client)
: _requester = client;
/// Starts asynchronous cancellation on a long-running operation.
///
/// The server makes a best effort to cancel the operation, but success is not
/// guaranteed. If the server doesn't support this method, it returns
/// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation
/// or other methods to check whether the cancellation succeeded or whether
/// the operation completed despite cancellation. On successful cancellation,
/// the operation is not deleted; instead, it becomes an operation with an
/// Operation.error value with a google.rpc.Status.code of `1`, corresponding
/// to `Code.CANCELLED`.
///
/// Request parameters:
///
/// [name] - The name of the operation resource to be cancelled.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> cancel(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel';
final response_ = await _requester.request(
url_,
'POST',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// 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.
///
/// Request parameters:
///
/// [name] - The name of the operation resource.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists operations that match the specified filter in the request.
///
/// If the server doesn't support this method, it returns `UNIMPLEMENTED`.
///
/// Request parameters:
///
/// [name] - The name of the operation's parent resource.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - The standard list filter.
///
/// [pageSize] - The standard list page size.
///
/// [pageToken] - The standard list page token.
///
/// [returnPartialSuccess] - When set to `true`, operations that are reachable
/// are returned as normal, and those that are unreachable are returned in the
/// ListOperationsResponse.unreachable field. This can only be `true` when
/// reading across collections. For example, when `parent` is set to
/// `"projects/example/locations/-"`. This field is not supported by default
/// and will result in an `UNIMPLEMENTED` error if set unless explicitly
/// documented otherwise in service or product specific documentation.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningListOperationsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningListOperationsResponse> list(
core.String name, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.bool? returnPartialSuccess,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'returnPartialSuccess': ?returnPartialSuccess == null
? null
: ['${returnPartialSuccess}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleLongrunningListOperationsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsPhraseMatchersResource {
final commons.ApiRequester _requester;
ProjectsLocationsPhraseMatchersResource(commons.ApiRequester client)
: _requester = client;
/// Creates a phrase matcher.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the phrase matcher. Required.
/// The location to create a phrase matcher for. Format:
/// `projects//locations/` or `projects//locations/`
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1PhraseMatcher].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1PhraseMatcher> create(
GoogleCloudContactcenterinsightsV1PhraseMatcher request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/phraseMatchers';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1PhraseMatcher.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a phrase matcher.
///
/// Request parameters:
///
/// [name] - Required. The name of the phrase matcher to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/phraseMatchers/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a phrase matcher.
///
/// Request parameters:
///
/// [name] - Required. The name of the phrase matcher to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/phraseMatchers/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1PhraseMatcher].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1PhraseMatcher> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1PhraseMatcher.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists phrase matchers.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the phrase matcher.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - A filter to reduce results to a specific subset. Useful for
/// querying phrase matchers with specific properties.
///
/// [pageSize] - The maximum number of phrase matchers to return in the
/// response. If this value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - The value returned by the last `ListPhraseMatchersResponse`.
/// This value indicates that this is a continuation of a prior
/// `ListPhraseMatchers` call and that the system should return the next page
/// of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse>
list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/phraseMatchers';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a phrase matcher.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - The resource name of the phrase matcher. Format:
/// projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/phraseMatchers/\[^/\]+$`.
///
/// [updateMask] - The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1PhraseMatcher].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1PhraseMatcher> patch(
GoogleCloudContactcenterinsightsV1PhraseMatcher request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1PhraseMatcher.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsQaQuestionTagsResource {
final commons.ApiRequester _requester;
ProjectsLocationsQaQuestionTagsResource(commons.ApiRequester client)
: _requester = client;
/// Creates a QaQuestionTag.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the QaQuestionTag.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [qaQuestionTagId] - Optional. A unique ID for the new QaQuestionTag. This
/// ID will become the final component of the QaQuestionTag's resource name.
/// If no ID is specified, a server-generated ID will be used. This value
/// should be 4-64 characters and must match the regular expression
/// `^[a-z0-9-]{4,64}$`. Valid characters are `a-z-`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaQuestionTag].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaQuestionTag> create(
GoogleCloudContactcenterinsightsV1QaQuestionTag request,
core.String parent, {
core.String? qaQuestionTagId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'qaQuestionTagId': ?qaQuestionTagId == null ? null : [qaQuestionTagId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaQuestionTags';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaQuestionTag.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a QaQuestionTag.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaQuestionTag to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaQuestionTags/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a QaQuestionTag.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaQuestionTag to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaQuestionTags/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaQuestionTag].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaQuestionTag> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaQuestionTag.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists the question tags.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the QaQuestionTags.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Supports conjunctions (ie. AND operators). Supported fields include the
/// following: * \`project_id\` - id of the project to list tags for *
/// \`qa_scorecard_id\` - id of the scorecard to list tags for *
/// \`revision_id\` - id of the scorecard revision to list tags for\` *
/// \`qa_question_id - id of the question to list tags for\`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse>
list(core.String parent, {core.String? filter, core.String? $fields}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaQuestionTags';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a QaQuestionTag.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. Resource name for the QaQuestionTag Format
/// projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}
/// In the above format, the last segment, i.e., qa_question_tag, is a
/// server-generated ID corresponding to the tag resource.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaQuestionTags/\[^/\]+$`.
///
/// [updateMask] - Optional. The list of fields to be updated. All possible
/// fields can be updated by passing `*`, or a subset of the following
/// updateable fields can be provided: * `qa_question_tag_name` - the name of
/// the tag * `qa_question_ids` - the list of questions the tag applies to
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> patch(
GoogleCloudContactcenterinsightsV1QaQuestionTag request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsQaScorecardsResource {
final commons.ApiRequester _requester;
ProjectsLocationsQaScorecardsRevisionsResource get revisions =>
ProjectsLocationsQaScorecardsRevisionsResource(_requester);
ProjectsLocationsQaScorecardsResource(commons.ApiRequester client)
: _requester = client;
/// Create a QaScorecard.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the QaScorecard.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [qaScorecardId] - Optional. A unique ID for the new QaScorecard. This ID
/// will become the final component of the QaScorecard's resource name. If no
/// ID is specified, a server-generated ID will be used. This value should be
/// 4-64 characters and must match the regular expression `^[a-z0-9-]{4,64}$`.
/// Valid characters are `a-z-`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecard> create(
GoogleCloudContactcenterinsightsV1QaScorecard request,
core.String parent, {
core.String? qaScorecardId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'qaScorecardId': ?qaScorecardId == null ? null : [qaScorecardId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaScorecards';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a QaScorecard.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecard to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+$`.
///
/// [force] - Optional. If set to true, all of this QaScorecard's child
/// resources will also be deleted. Otherwise, the request will only succeed
/// if it has none.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a QaScorecard.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecard to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecard> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists QaScorecards.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the scorecards.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of scorecards to return in the
/// response. If the value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListQaScorecardsResponse`. This value indicates that this is a
/// continuation of a prior `ListQaScorecards` call and that the system should
/// return the next page of data.
///
/// [qaScorecardSources] - Optional. The source of scorecards are based on how
/// those Scorecards were created, e.g., a customer-defined scorecard, a
/// predefined scorecard, etc. This field is used to retrieve Scorecards of
/// one or more sources.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse> list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.List<core.String>? qaScorecardSources,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'qaScorecardSources': ?qaScorecardSources,
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaScorecards';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a QaScorecard.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The scorecard name. Format:
/// projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+$`.
///
/// [updateMask] - Required. The list of fields to be updated. All possible
/// fields can be updated by passing `*`, or a subset of the following
/// updateable fields can be provided: * `description` * `display_name`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecard].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecard> patch(
GoogleCloudContactcenterinsightsV1QaScorecard request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsQaScorecardsRevisionsResource {
final commons.ApiRequester _requester;
ProjectsLocationsQaScorecardsRevisionsQaQuestionsResource get qaQuestions =>
ProjectsLocationsQaScorecardsRevisionsQaQuestionsResource(_requester);
ProjectsLocationsQaScorecardsRevisionsResource(commons.ApiRequester client)
: _requester = client;
/// Creates a QaScorecardRevision.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the QaScorecardRevision.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+$`.
///
/// [qaScorecardRevisionId] - Optional. A unique ID for the new
/// QaScorecardRevision. This ID will become the final component of the
/// QaScorecardRevision's resource name. If no ID is specified, a
/// server-generated ID will be used. This value should be 4-64 characters and
/// must match the regular expression `^[a-z0-9-]{4,64}$`. Valid characters
/// are `a-z-`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecardRevision].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecardRevision> create(
GoogleCloudContactcenterinsightsV1QaScorecardRevision request,
core.String parent, {
core.String? qaScorecardRevisionId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'qaScorecardRevisionId': ?qaScorecardRevisionId == null
? null
: [qaScorecardRevisionId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/revisions';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a QaScorecardRevision.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecardRevision to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [force] - Optional. If set to true, all of this QaScorecardRevision's
/// child resources will also be deleted. Otherwise, the request will only
/// succeed if it has none.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.bool? force,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'force': ?force == null ? null : ['${force}'],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deploy a QaScorecardRevision.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecardRevision to deploy.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecardRevision].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecardRevision> deploy(
GoogleCloudContactcenterinsightsV1DeployQaScorecardRevisionRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':deploy';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a QaScorecardRevision.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecardRevision to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecardRevision].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecardRevision> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists all revisions under the parent QaScorecard.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the scorecard revisions. To
/// list all revisions of all scorecards, substitute the QaScorecard ID with a
/// '-' character.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+$`.
///
/// [filter] - Optional. A filter to reduce results to a specific subset.
/// Useful for querying scorecard revisions with specific properties.
///
/// [pageSize] - Optional. The maximum number of scorecard revisions to return
/// in the response. If the value is zero, the service will select a default
/// size. A call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListQaScorecardRevisionsResponse`. This value indicates that this is a
/// continuation of a prior `ListQaScorecardRevisions` call and that the
/// system should return the next page of data.
///
/// [qaScorecardSources] - Optional. The source of scorecards are based on how
/// those Scorecards were created, e.g., a customer-defined scorecard, a
/// predefined scorecard, etc. This field is used to retrieve Scorecards
/// Revisions from Scorecards of one or more sources.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<
GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse
>
list(
core.String parent, {
core.String? filter,
core.int? pageSize,
core.String? pageToken,
core.List<core.String>? qaScorecardSources,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'filter': ?filter == null ? null : [filter],
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'qaScorecardSources': ?qaScorecardSources,
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/revisions';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Fine tune one or more QaModels.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource for new fine tuning job instance.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleLongrunningOperation].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleLongrunningOperation> tuneQaScorecardRevision(
GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ =
'v1/' + core.Uri.encodeFull('$parent') + ':tuneQaScorecardRevision';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleLongrunningOperation.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Undeploy a QaScorecardRevision.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaScorecardRevision to undeploy.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaScorecardRevision].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaScorecardRevision> undeploy(
GoogleCloudContactcenterinsightsV1UndeployQaScorecardRevisionRequest
request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':undeploy';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsQaScorecardsRevisionsQaQuestionsResource {
final commons.ApiRequester _requester;
ProjectsLocationsQaScorecardsRevisionsQaQuestionsResource(
commons.ApiRequester client,
) : _requester = client;
/// Create a QaQuestion.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the QaQuestion.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [qaQuestionId] - Optional. A unique ID for the new question. This ID will
/// become the final component of the question's resource name. If no ID is
/// specified, a server-generated ID will be used. This value should be 4-64
/// characters and must match the regular expression `^[a-z0-9-]{4,64}$`.
/// Valid characters are `a-z-`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaQuestion].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaQuestion> create(
GoogleCloudContactcenterinsightsV1QaQuestion request,
core.String parent, {
core.String? qaQuestionId,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'qaQuestionId': ?qaQuestionId == null ? null : [qaQuestionId],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaQuestions';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaQuestion.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a QaQuestion.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaQuestion to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+/qaQuestions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a QaQuestion.
///
/// Request parameters:
///
/// [name] - Required. The name of the QaQuestion to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+/qaQuestions/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaQuestion].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaQuestion> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaQuestion.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists QaQuestions.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the questions.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+$`.
///
/// [pageSize] - Optional. The maximum number of questions to return in the
/// response. If the value is zero, the service will select a default size. A
/// call might return fewer objects than requested. A non-empty
/// `next_page_token` in the response indicates that more data is available.
///
/// [pageToken] - Optional. The value returned by the last
/// `ListQaQuestionsResponse`. This value indicates that this is a
/// continuation of a prior `ListQaQuestions` call and that the system should
/// return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a
/// [GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse> list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/qaQuestions';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a QaQuestion.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Identifier. The resource name of the question. Format:
/// projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}/revisions/{revision}/qaQuestions/{qa_question}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/qaScorecards/\[^/\]+/revisions/\[^/\]+/qaQuestions/\[^/\]+$`.
///
/// [updateMask] - Required. The list of fields to be updated. All possible
/// fields can be updated by passing `*`, or a subset of the following
/// updateable fields can be provided: * `abbreviation` * `answer_choices` *
/// `answer_instructions` * `order` * `question_body` * `tags`
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1QaQuestion].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1QaQuestion> patch(
GoogleCloudContactcenterinsightsV1QaQuestion request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1QaQuestion.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
class ProjectsLocationsViewsResource {
final commons.ApiRequester _requester;
ProjectsLocationsViewsResource(commons.ApiRequester client)
: _requester = client;
/// Creates a view.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the view. Required. The
/// location to create a view for. Format: `projects//locations/` or
/// `projects//locations/`
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1View].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1View> create(
GoogleCloudContactcenterinsightsV1View request,
core.String parent, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/views';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1View.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Deletes a view.
///
/// Request parameters:
///
/// [name] - Required. The name of the view to delete.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/views/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleProtobufEmpty].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleProtobufEmpty> delete(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'DELETE',
queryParams: queryParams_,
);
return GoogleProtobufEmpty.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Gets a view.
///
/// Request parameters:
///
/// [name] - Required. The name of the view to get.
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/views/\[^/\]+$`.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1View].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1View> get(
core.String name, {
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1View.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Lists views.
///
/// Request parameters:
///
/// [parent] - Required. The parent resource of the views.
/// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`.
///
/// [pageSize] - The maximum number of views to return in the response. If
/// this value is zero, the service will select a default size. A call may
/// return fewer objects than requested. A non-empty `next_page_token` in the
/// response indicates that more data is available.
///
/// [pageToken] - The value returned by the last `ListViewsResponse`;
/// indicates that this is a continuation of a prior `ListViews` call and the
/// system should return the next page of data.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1ListViewsResponse].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1ListViewsResponse> list(
core.String parent, {
core.int? pageSize,
core.String? pageToken,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
'pageSize': ?pageSize == null ? null : ['${pageSize}'],
'pageToken': ?pageToken == null ? null : [pageToken],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/views';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1ListViewsResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
/// Updates a view.
///
/// [request] - The metadata request object.
///
/// Request parameters:
///
/// [name] - Immutable. The resource name of the view. Format:
/// projects/{project}/locations/{location}/views/{view}
/// Value must have pattern
/// `^projects/\[^/\]+/locations/\[^/\]+/views/\[^/\]+$`.
///
/// [updateMask] - The list of fields to be updated.
///
/// [$fields] - Selector specifying which fields to include in a partial
/// response.
///
/// Completes with a [GoogleCloudContactcenterinsightsV1View].
///
/// Completes with a [commons.ApiRequestError] if the API endpoint returned an
/// error.
///
/// If the used [http.Client] completes with an error when making a REST call,
/// this method will complete with the same error.
async.Future<GoogleCloudContactcenterinsightsV1View> patch(
GoogleCloudContactcenterinsightsV1View request,
core.String name, {
core.String? updateMask,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
'updateMask': ?updateMask == null ? null : [updateMask],
'fields': ?$fields == null ? null : [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name');
final response_ = await _requester.request(
url_,
'PATCH',
body: body_,
queryParams: queryParams_,
);
return GoogleCloudContactcenterinsightsV1View.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}
}
/// Represents an event indicating the transfer of a conversation to a different
/// agent.
typedef GoogleCloudCesV1mainAgentTransfer = $AgentTransfer;
/// Represents a blob input or output in the conversation.
typedef GoogleCloudCesV1mainBlob = $Blob;
/// A chunk of content within a message.
class GoogleCloudCesV1mainChunk {
/// Agent transfer event.
///
/// Optional.
GoogleCloudCesV1mainAgentTransfer? agentTransfer;
/// Blob data.
///
/// Optional.
GoogleCloudCesV1mainBlob? blob;
/// A struct represents default variables at the start of the conversation,
/// keyed by variable names.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? defaultVariables;
/// Image data.
///
/// Optional.
GoogleCloudCesV1mainImage? image;
/// Custom payload data.
///
/// Optional.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? payload;
/// Text data.
///
/// Optional.
core.String? text;
/// Tool execution request.
///
/// Optional.
GoogleCloudCesV1mainToolCall? toolCall;
/// Tool execution response.
///
/// Optional.
GoogleCloudCesV1mainToolResponse? toolResponse;
/// Transcript associated with the audio.
///
/// Optional.
core.String? transcript;
/// A struct represents variables that were updated in the conversation, keyed
/// by variable names.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? updatedVariables;
GoogleCloudCesV1mainChunk({
this.agentTransfer,
this.blob,
this.defaultVariables,
this.image,
this.payload,
this.text,
this.toolCall,
this.toolResponse,
this.transcript,
this.updatedVariables,
});
GoogleCloudCesV1mainChunk.fromJson(core.Map json_)
: this(
agentTransfer: json_.containsKey('agentTransfer')
? GoogleCloudCesV1mainAgentTransfer.fromJson(
json_['agentTransfer'] as core.Map<core.String, core.dynamic>,
)
: null,
blob: json_.containsKey('blob')
? GoogleCloudCesV1mainBlob.fromJson(
json_['blob'] as core.Map<core.String, core.dynamic>,
)
: null,
defaultVariables: json_.containsKey('defaultVariables')
? json_['defaultVariables'] as core.Map<core.String, core.dynamic>
: null,
image: json_.containsKey('image')
? GoogleCloudCesV1mainImage.fromJson(
json_['image'] as core.Map<core.String, core.dynamic>,
)
: null,
payload: json_.containsKey('payload')
? json_['payload'] as core.Map<core.String, core.dynamic>
: null,
text: json_['text'] as core.String?,
toolCall: json_.containsKey('toolCall')
? GoogleCloudCesV1mainToolCall.fromJson(
json_['toolCall'] as core.Map<core.String, core.dynamic>,
)
: null,
toolResponse: json_.containsKey('toolResponse')
? GoogleCloudCesV1mainToolResponse.fromJson(
json_['toolResponse'] as core.Map<core.String, core.dynamic>,
)
: null,
transcript: json_['transcript'] as core.String?,
updatedVariables: json_.containsKey('updatedVariables')
? json_['updatedVariables'] as core.Map<core.String, core.dynamic>
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final agentTransfer = this.agentTransfer;
final blob = this.blob;
final defaultVariables = this.defaultVariables;
final image = this.image;
final payload = this.payload;
final text = this.text;
final toolCall = this.toolCall;
final toolResponse = this.toolResponse;
final transcript = this.transcript;
final updatedVariables = this.updatedVariables;
return {
'agentTransfer': ?agentTransfer,
'blob': ?blob,
'defaultVariables': ?defaultVariables,
'image': ?image,
'payload': ?payload,
'text': ?text,
'toolCall': ?toolCall,
'toolResponse': ?toolResponse,
'transcript': ?transcript,
'updatedVariables': ?updatedVariables,
};
}
}
/// Indicates the session has terminated, due to either successful completion
/// (e.g. user says "Good bye!" ) or an agent escalation.
///
/// The agent will not process any further inputs after session is terminated
/// and the client should half-close and disconnect after receiving all
/// remaining responses from the agent.
typedef GoogleCloudCesV1mainEndSession = $EndSession;
/// Represents an image input or output in the conversation.
typedef GoogleCloudCesV1mainImage = $Image;
/// A message within a conversation.
class GoogleCloudCesV1mainMessage {
/// Content of the message as a series of chunks.
///
/// Optional.
core.List<GoogleCloudCesV1mainChunk>? chunks;
/// Timestamp when the message was sent or received.
///
/// Should not be used if the message is part of an example.
///
/// Optional.
core.String? eventTime;
/// The role within the conversation, e.g., user, agent.
///
/// Optional.
core.String? role;
GoogleCloudCesV1mainMessage({this.chunks, this.eventTime, this.role});
GoogleCloudCesV1mainMessage.fromJson(core.Map json_)
: this(
chunks: (json_['chunks'] as core.List?)
?.map(
(value) => GoogleCloudCesV1mainChunk.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
eventTime: json_['eventTime'] as core.String?,
role: json_['role'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final chunks = this.chunks;
final eventTime = this.eventTime;
final role = this.role;
return {'chunks': ?chunks, 'eventTime': ?eventTime, 'role': ?role};
}
}
/// A span is a unit of work or a single operation during the request
/// processing.
class GoogleCloudCesV1mainSpan {
/// Key-value attributes associated with the span.
///
/// Output only.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? attributes;
/// The child spans that are nested under this span.
///
/// Output only.
core.List<GoogleCloudCesV1mainSpan>? childSpans;
/// The duration of the span.
///
/// Output only.
core.String? duration;
/// The end time of the span.
///
/// Output only.
core.String? endTime;
/// The name of the span.
///
/// Output only.
core.String? name;
/// The start time of the span.
///
/// Output only.
core.String? startTime;
GoogleCloudCesV1mainSpan({
this.attributes,
this.childSpans,
this.duration,
this.endTime,
this.name,
this.startTime,
});
GoogleCloudCesV1mainSpan.fromJson(core.Map json_)
: this(
attributes: json_.containsKey('attributes')
? json_['attributes'] as core.Map<core.String, core.dynamic>
: null,
childSpans: (json_['childSpans'] as core.List?)
?.map(
(value) => GoogleCloudCesV1mainSpan.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
duration: json_['duration'] as core.String?,
endTime: json_['endTime'] as core.String?,
name: json_['name'] as core.String?,
startTime: json_['startTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final attributes = this.attributes;
final childSpans = this.childSpans;
final duration = this.duration;
final endTime = this.endTime;
final name = this.name;
final startTime = this.startTime;
return {
'attributes': ?attributes,
'childSpans': ?childSpans,
'duration': ?duration,
'endTime': ?endTime,
'name': ?name,
'startTime': ?startTime,
};
}
}
/// Request for the client or the agent to execute the specified tool.
class GoogleCloudCesV1mainToolCall {
/// The input parameters and values for the tool in JSON object format.
///
/// Optional.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? args;
/// Display name of the tool.
///
/// Output only.
core.String? displayName;
/// The unique identifier of the tool call.
///
/// If populated, the client should return the execution result with the
/// matching ID in ToolResponse.
///
/// Optional.
core.String? id;
/// The name of the tool to execute.
///
/// Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
///
/// Optional.
core.String? tool;
/// The toolset tool to execute.
///
/// Optional.
GoogleCloudCesV1mainToolsetTool? toolsetTool;
GoogleCloudCesV1mainToolCall({
this.args,
this.displayName,
this.id,
this.tool,
this.toolsetTool,
});
GoogleCloudCesV1mainToolCall.fromJson(core.Map json_)
: this(
args: json_.containsKey('args')
? json_['args'] as core.Map<core.String, core.dynamic>
: null,
displayName: json_['displayName'] as core.String?,
id: json_['id'] as core.String?,
tool: json_['tool'] as core.String?,
toolsetTool: json_.containsKey('toolsetTool')
? GoogleCloudCesV1mainToolsetTool.fromJson(
json_['toolsetTool'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final args = this.args;
final displayName = this.displayName;
final id = this.id;
final tool = this.tool;
final toolsetTool = this.toolsetTool;
return {
'args': ?args,
'displayName': ?displayName,
'id': ?id,
'tool': ?tool,
'toolsetTool': ?toolsetTool,
};
}
}
/// The execution result of a specific tool from the client or the agent.
class GoogleCloudCesV1mainToolResponse {
/// Display name of the tool.
///
/// Output only.
core.String? displayName;
/// The matching ID of the tool call the response is for.
///
/// Optional.
core.String? id;
/// The tool execution result in JSON object format.
///
/// Use "output" key to specify tool response and "error" key to specify error
/// details (if any). If "output" and "error" keys are not specified, then
/// whole "response" is treated as tool execution result.
///
/// Required.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? response;
/// The name of the tool to execute.
///
/// Format: `projects/{project}/locations/{location}/apps/{app}/tools/{tool}`
///
/// Optional.
core.String? tool;
/// The toolset tool that got executed.
///
/// Optional.
GoogleCloudCesV1mainToolsetTool? toolsetTool;
GoogleCloudCesV1mainToolResponse({
this.displayName,
this.id,
this.response,
this.tool,
this.toolsetTool,
});
GoogleCloudCesV1mainToolResponse.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
id: json_['id'] as core.String?,
response: json_.containsKey('response')
? json_['response'] as core.Map<core.String, core.dynamic>
: null,
tool: json_['tool'] as core.String?,
toolsetTool: json_.containsKey('toolsetTool')
? GoogleCloudCesV1mainToolsetTool.fromJson(
json_['toolsetTool'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final id = this.id;
final response = this.response;
final tool = this.tool;
final toolsetTool = this.toolsetTool;
return {
'displayName': ?displayName,
'id': ?id,
'response': ?response,
'tool': ?tool,
'toolsetTool': ?toolsetTool,
};
}
}
/// A tool that is created from a toolset.
typedef GoogleCloudCesV1mainToolsetTool = $ToolsetTool;
/// The analysis resource.
class GoogleCloudContactcenterinsightsV1Analysis {
/// The result of the analysis, which is populated when the analysis finishes.
///
/// Output only.
GoogleCloudContactcenterinsightsV1AnalysisResult? analysisResult;
/// To select the annotators to run and the phrase matchers to use (if any).
///
/// If not specified, all annotators will be run.
GoogleCloudContactcenterinsightsV1AnnotatorSelector? annotatorSelector;
/// The time at which the analysis was created, which occurs when the
/// long-running operation completes.
///
/// Output only.
core.String? createTime;
/// The resource name of the analysis.
///
/// Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/analyses/{analysis}
///
/// Immutable.
core.String? name;
/// The time at which the analysis was requested.
///
/// Output only.
core.String? requestTime;
GoogleCloudContactcenterinsightsV1Analysis({
this.analysisResult,
this.annotatorSelector,
this.createTime,
this.name,
this.requestTime,
});
GoogleCloudContactcenterinsightsV1Analysis.fromJson(core.Map json_)
: this(
analysisResult: json_.containsKey('analysisResult')
? GoogleCloudContactcenterinsightsV1AnalysisResult.fromJson(
json_['analysisResult'] as core.Map<core.String, core.dynamic>,
)
: null,
annotatorSelector: json_.containsKey('annotatorSelector')
? GoogleCloudContactcenterinsightsV1AnnotatorSelector.fromJson(
json_['annotatorSelector']
as core.Map<core.String, core.dynamic>,
)
: null,
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
requestTime: json_['requestTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final analysisResult = this.analysisResult;
final annotatorSelector = this.annotatorSelector;
final createTime = this.createTime;
final name = this.name;
final requestTime = this.requestTime;
return {
'analysisResult': ?analysisResult,
'annotatorSelector': ?annotatorSelector,
'createTime': ?createTime,
'name': ?name,
'requestTime': ?requestTime,
};
}
}
/// The result of an analysis.
class GoogleCloudContactcenterinsightsV1AnalysisResult {
/// Call-specific metadata created by the analysis.
GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata?
callAnalysisMetadata;
/// The time at which the analysis ended.
core.String? endTime;
GoogleCloudContactcenterinsightsV1AnalysisResult({
this.callAnalysisMetadata,
this.endTime,
});
GoogleCloudContactcenterinsightsV1AnalysisResult.fromJson(core.Map json_)
: this(
callAnalysisMetadata: json_.containsKey('callAnalysisMetadata')
? GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata.fromJson(
json_['callAnalysisMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
endTime: json_['endTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final callAnalysisMetadata = this.callAnalysisMetadata;
final endTime = this.endTime;
return {'callAnalysisMetadata': ?callAnalysisMetadata, 'endTime': ?endTime};
}
}
/// Call-specific metadata created during analysis.
class GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata {
/// A list of call annotations that apply to this call.
core.List<GoogleCloudContactcenterinsightsV1CallAnnotation>? annotations;
/// All the entities in the call.
core.Map<core.String, GoogleCloudContactcenterinsightsV1Entity>? entities;
/// All the matched intents in the call.
core.Map<core.String, GoogleCloudContactcenterinsightsV1Intent>? intents;
/// Overall conversation-level issue modeling result.
GoogleCloudContactcenterinsightsV1IssueModelResult? issueModelResult;
/// All the matched phrase matchers in the call.
core.Map<core.String, GoogleCloudContactcenterinsightsV1PhraseMatchData>?
phraseMatchers;
/// Results of scoring QaScorecards.
core.List<GoogleCloudContactcenterinsightsV1QaScorecardResult>?
qaScorecardResults;
/// Overall conversation-level sentiment for each channel of the call.
core.List<GoogleCloudContactcenterinsightsV1ConversationLevelSentiment>?
sentiments;
/// Overall conversation-level silence during the call.
GoogleCloudContactcenterinsightsV1ConversationLevelSilence? silence;
GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata({
this.annotations,
this.entities,
this.intents,
this.issueModelResult,
this.phraseMatchers,
this.qaScorecardResults,
this.sentiments,
this.silence,
});
GoogleCloudContactcenterinsightsV1AnalysisResultCallAnalysisMetadata.fromJson(
core.Map json_,
) : this(
annotations: (json_['annotations'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1CallAnnotation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
entities: (json_['entities'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1Entity.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
intents: (json_['intents'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1Intent.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
issueModelResult: json_.containsKey('issueModelResult')
? GoogleCloudContactcenterinsightsV1IssueModelResult.fromJson(
json_['issueModelResult']
as core.Map<core.String, core.dynamic>,
)
: null,
phraseMatchers:
(json_['phraseMatchers'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1PhraseMatchData.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
qaScorecardResults: (json_['qaScorecardResults'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaScorecardResult.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
sentiments: (json_['sentiments'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationLevelSentiment.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
silence: json_.containsKey('silence')
? GoogleCloudContactcenterinsightsV1ConversationLevelSilence.fromJson(
json_['silence'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final annotations = this.annotations;
final entities = this.entities;
final intents = this.intents;
final issueModelResult = this.issueModelResult;
final phraseMatchers = this.phraseMatchers;
final qaScorecardResults = this.qaScorecardResults;
final sentiments = this.sentiments;
final silence = this.silence;
return {
'annotations': ?annotations,
'entities': ?entities,
'intents': ?intents,
'issueModelResult': ?issueModelResult,
'phraseMatchers': ?phraseMatchers,
'qaScorecardResults': ?qaScorecardResults,
'sentiments': ?sentiments,
'silence': ?silence,
};
}
}
/// The CCAI Insights project wide analysis rule.
///
/// This rule will be applied to all conversations that match the filter defined
/// in the rule. For a conversation matches the filter, the annotators specified
/// in the rule will be run. If a conversation matches multiple rules, a union
/// of all the annotators will be run. One project can have multiple analysis
/// rules.
class GoogleCloudContactcenterinsightsV1AnalysisRule {
/// If true, apply this rule to conversations.
///
/// Otherwise, this rule is inactive and saved as a draft.
core.bool? active;
/// Percentage of conversations that we should apply this analysis setting
/// automatically, between \[0, 1\].
///
/// For example, 0.1 means 10%. Conversations are sampled in a determenestic
/// way. The original runtime_percentage & upload percentage will be replaced
/// by defining filters on the conversation.
core.double? analysisPercentage;
/// Selector of annotators to run and the phrase matchers to use for
/// conversations that matches the conversation_filter.
///
/// If not specified, NO annotators will be run.
GoogleCloudContactcenterinsightsV1AnnotatorSelector? annotatorSelector;
/// Filter for the conversations that should apply this analysis rule.
///
/// An empty filter means this analysis rule applies to all conversations.
/// Refer to https://cloud.google.com/contact-center/insights/docs/filtering
/// for details.
core.String? conversationFilter;
/// The time at which this analysis rule was created.
///
/// Output only.
core.String? createTime;
/// Display Name of the analysis rule.
core.String? displayName;
/// Identifier.
///
/// The resource name of the analysis rule. Format:
/// projects/{project}/locations/{location}/analysisRules/{analysis_rule}
core.String? name;
/// The most recent time at which this analysis rule was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1AnalysisRule({
this.active,
this.analysisPercentage,
this.annotatorSelector,
this.conversationFilter,
this.createTime,
this.displayName,
this.name,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1AnalysisRule.fromJson(core.Map json_)
: this(
active: json_['active'] as core.bool?,
analysisPercentage: (json_['analysisPercentage'] as core.num?)
?.toDouble(),
annotatorSelector: json_.containsKey('annotatorSelector')
? GoogleCloudContactcenterinsightsV1AnnotatorSelector.fromJson(
json_['annotatorSelector']
as core.Map<core.String, core.dynamic>,
)
: null,
conversationFilter: json_['conversationFilter'] as core.String?,
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final active = this.active;
final analysisPercentage = this.analysisPercentage;
final annotatorSelector = this.annotatorSelector;
final conversationFilter = this.conversationFilter;
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final updateTime = this.updateTime;
return {
'active': ?active,
'analysisPercentage': ?analysisPercentage,
'annotatorSelector': ?annotatorSelector,
'conversationFilter': ?conversationFilter,
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'updateTime': ?updateTime,
};
}
}
/// A point in a conversation that marks the start or the end of an annotation.
class GoogleCloudContactcenterinsightsV1AnnotationBoundary {
/// The index in the sequence of transcribed pieces of the conversation where
/// the boundary is located.
///
/// This index starts at zero.
core.int? transcriptIndex;
/// The word index of this boundary with respect to the first word in the
/// transcript piece.
///
/// This index starts at zero.
core.int? wordIndex;
GoogleCloudContactcenterinsightsV1AnnotationBoundary({
this.transcriptIndex,
this.wordIndex,
});
GoogleCloudContactcenterinsightsV1AnnotationBoundary.fromJson(core.Map json_)
: this(
transcriptIndex: json_['transcriptIndex'] as core.int?,
wordIndex: json_['wordIndex'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final transcriptIndex = this.transcriptIndex;
final wordIndex = this.wordIndex;
return {'transcriptIndex': ?transcriptIndex, 'wordIndex': ?wordIndex};
}
}
/// Selector of all available annotators and phrase matchers to run.
class GoogleCloudContactcenterinsightsV1AnnotatorSelector {
/// The issue model to run.
///
/// If not provided, the most recently deployed topic model will be used. The
/// provided issue model will only be used for inference if the issue model is
/// deployed and if run_issue_model_annotator is set to true. If more than one
/// issue model is provided, only the first provided issue model will be used
/// for inference.
core.List<core.String>? issueModels;
/// The list of phrase matchers to run.
///
/// If not provided, all active phrase matchers will be used. If inactive
/// phrase matchers are provided, they will not be used. Phrase matchers will
/// be run only if run_phrase_matcher_annotator is set to true. Format:
/// projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
core.List<core.String>? phraseMatchers;
/// Configuration for the QA annotator.
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfig? qaConfig;
/// Whether to run the auto-labeling annotator.
///
/// If true, the auto-labeling annotator will be run. This is a non-billable
/// operation designed for fixing or backfilling custom labels.
///
/// Optional.
core.bool? runAutoLabelingAnnotator;
/// Whether to run the entity annotator.
core.bool? runEntityAnnotator;
/// Whether to run the intent annotator.
core.bool? runIntentAnnotator;
/// Whether to run the interruption annotator.
core.bool? runInterruptionAnnotator;
/// Whether to run the issue model annotator.
///
/// A model should have already been deployed for this to take effect.
core.bool? runIssueModelAnnotator;
/// Whether to run the active phrase matcher annotator(s).
core.bool? runPhraseMatcherAnnotator;
/// Whether to run the QA annotator.
core.bool? runQaAnnotator;
/// Whether to run the sentiment annotator.
core.bool? runSentimentAnnotator;
/// Whether to run the silence annotator.
core.bool? runSilenceAnnotator;
/// Whether to run the summarization annotator.
core.bool? runSummarizationAnnotator;
/// Configuration for the summarization annotator.
GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig?
summarizationConfig;
GoogleCloudContactcenterinsightsV1AnnotatorSelector({
this.issueModels,
this.phraseMatchers,
this.qaConfig,
this.runAutoLabelingAnnotator,
this.runEntityAnnotator,
this.runIntentAnnotator,
this.runInterruptionAnnotator,
this.runIssueModelAnnotator,
this.runPhraseMatcherAnnotator,
this.runQaAnnotator,
this.runSentimentAnnotator,
this.runSilenceAnnotator,
this.runSummarizationAnnotator,
this.summarizationConfig,
});
GoogleCloudContactcenterinsightsV1AnnotatorSelector.fromJson(core.Map json_)
: this(
issueModels: (json_['issueModels'] as core.List?)
?.map((value) => value as core.String)
.toList(),
phraseMatchers: (json_['phraseMatchers'] as core.List?)
?.map((value) => value as core.String)
.toList(),
qaConfig: json_.containsKey('qaConfig')
? GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfig.fromJson(
json_['qaConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
runAutoLabelingAnnotator:
json_['runAutoLabelingAnnotator'] as core.bool?,
runEntityAnnotator: json_['runEntityAnnotator'] as core.bool?,
runIntentAnnotator: json_['runIntentAnnotator'] as core.bool?,
runInterruptionAnnotator:
json_['runInterruptionAnnotator'] as core.bool?,
runIssueModelAnnotator: json_['runIssueModelAnnotator'] as core.bool?,
runPhraseMatcherAnnotator:
json_['runPhraseMatcherAnnotator'] as core.bool?,
runQaAnnotator: json_['runQaAnnotator'] as core.bool?,
runSentimentAnnotator: json_['runSentimentAnnotator'] as core.bool?,
runSilenceAnnotator: json_['runSilenceAnnotator'] as core.bool?,
runSummarizationAnnotator:
json_['runSummarizationAnnotator'] as core.bool?,
summarizationConfig: json_.containsKey('summarizationConfig')
? GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig.fromJson(
json_['summarizationConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final issueModels = this.issueModels;
final phraseMatchers = this.phraseMatchers;
final qaConfig = this.qaConfig;
final runAutoLabelingAnnotator = this.runAutoLabelingAnnotator;
final runEntityAnnotator = this.runEntityAnnotator;
final runIntentAnnotator = this.runIntentAnnotator;
final runInterruptionAnnotator = this.runInterruptionAnnotator;
final runIssueModelAnnotator = this.runIssueModelAnnotator;
final runPhraseMatcherAnnotator = this.runPhraseMatcherAnnotator;
final runQaAnnotator = this.runQaAnnotator;
final runSentimentAnnotator = this.runSentimentAnnotator;
final runSilenceAnnotator = this.runSilenceAnnotator;
final runSummarizationAnnotator = this.runSummarizationAnnotator;
final summarizationConfig = this.summarizationConfig;
return {
'issueModels': ?issueModels,
'phraseMatchers': ?phraseMatchers,
'qaConfig': ?qaConfig,
'runAutoLabelingAnnotator': ?runAutoLabelingAnnotator,
'runEntityAnnotator': ?runEntityAnnotator,
'runIntentAnnotator': ?runIntentAnnotator,
'runInterruptionAnnotator': ?runInterruptionAnnotator,
'runIssueModelAnnotator': ?runIssueModelAnnotator,
'runPhraseMatcherAnnotator': ?runPhraseMatcherAnnotator,
'runQaAnnotator': ?runQaAnnotator,
'runSentimentAnnotator': ?runSentimentAnnotator,
'runSilenceAnnotator': ?runSilenceAnnotator,
'runSummarizationAnnotator': ?runSummarizationAnnotator,
'summarizationConfig': ?summarizationConfig,
};
}
}
/// Configuration for the QA feature.
class GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfig {
/// A manual list of scorecards to score.
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfigScorecardList?
scorecardList;
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfig({
this.scorecardList,
});
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfig.fromJson(
core.Map json_,
) : this(
scorecardList: json_.containsKey('scorecardList')
? GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfigScorecardList.fromJson(
json_['scorecardList'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final scorecardList = this.scorecardList;
return {'scorecardList': ?scorecardList};
}
}
/// Container for a list of scorecards.
class GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfigScorecardList {
/// List of QaScorecardRevisions.
core.List<core.String>? qaScorecardRevisions;
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfigScorecardList({
this.qaScorecardRevisions,
});
GoogleCloudContactcenterinsightsV1AnnotatorSelectorQaConfigScorecardList.fromJson(
core.Map json_,
) : this(
qaScorecardRevisions: (json_['qaScorecardRevisions'] as core.List?)
?.map((value) => value as core.String)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final qaScorecardRevisions = this.qaScorecardRevisions;
return {'qaScorecardRevisions': ?qaScorecardRevisions};
}
}
/// Configuration for summarization.
class GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig {
/// Resource name of the Dialogflow conversation profile.
///
/// Format:
/// projects/{project}/locations/{location}/conversationProfiles/{conversation_profile}
core.String? conversationProfile;
/// The resource name of the existing created generator.
///
/// Format: projects//locations//generators/
core.String? generator;
/// Default summarization model to be used.
/// Possible string values are:
/// - "SUMMARIZATION_MODEL_UNSPECIFIED" : Unspecified summarization model.
/// - "BASELINE_MODEL" : The CCAI baseline model. This model is deprecated and
/// will be removed in the future. We recommend using `generator` instead.
/// - "BASELINE_MODEL_V2_0" : The CCAI baseline model, V2.0. This model is
/// deprecated and will be removed in the future. We recommend using
/// `generator` instead.
core.String? summarizationModel;
GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig({
this.conversationProfile,
this.generator,
this.summarizationModel,
});
GoogleCloudContactcenterinsightsV1AnnotatorSelectorSummarizationConfig.fromJson(
core.Map json_,
) : this(
conversationProfile: json_['conversationProfile'] as core.String?,
generator: json_['generator'] as core.String?,
summarizationModel: json_['summarizationModel'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationProfile = this.conversationProfile;
final generator = this.generator;
final summarizationModel = this.summarizationModel;
return {
'conversationProfile': ?conversationProfile,
'generator': ?generator,
'summarizationModel': ?summarizationModel,
};
}
}
/// The feedback that the customer has about a certain answer in the
/// conversation.
class GoogleCloudContactcenterinsightsV1AnswerFeedback {
/// Indicates whether an answer or item was clicked by the human agent.
core.bool? clicked;
/// The correctness level of an answer.
/// Possible string values are:
/// - "CORRECTNESS_LEVEL_UNSPECIFIED" : Correctness level unspecified.
/// - "NOT_CORRECT" : Answer is totally wrong.
/// - "PARTIALLY_CORRECT" : Answer is partially correct.
/// - "FULLY_CORRECT" : Answer is fully correct.
core.String? correctnessLevel;
/// Indicates whether an answer or item was displayed to the human agent in
/// the agent desktop UI.
core.bool? displayed;
GoogleCloudContactcenterinsightsV1AnswerFeedback({
this.clicked,
this.correctnessLevel,
this.displayed,
});
GoogleCloudContactcenterinsightsV1AnswerFeedback.fromJson(core.Map json_)
: this(
clicked: json_['clicked'] as core.bool?,
correctnessLevel: json_['correctnessLevel'] as core.String?,
displayed: json_['displayed'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final clicked = this.clicked;
final correctnessLevel = this.correctnessLevel;
final displayed = this.displayed;
return {
'clicked': ?clicked,
'correctnessLevel': ?correctnessLevel,
'displayed': ?displayed,
};
}
}
/// The message to appeal an assessment.
typedef GoogleCloudContactcenterinsightsV1AppealAssessmentRequest = $Empty;
/// Agent Assist Article Suggestion data.
class GoogleCloudContactcenterinsightsV1ArticleSuggestionData {
/// The system's confidence score that this article is a good match for this
/// conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
/// certain).
core.double? confidenceScore;
/// Map that contains metadata about the Article Suggestion and the document
/// that it originates from.
core.Map<core.String, core.String>? metadata;
/// The name of the answer record.
///
/// Format:
/// projects/{project}/locations/{location}/answerRecords/{answer_record}
core.String? queryRecord;
/// The knowledge document that this answer was extracted from.
///
/// Format:
/// projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}
core.String? source;
/// Article title.
core.String? title;
/// Article URI.
core.String? uri;
GoogleCloudContactcenterinsightsV1ArticleSuggestionData({
this.confidenceScore,
this.metadata,
this.queryRecord,
this.source,
this.title,
this.uri,
});
GoogleCloudContactcenterinsightsV1ArticleSuggestionData.fromJson(
core.Map json_,
) : this(
confidenceScore: (json_['confidenceScore'] as core.num?)?.toDouble(),
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
queryRecord: json_['queryRecord'] as core.String?,
source: json_['source'] as core.String?,
title: json_['title'] as core.String?,
uri: json_['uri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final confidenceScore = this.confidenceScore;
final metadata = this.metadata;
final queryRecord = this.queryRecord;
final source = this.source;
final title = this.title;
final uri = this.uri;
return {
'confidenceScore': ?confidenceScore,
'metadata': ?metadata,
'queryRecord': ?queryRecord,
'source': ?source,
'title': ?title,
'uri': ?uri,
};
}
}
/// The assessment resource.
class GoogleCloudContactcenterinsightsV1Assessment {
/// Information about the agent the assessment is for.
GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo?
agentInfo;
/// The time at which the assessment was created.
///
/// Output only.
core.String? createTime;
/// Identifier.
///
/// The resource name of the assessment. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}
core.String? name;
/// The state of the assessment.
///
/// Output only.
/// Possible string values are:
/// - "STATE_UNSPECIFIED" : The state is unspecified. This value should not be
/// used.
/// - "DRAFT" : The default state of all new assessments.
/// - "PUBLISHED" : The assessment has been published.
/// - "APPEALED" : The assessment has been appealed.
/// - "FINALIZED" : The assessment has been finalized.
core.String? state;
/// The time at which the assessment was last updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Assessment({
this.agentInfo,
this.createTime,
this.name,
this.state,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Assessment.fromJson(core.Map json_)
: this(
agentInfo: json_.containsKey('agentInfo')
? GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo.fromJson(
json_['agentInfo'] as core.Map<core.String, core.dynamic>,
)
: null,
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
state: json_['state'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentInfo = this.agentInfo;
final createTime = this.createTime;
final name = this.name;
final state = this.state;
final updateTime = this.updateTime;
return {
'agentInfo': ?agentInfo,
'createTime': ?createTime,
'name': ?name,
'state': ?state,
'updateTime': ?updateTime,
};
}
}
/// The CCAI Insights project wide assessment rule.
///
/// This assessment rule will be applied to all conversations from the previous
/// sampling cycle that match the sample rule defined in the assessment rule.
/// One project can have multiple assessment rules.
class GoogleCloudContactcenterinsightsV1AssessmentRule {
/// If true, apply this rule to conversations.
///
/// Otherwise, this rule is inactive.
core.bool? active;
/// The time at which this assessment rule was created.
///
/// Output only.
core.String? createTime;
/// Display Name of the assessment rule.
core.String? displayName;
/// Identifier.
///
/// The resource name of the assessment rule. Format:
/// projects/{project}/locations/{location}/assessmentRules/{assessment_rule}
core.String? name;
/// The sample rule for the assessment rule.
GoogleCloudContactcenterinsightsV1SampleRule? sampleRule;
/// Schedule info for the assessment rule.
GoogleCloudContactcenterinsightsV1ScheduleInfo? scheduleInfo;
/// The most recent time at which this assessment rule was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1AssessmentRule({
this.active,
this.createTime,
this.displayName,
this.name,
this.sampleRule,
this.scheduleInfo,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1AssessmentRule.fromJson(core.Map json_)
: this(
active: json_['active'] as core.bool?,
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
sampleRule: json_.containsKey('sampleRule')
? GoogleCloudContactcenterinsightsV1SampleRule.fromJson(
json_['sampleRule'] as core.Map<core.String, core.dynamic>,
)
: null,
scheduleInfo: json_.containsKey('scheduleInfo')
? GoogleCloudContactcenterinsightsV1ScheduleInfo.fromJson(
json_['scheduleInfo'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final active = this.active;
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final sampleRule = this.sampleRule;
final scheduleInfo = this.scheduleInfo;
final updateTime = this.updateTime;
return {
'active': ?active,
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'sampleRule': ?sampleRule,
'scheduleInfo': ?scheduleInfo,
'updateTime': ?updateTime,
};
}
}
/// An AuthorizedView represents a view of accessible Insights resources (for
/// example, Conversation and Scorecard).
///
/// Who have read access to the AuthorizedView resource will have access to
/// these Insight resources as well.
class GoogleCloudContactcenterinsightsV1AuthorizedView {
/// A filter to reduce conversation results to a specific subset.
///
/// The AuthorizedView's assigned permission (read/write) could be applied to
/// the subset of conversations. If conversation_filter is empty, there is no
/// restriction on the conversations that the AuthorizedView can access.
/// Having *authorizedViews.get* access to the AuthorizedView means having the
/// same read/write access to the Conversations (as well as
/// metadata/annotations linked to the conversation) that this AuthorizedView
/// has.
core.String? conversationFilter;
/// The time at which the authorized view was created.
///
/// Output only.
core.String? createTime;
/// Display Name.
///
/// Limit 64 characters.
core.String? displayName;
/// Identifier.
///
/// The resource name of the AuthorizedView. Format:
/// projects/{project}/locations/{location}/authorizedViewSets/{authorized_view_set}/authorizedViews/{authorized_view}
core.String? name;
/// The most recent time at which the authorized view was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1AuthorizedView({
this.conversationFilter,
this.createTime,
this.displayName,
this.name,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(core.Map json_)
: this(
conversationFilter: json_['conversationFilter'] as core.String?,
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationFilter = this.conversationFilter;
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final updateTime = this.updateTime;
return {
'conversationFilter': ?conversationFilter,
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'updateTime': ?updateTime,
};
}
}
/// An AuthorizedViewSet contains a set of AuthorizedView resources.
class GoogleCloudContactcenterinsightsV1AuthorizedViewSet {
/// Create time.
///
/// Output only.
core.String? createTime;
/// Display Name.
///
/// Limit 64 characters.
core.String? displayName;
/// Identifier.
///
/// The resource name of the AuthorizedViewSet. Format:
/// projects/{project}/locations/{location}/authorizedViewSets/{authorized_view_set}
core.String? name;
/// Update time.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1AuthorizedViewSet({
this.createTime,
this.displayName,
this.name,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1AuthorizedViewSet.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'updateTime': ?updateTime,
};
}
}
/// Rule for auto-labeling conversations.
class GoogleCloudContactcenterinsightsV1AutoLabelingRule {
/// Whether the rule is active.
core.bool? active;
/// Conditions to apply for auto-labeling the label_key.
///
/// Representing sequential block of if .. else if .. else statements. The
/// value of the first matching condition will be used.
core.List<
GoogleCloudContactcenterinsightsV1AutoLabelingRuleLabelingCondition
>?
conditions;
/// The time at which this rule was created.
///
/// Output only.
core.String? createTime;
/// The description of the rule.
core.String? description;
/// The user-provided display name of the rule.
core.String? displayName;
/// The label key.
///
/// This is also the {auto_labeling_rule} in the resource name. Only settable
/// if label_key_type is LABEL_KEY_TYPE_CUSTOM.
core.String? labelKey;
/// The type of the label key.
/// Possible string values are:
/// - "LABEL_KEY_TYPE_UNSPECIFIED" : Unspecified label key type.
/// - "LABEL_KEY_TYPE_CUSTOM" : The label key is custom defined by the user.
core.String? labelKeyType;
/// Identifier.
///
/// The resource name of the auto-labeling rule. Format:
/// projects/{project}/locations/{location}/autoLabelingRules/{auto_labeling_rule}
core.String? name;
/// The most recent time at which the rule was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1AutoLabelingRule({
this.active,
this.conditions,
this.createTime,
this.description,
this.displayName,
this.labelKey,
this.labelKeyType,
this.name,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(core.Map json_)
: this(
active: json_['active'] as core.bool?,
conditions: (json_['conditions'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AutoLabelingRuleLabelingCondition.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
createTime: json_['createTime'] as core.String?,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
labelKey: json_['labelKey'] as core.String?,
labelKeyType: json_['labelKeyType'] as core.String?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final active = this.active;
final conditions = this.conditions;
final createTime = this.createTime;
final description = this.description;
final displayName = this.displayName;
final labelKey = this.labelKey;
final labelKeyType = this.labelKeyType;
final name = this.name;
final updateTime = this.updateTime;
return {
'active': ?active,
'conditions': ?conditions,
'createTime': ?createTime,
'description': ?description,
'displayName': ?displayName,
'labelKey': ?labelKey,
'labelKeyType': ?labelKeyType,
'name': ?name,
'updateTime': ?updateTime,
};
}
}
/// Condition for auto-labeling conversations.
class GoogleCloudContactcenterinsightsV1AutoLabelingRuleLabelingCondition {
/// A optional CEL expression to be evaluated as a boolean value.
///
/// Once evaluated as true, then we will proceed with the value evaluation. An
/// empty condition will be auto evaluated as true.
core.String? condition;
/// CEL expression to be evaluated as the value.
core.String? value;
GoogleCloudContactcenterinsightsV1AutoLabelingRuleLabelingCondition({
this.condition,
this.value,
});
GoogleCloudContactcenterinsightsV1AutoLabelingRuleLabelingCondition.fromJson(
core.Map json_,
) : this(
condition: json_['condition'] as core.String?,
value: json_['value'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final condition = this.condition;
final value = this.value;
return {'condition': ?condition, 'value': ?value};
}
}
/// The request to analyze conversations in bulk.
class GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest {
/// Percentage of selected conversation to analyze, between \[0, 100\].
///
/// Required.
core.double? analysisPercentage;
/// To select the annotators to run and the phrase matchers to use (if any).
///
/// If not specified, all annotators will be run.
GoogleCloudContactcenterinsightsV1AnnotatorSelector? annotatorSelector;
/// Filter used to select the subset of conversations to analyze.
///
/// Required.
core.String? filter;
/// The parent resource to create analyses in.
///
/// Required.
core.String? parent;
/// If true, the labeling rules will be re-evaluated for the conversations.
///
/// Optional.
core.bool? relabel;
GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest({
this.analysisPercentage,
this.annotatorSelector,
this.filter,
this.parent,
this.relabel,
});
GoogleCloudContactcenterinsightsV1BulkAnalyzeConversationsRequest.fromJson(
core.Map json_,
) : this(
analysisPercentage: (json_['analysisPercentage'] as core.num?)
?.toDouble(),
annotatorSelector: json_.containsKey('annotatorSelector')
? GoogleCloudContactcenterinsightsV1AnnotatorSelector.fromJson(
json_['annotatorSelector']
as core.Map<core.String, core.dynamic>,
)
: null,
filter: json_['filter'] as core.String?,
parent: json_['parent'] as core.String?,
relabel: json_['relabel'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final analysisPercentage = this.analysisPercentage;
final annotatorSelector = this.annotatorSelector;
final filter = this.filter;
final parent = this.parent;
final relabel = this.relabel;
return {
'analysisPercentage': ?analysisPercentage,
'annotatorSelector': ?annotatorSelector,
'filter': ?filter,
'parent': ?parent,
'relabel': ?relabel,
};
}
}
/// The request to delete conversations in bulk.
class GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest {
/// Filter used to select the subset of conversations to delete.
core.String? filter;
/// If set to true, all of this conversation's analyses will also be deleted.
///
/// Otherwise, the request will only succeed if the conversation has no
/// analyses.
core.bool? force;
/// Maximum number of conversations to delete.
core.int? maxDeleteCount;
/// The parent resource to delete conversations from.
///
/// Format: projects/{project}/locations/{location}
///
/// Required.
core.String? parent;
GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest({
this.filter,
this.force,
this.maxDeleteCount,
this.parent,
});
GoogleCloudContactcenterinsightsV1BulkDeleteConversationsRequest.fromJson(
core.Map json_,
) : this(
filter: json_['filter'] as core.String?,
force: json_['force'] as core.bool?,
maxDeleteCount: json_['maxDeleteCount'] as core.int?,
parent: json_['parent'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final filter = this.filter;
final force = this.force;
final maxDeleteCount = this.maxDeleteCount;
final parent = this.parent;
return {
'filter': ?filter,
'force': ?force,
'maxDeleteCount': ?maxDeleteCount,
'parent': ?parent,
};
}
}
/// Request for the BulkDeleteFeedbackLabels endpoint.
class GoogleCloudContactcenterinsightsV1BulkDeleteFeedbackLabelsRequest {
/// A filter to reduce results to a specific subset.
///
/// Supports disjunctions (OR) and conjunctions (AND). Supported fields: *
/// `issue_model_id` * `qa_question_id` * `qa_scorecard_id` *
/// `min_create_time` * `max_create_time` * `min_update_time` *
/// `max_update_time` * `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// Optional.
core.String? filter;
/// The parent resource for new feedback labels.
///
/// Required.
core.String? parent;
GoogleCloudContactcenterinsightsV1BulkDeleteFeedbackLabelsRequest({
this.filter,
this.parent,
});
GoogleCloudContactcenterinsightsV1BulkDeleteFeedbackLabelsRequest.fromJson(
core.Map json_,
) : this(
filter: json_['filter'] as core.String?,
parent: json_['parent'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final filter = this.filter;
final parent = this.parent;
return {'filter': ?filter, 'parent': ?parent};
}
}
/// Request for the BulkDownloadFeedbackLabel endpoint.
class GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequest {
/// Filter parent conversations to download feedback labels for.
///
/// When specified, the feedback labels will be downloaded for the
/// conversations that match the filter. If `template_qa_scorecard_id` is set,
/// all the conversations that match the filter will be paired with the
/// questions under the scorecard for labeling.
///
/// Optional.
core.String? conversationFilter;
/// The type of feedback labels that will be downloaded.
///
/// Optional.
/// Possible string values are:
/// - "FEEDBACK_LABEL_TYPE_UNSPECIFIED" : Unspecified format
/// - "QUALITY_AI" : Downloaded file will contain all Quality AI labels from
/// the latest scorecard revision.
/// - "TOPIC_MODELING" : Downloaded file will contain only Topic Modeling
/// labels.
/// - "AGENT_ASSIST_SUMMARY" : Agent Assist Summarization labels.
core.String? feedbackLabelType;
/// A filter to reduce results to a specific subset.
///
/// Supports disjunctions (OR) and conjunctions (AND). Supported fields: *
/// `issue_model_id` * `qa_question_id` * `qa_scorecard_id` *
/// `min_create_time` * `max_create_time` * `min_update_time` *
/// `max_update_time` * `feedback_label_type`: QUALITY_AI, TOPIC_MODELING
///
/// Optional.
core.String? filter;
/// A cloud storage bucket destination.
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestGcsDestination?
gcsDestination;
/// Limits the maximum number of feedback labels that will be downloaded.
///
/// The first `N` feedback labels will be downloaded.
///
/// Optional.
core.int? maxDownloadCount;
/// The parent resource for new feedback labels.
///
/// Required.
core.String? parent;
/// A sheets document destination.
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestSheetsDestination?
sheetsDestination;
/// If set, a template for labeling conversations and scorecard questions will
/// be created from the conversation_filter and the questions under the
/// scorecard(s).
///
/// The feedback label `filter` will be ignored.
///
/// Optional.
core.List<core.String>? templateQaScorecardId;
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequest({
this.conversationFilter,
this.feedbackLabelType,
this.filter,
this.gcsDestination,
this.maxDownloadCount,
this.parent,
this.sheetsDestination,
this.templateQaScorecardId,
});
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequest.fromJson(
core.Map json_,
) : this(
conversationFilter: json_['conversationFilter'] as core.String?,
feedbackLabelType: json_['feedbackLabelType'] as core.String?,
filter: json_['filter'] as core.String?,
gcsDestination: json_.containsKey('gcsDestination')
? GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestGcsDestination.fromJson(
json_['gcsDestination'] as core.Map<core.String, core.dynamic>,
)
: null,
maxDownloadCount: json_['maxDownloadCount'] as core.int?,
parent: json_['parent'] as core.String?,
sheetsDestination: json_.containsKey('sheetsDestination')
? GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestSheetsDestination.fromJson(
json_['sheetsDestination']
as core.Map<core.String, core.dynamic>,
)
: null,
templateQaScorecardId: (json_['templateQaScorecardId'] as core.List?)
?.map((value) => value as core.String)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final conversationFilter = this.conversationFilter;
final feedbackLabelType = this.feedbackLabelType;
final filter = this.filter;
final gcsDestination = this.gcsDestination;
final maxDownloadCount = this.maxDownloadCount;
final parent = this.parent;
final sheetsDestination = this.sheetsDestination;
final templateQaScorecardId = this.templateQaScorecardId;
return {
'conversationFilter': ?conversationFilter,
'feedbackLabelType': ?feedbackLabelType,
'filter': ?filter,
'gcsDestination': ?gcsDestination,
'maxDownloadCount': ?maxDownloadCount,
'parent': ?parent,
'sheetsDestination': ?sheetsDestination,
'templateQaScorecardId': ?templateQaScorecardId,
};
}
}
/// Google Cloud Storage Object details to write the feedback labels to.
class GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestGcsDestination {
/// Add whitespace to the JSON file.
///
/// Makes easier to read, but increases file size. Only applicable for JSON
/// format.
///
/// Optional.
core.bool? addWhitespace;
/// Always print fields with no presence.
///
/// This is useful for printing fields that are not set, like implicit 0 value
/// or empty lists/maps. Only applicable for JSON format.
///
/// Optional.
core.bool? alwaysPrintEmptyFields;
/// File format in which the labels will be exported.
///
/// Required.
/// Possible string values are:
/// - "FORMAT_UNSPECIFIED" : Unspecified format.
/// - "CSV" : CSV format. 1,000 labels are stored per CSV file by default.
/// - "JSON" : JSON format. 1 label stored per JSON file by default.
core.String? format;
/// The Google Cloud Storage URI to write the feedback labels to.
///
/// The file name will be used as a prefix for the files written to the bucket
/// if the output needs to be split across multiple files, otherwise it will
/// be used as is. The file extension will be appended to the file name based
/// on the format selected. E.g. `gs://bucket_name/object_uri_prefix`
///
/// Required.
core.String? objectUri;
/// The number of records per file.
///
/// Applicable for either format.
///
/// Optional.
core.String? recordsPerFileCount;
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestGcsDestination({
this.addWhitespace,
this.alwaysPrintEmptyFields,
this.format,
this.objectUri,
this.recordsPerFileCount,
});
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestGcsDestination.fromJson(
core.Map json_,
) : this(
addWhitespace: json_['addWhitespace'] as core.bool?,
alwaysPrintEmptyFields: json_['alwaysPrintEmptyFields'] as core.bool?,
format: json_['format'] as core.String?,
objectUri: json_['objectUri'] as core.String?,
recordsPerFileCount: json_['recordsPerFileCount'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final addWhitespace = this.addWhitespace;
final alwaysPrintEmptyFields = this.alwaysPrintEmptyFields;
final format = this.format;
final objectUri = this.objectUri;
final recordsPerFileCount = this.recordsPerFileCount;
return {
'addWhitespace': ?addWhitespace,
'alwaysPrintEmptyFields': ?alwaysPrintEmptyFields,
'format': ?format,
'objectUri': ?objectUri,
'recordsPerFileCount': ?recordsPerFileCount,
};
}
}
/// Google Sheets document details to write the feedback labels to.
class GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestSheetsDestination {
/// The title of the new sheet to write the feedback labels to.
///
/// Optional.
core.String? sheetTitle;
/// The Google Sheets document to write the feedback labels to.
///
/// Retrieved from Google Sheets URI. E.g.
/// `https://docs.google.com/spreadsheets/d/1234567890` The spreadsheet must
/// be shared with the Insights P4SA. The spreadsheet ID written to will be
/// returned as `file_names` in the BulkDownloadFeedbackLabelsMetadata.
///
/// Required.
core.String? spreadsheetUri;
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestSheetsDestination({
this.sheetTitle,
this.spreadsheetUri,
});
GoogleCloudContactcenterinsightsV1BulkDownloadFeedbackLabelsRequestSheetsDestination.fromJson(
core.Map json_,
) : this(
sheetTitle: json_['sheetTitle'] as core.String?,
spreadsheetUri: json_['spreadsheetUri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final sheetTitle = this.sheetTitle;
final spreadsheetUri = this.spreadsheetUri;
return {'sheetTitle': ?sheetTitle, 'spreadsheetUri': ?spreadsheetUri};
}
}
/// The request for bulk uploading feedback labels.
class GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequest {
/// A cloud storage bucket source.
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestGcsSource?
gcsSource;
/// A sheets document source.
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestSheetsSource?
sheetsSource;
/// If set, upload will not happen and the labels will be validated.
///
/// If not set, then default behavior will be to upload the labels after
/// validation is complete.
///
/// Optional.
core.bool? validateOnly;
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequest({
this.gcsSource,
this.sheetsSource,
this.validateOnly,
});
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequest.fromJson(
core.Map json_,
) : this(
gcsSource: json_.containsKey('gcsSource')
? GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestGcsSource.fromJson(
json_['gcsSource'] as core.Map<core.String, core.dynamic>,
)
: null,
sheetsSource: json_.containsKey('sheetsSource')
? GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestSheetsSource.fromJson(
json_['sheetsSource'] as core.Map<core.String, core.dynamic>,
)
: null,
validateOnly: json_['validateOnly'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final gcsSource = this.gcsSource;
final sheetsSource = this.sheetsSource;
final validateOnly = this.validateOnly;
return {
'gcsSource': ?gcsSource,
'sheetsSource': ?sheetsSource,
'validateOnly': ?validateOnly,
};
}
}
/// Google Cloud Storage Object details to get the feedback label file from.
class GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestGcsSource {
/// File format which will be ingested.
///
/// Required.
/// Possible string values are:
/// - "FORMAT_UNSPECIFIED" : Unspecified format.
/// - "CSV" : CSV format.
/// - "JSON" : JSON format.
core.String? format;
/// The Google Cloud Storage URI of the file to import.
///
/// Format: `gs://bucket_name/object_name`
///
/// Required.
core.String? objectUri;
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestGcsSource({
this.format,
this.objectUri,
});
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestGcsSource.fromJson(
core.Map json_,
) : this(
format: json_['format'] as core.String?,
objectUri: json_['objectUri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final format = this.format;
final objectUri = this.objectUri;
return {'format': ?format, 'objectUri': ?objectUri};
}
}
/// Google Sheets document details to get the feedback label file from.
class GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestSheetsSource {
/// The Google Sheets document to write the feedback labels to.
///
/// Retrieved from Google Sheets URI. E.g.
/// `https://docs.google.com/spreadsheets/d/1234567890` The spreadsheet must
/// be shared with the Insights P4SA.
///
/// Required.
core.String? spreadsheetUri;
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestSheetsSource({
this.spreadsheetUri,
});
GoogleCloudContactcenterinsightsV1BulkUploadFeedbackLabelsRequestSheetsSource.fromJson(
core.Map json_,
) : this(spreadsheetUri: json_['spreadsheetUri'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final spreadsheetUri = this.spreadsheetUri;
return {'spreadsheetUri': ?spreadsheetUri};
}
}
/// Response of querying an issue model's statistics.
class GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse {
/// The latest label statistics for the queried issue model.
///
/// Includes results on both training data and data labeled after deployment.
GoogleCloudContactcenterinsightsV1IssueModelLabelStats? currentStats;
GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse({
this.currentStats,
});
GoogleCloudContactcenterinsightsV1CalculateIssueModelStatsResponse.fromJson(
core.Map json_,
) : this(
currentStats: json_.containsKey('currentStats')
? GoogleCloudContactcenterinsightsV1IssueModelLabelStats.fromJson(
json_['currentStats'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final currentStats = this.currentStats;
return {'currentStats': ?currentStats};
}
}
/// The request for calculating conversation statistics.
class GoogleCloudContactcenterinsightsV1CalculateStatsRequest {
/// A filter to reduce results to a specific subset.
///
/// This field is useful for getting statistics about conversations with
/// specific properties.
core.String? filter;
GoogleCloudContactcenterinsightsV1CalculateStatsRequest({this.filter});
GoogleCloudContactcenterinsightsV1CalculateStatsRequest.fromJson(
core.Map json_,
) : this(filter: json_['filter'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final filter = this.filter;
return {'filter': ?filter};
}
}
/// The response for calculating conversation statistics.
class GoogleCloudContactcenterinsightsV1CalculateStatsResponse {
/// The average duration of all conversations.
///
/// The average is calculated using only conversations that have a time
/// duration.
core.String? averageDuration;
/// The average number of turns per conversation.
core.int? averageTurnCount;
/// The total number of conversations.
core.int? conversationCount;
/// A time series representing the count of conversations created over time
/// that match that requested filter criteria.
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeries?
conversationCountTimeSeries;
/// A map associating each custom highlighter resource name with its
/// respective number of matches in the set of conversations.
core.Map<core.String, core.int>? customHighlighterMatches;
/// A map associating each issue resource name with its respective number of
/// matches in the set of conversations.
///
/// Key has the format: `projects//locations//issueModels//issues/`
/// Deprecated, use `issue_matches_stats` field instead.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.Map<core.String, core.int>? issueMatches;
/// A map associating each issue resource name with its respective number of
/// matches in the set of conversations.
///
/// Key has the format: `projects//locations//issueModels//issues/`
core.Map<
core.String,
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats
>?
issueMatchesStats;
/// A map associating each smart highlighter display name with its respective
/// number of matches in the set of conversations.
core.Map<core.String, core.int>? smartHighlighterMatches;
GoogleCloudContactcenterinsightsV1CalculateStatsResponse({
this.averageDuration,
this.averageTurnCount,
this.conversationCount,
this.conversationCountTimeSeries,
this.customHighlighterMatches,
this.issueMatches,
this.issueMatchesStats,
this.smartHighlighterMatches,
});
GoogleCloudContactcenterinsightsV1CalculateStatsResponse.fromJson(
core.Map json_,
) : this(
averageDuration: json_['averageDuration'] as core.String?,
averageTurnCount: json_['averageTurnCount'] as core.int?,
conversationCount: json_['conversationCount'] as core.int?,
conversationCountTimeSeries:
json_.containsKey('conversationCountTimeSeries')
? GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeries.fromJson(
json_['conversationCountTimeSeries']
as core.Map<core.String, core.dynamic>,
)
: null,
customHighlighterMatches:
(json_['customHighlighterMatches']
as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.int)),
issueMatches:
(json_['issueMatches'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.int)),
issueMatchesStats:
(json_['issueMatchesStats'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
smartHighlighterMatches:
(json_['smartHighlighterMatches']
as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.int)),
);
core.Map<core.String, core.dynamic> toJson() {
final averageDuration = this.averageDuration;
final averageTurnCount = this.averageTurnCount;
final conversationCount = this.conversationCount;
final conversationCountTimeSeries = this.conversationCountTimeSeries;
final customHighlighterMatches = this.customHighlighterMatches;
final issueMatches = this.issueMatches;
final issueMatchesStats = this.issueMatchesStats;
final smartHighlighterMatches = this.smartHighlighterMatches;
return {
'averageDuration': ?averageDuration,
'averageTurnCount': ?averageTurnCount,
'conversationCount': ?conversationCount,
'conversationCountTimeSeries': ?conversationCountTimeSeries,
'customHighlighterMatches': ?customHighlighterMatches,
'issueMatches': ?issueMatches,
'issueMatchesStats': ?issueMatchesStats,
'smartHighlighterMatches': ?smartHighlighterMatches,
};
}
}
/// A time series representing conversations over time.
class GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeries {
/// The duration of each interval.
core.String? intervalDuration;
/// An ordered list of intervals from earliest to latest, where each interval
/// represents the number of conversations that transpired during the time
/// window.
core.List<
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeriesInterval
>?
points;
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeries({
this.intervalDuration,
this.points,
});
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeries.fromJson(
core.Map json_,
) : this(
intervalDuration: json_['intervalDuration'] as core.String?,
points: (json_['points'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeriesInterval.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final intervalDuration = this.intervalDuration;
final points = this.points;
return {'intervalDuration': ?intervalDuration, 'points': ?points};
}
}
/// A single interval in a time series.
class GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeriesInterval {
/// The number of conversations created in this interval.
core.int? conversationCount;
/// The start time of this interval.
core.String? startTime;
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeriesInterval({
this.conversationCount,
this.startTime,
});
GoogleCloudContactcenterinsightsV1CalculateStatsResponseTimeSeriesInterval.fromJson(
core.Map json_,
) : this(
conversationCount: json_['conversationCount'] as core.int?,
startTime: json_['startTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationCount = this.conversationCount;
final startTime = this.startTime;
return {'conversationCount': ?conversationCount, 'startTime': ?startTime};
}
}
/// A piece of metadata that applies to a window of a call.
class GoogleCloudContactcenterinsightsV1CallAnnotation {
/// The boundary in the conversation where the annotation ends, inclusive.
GoogleCloudContactcenterinsightsV1AnnotationBoundary? annotationEndBoundary;
/// The boundary in the conversation where the annotation starts, inclusive.
GoogleCloudContactcenterinsightsV1AnnotationBoundary? annotationStartBoundary;
/// The channel of the audio where the annotation occurs.
///
/// For single-channel audio, this field is not populated.
core.int? channelTag;
/// Data specifying an entity mention.
GoogleCloudContactcenterinsightsV1EntityMentionData? entityMentionData;
/// Data specifying a hold.
GoogleCloudContactcenterinsightsV1HoldData? holdData;
/// Data specifying an intent match.
GoogleCloudContactcenterinsightsV1IntentMatchData? intentMatchData;
/// Data specifying an interruption.
GoogleCloudContactcenterinsightsV1InterruptionData? interruptionData;
/// Data specifying an issue match.
GoogleCloudContactcenterinsightsV1IssueMatchData? issueMatchData;
/// Data specifying a phrase match.
GoogleCloudContactcenterinsightsV1PhraseMatchData? phraseMatchData;
/// Data specifying sentiment.
GoogleCloudContactcenterinsightsV1SentimentData? sentimentData;
/// Data specifying silence.
GoogleCloudContactcenterinsightsV1SilenceData? silenceData;
GoogleCloudContactcenterinsightsV1CallAnnotation({
this.annotationEndBoundary,
this.annotationStartBoundary,
this.channelTag,
this.entityMentionData,
this.holdData,
this.intentMatchData,
this.interruptionData,
this.issueMatchData,
this.phraseMatchData,
this.sentimentData,
this.silenceData,
});
GoogleCloudContactcenterinsightsV1CallAnnotation.fromJson(core.Map json_)
: this(
annotationEndBoundary: json_.containsKey('annotationEndBoundary')
? GoogleCloudContactcenterinsightsV1AnnotationBoundary.fromJson(
json_['annotationEndBoundary']
as core.Map<core.String, core.dynamic>,
)
: null,
annotationStartBoundary: json_.containsKey('annotationStartBoundary')
? GoogleCloudContactcenterinsightsV1AnnotationBoundary.fromJson(
json_['annotationStartBoundary']
as core.Map<core.String, core.dynamic>,
)
: null,
channelTag: json_['channelTag'] as core.int?,
entityMentionData: json_.containsKey('entityMentionData')
? GoogleCloudContactcenterinsightsV1EntityMentionData.fromJson(
json_['entityMentionData']
as core.Map<core.String, core.dynamic>,
)
: null,
holdData: json_.containsKey('holdData')
? GoogleCloudContactcenterinsightsV1HoldData.fromJson(
json_['holdData'] as core.Map<core.String, core.dynamic>,
)
: null,
intentMatchData: json_.containsKey('intentMatchData')
? GoogleCloudContactcenterinsightsV1IntentMatchData.fromJson(
json_['intentMatchData'] as core.Map<core.String, core.dynamic>,
)
: null,
interruptionData: json_.containsKey('interruptionData')
? GoogleCloudContactcenterinsightsV1InterruptionData.fromJson(
json_['interruptionData']
as core.Map<core.String, core.dynamic>,
)
: null,
issueMatchData: json_.containsKey('issueMatchData')
? GoogleCloudContactcenterinsightsV1IssueMatchData.fromJson(
json_['issueMatchData'] as core.Map<core.String, core.dynamic>,
)
: null,
phraseMatchData: json_.containsKey('phraseMatchData')
? GoogleCloudContactcenterinsightsV1PhraseMatchData.fromJson(
json_['phraseMatchData'] as core.Map<core.String, core.dynamic>,
)
: null,
sentimentData: json_.containsKey('sentimentData')
? GoogleCloudContactcenterinsightsV1SentimentData.fromJson(
json_['sentimentData'] as core.Map<core.String, core.dynamic>,
)
: null,
silenceData: json_.containsKey('silenceData')
? GoogleCloudContactcenterinsightsV1SilenceData.fromJson(
json_['silenceData'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final annotationEndBoundary = this.annotationEndBoundary;
final annotationStartBoundary = this.annotationStartBoundary;
final channelTag = this.channelTag;
final entityMentionData = this.entityMentionData;
final holdData = this.holdData;
final intentMatchData = this.intentMatchData;
final interruptionData = this.interruptionData;
final issueMatchData = this.issueMatchData;
final phraseMatchData = this.phraseMatchData;
final sentimentData = this.sentimentData;
final silenceData = this.silenceData;
return {
'annotationEndBoundary': ?annotationEndBoundary,
'annotationStartBoundary': ?annotationStartBoundary,
'channelTag': ?channelTag,
'entityMentionData': ?entityMentionData,
'holdData': ?holdData,
'intentMatchData': ?intentMatchData,
'interruptionData': ?interruptionData,
'issueMatchData': ?issueMatchData,
'phraseMatchData': ?phraseMatchData,
'sentimentData': ?sentimentData,
'silenceData': ?silenceData,
};
}
}
/// The CES end session annotation.
class GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation {
/// End session signal from CES.
GoogleCloudCesV1mainEndSession? endSession;
GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation({this.endSession});
GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation.fromJson(
core.Map json_,
) : this(
endSession: json_.containsKey('endSession')
? GoogleCloudCesV1mainEndSession.fromJson(
json_['endSession'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final endSession = this.endSession;
return {'endSession': ?endSession};
}
}
/// The CES diagnostic information.
class GoogleCloudContactcenterinsightsV1CesTurnAnnotation {
/// The messages in the turn.
core.List<GoogleCloudCesV1mainMessage>? messages;
/// The root span of the action processing.
GoogleCloudCesV1mainSpan? rootSpan;
GoogleCloudContactcenterinsightsV1CesTurnAnnotation({
this.messages,
this.rootSpan,
});
GoogleCloudContactcenterinsightsV1CesTurnAnnotation.fromJson(core.Map json_)
: this(
messages: (json_['messages'] as core.List?)
?.map(
(value) => GoogleCloudCesV1mainMessage.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
rootSpan: json_.containsKey('rootSpan')
? GoogleCloudCesV1mainSpan.fromJson(
json_['rootSpan'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final messages = this.messages;
final rootSpan = this.rootSpan;
return {'messages': ?messages, 'rootSpan': ?rootSpan};
}
}
/// Configurable dashboard's widget that displays data as a chart.
class GoogleCloudContactcenterinsightsV1Chart {
/// Optional action to be taken when the chart is clicked.
GoogleCloudContactcenterinsightsV1ChartAction? action;
/// Chart type.
///
/// Output only.
/// Possible string values are:
/// - "CHART_TYPE_UNSPECIFIED" : Unspecified chart type.
/// - "SYSTEM_DEFINED" : Pre-defined chart type.
/// - "USER_DEFINED" : Configurable chart type.
core.String? chartType;
/// Chart visualization type.
/// Possible string values are:
/// - "CHART_VISUALIZATION_TYPE_UNSPECIFIED" : Unspecified chart visualization
/// type.
/// - "BAR" : Bar chart.
/// - "LINE" : Line chart.
/// - "AREA" : Area chart.
/// - "PIE" : Pie chart.
/// - "SCATTER" : Scatter chart.
/// - "TABLE" : Table chart.
/// - "SCORE_CARD" : Score card chart.
/// - "SUNBURST" : Sunburst chart.
/// - "GAUGE" : Gauge chart.
/// - "SANKEY" : Sankey chart.
core.String? chartVisualizationType;
/// Chart create time.
///
/// Output only.
core.String? createTime;
GoogleCloudContactcenterinsightsV1ChartDataSource? dataSource;
/// Date range config applied to the chart.
GoogleCloudContactcenterinsightsV1DateRangeConfig? dateRangeConfig;
/// Chart description
core.String? description;
/// User provided display name of the chart.
core.String? displayName;
/// Filter applied to all charts in the container.
///
/// Should support scope later.
core.String? filter;
/// The height of the chart in grid units.
core.int? height;
/// Identifier.
///
/// Chart resource name. Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}/charts/{chart}
core.String? name;
/// Chart last update time.
///
/// Output only.
core.String? updateTime;
/// The width of the chart in grid units.
core.int? width;
GoogleCloudContactcenterinsightsV1Chart({
this.action,
this.chartType,
this.chartVisualizationType,
this.createTime,
this.dataSource,
this.dateRangeConfig,
this.description,
this.displayName,
this.filter,
this.height,
this.name,
this.updateTime,
this.width,
});
GoogleCloudContactcenterinsightsV1Chart.fromJson(core.Map json_)
: this(
action: json_.containsKey('action')
? GoogleCloudContactcenterinsightsV1ChartAction.fromJson(
json_['action'] as core.Map<core.String, core.dynamic>,
)
: null,
chartType: json_['chartType'] as core.String?,
chartVisualizationType: json_['chartVisualizationType'] as core.String?,
createTime: json_['createTime'] as core.String?,
dataSource: json_.containsKey('dataSource')
? GoogleCloudContactcenterinsightsV1ChartDataSource.fromJson(
json_['dataSource'] as core.Map<core.String, core.dynamic>,
)
: null,
dateRangeConfig: json_.containsKey('dateRangeConfig')
? GoogleCloudContactcenterinsightsV1DateRangeConfig.fromJson(
json_['dateRangeConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
filter: json_['filter'] as core.String?,
height: json_['height'] as core.int?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
width: json_['width'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final action = this.action;
final chartType = this.chartType;
final chartVisualizationType = this.chartVisualizationType;
final createTime = this.createTime;
final dataSource = this.dataSource;
final dateRangeConfig = this.dateRangeConfig;
final description = this.description;
final displayName = this.displayName;
final filter = this.filter;
final height = this.height;
final name = this.name;
final updateTime = this.updateTime;
final width = this.width;
return {
'action': ?action,
'chartType': ?chartType,
'chartVisualizationType': ?chartVisualizationType,
'createTime': ?createTime,
'dataSource': ?dataSource,
'dateRangeConfig': ?dateRangeConfig,
'description': ?description,
'displayName': ?displayName,
'filter': ?filter,
'height': ?height,
'name': ?name,
'updateTime': ?updateTime,
'width': ?width,
};
}
}
/// The action to be taken when the chart is clicked.
class GoogleCloudContactcenterinsightsV1ChartAction {
/// Redirect action.
GoogleCloudContactcenterinsightsV1RedirectAction? redirectAction;
GoogleCloudContactcenterinsightsV1ChartAction({this.redirectAction});
GoogleCloudContactcenterinsightsV1ChartAction.fromJson(core.Map json_)
: this(
redirectAction: json_.containsKey('redirectAction')
? GoogleCloudContactcenterinsightsV1RedirectAction.fromJson(
json_['redirectAction'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final redirectAction = this.redirectAction;
return {'redirectAction': ?redirectAction};
}
}
/// The request data for visualizing the dataset in the chart.
class GoogleCloudContactcenterinsightsV1ChartDataSource {
/// Use natural language query to generate the chart.
GoogleCloudContactcenterinsightsV1GenerativeInsights? generativeInsights;
/// Use the existing QueryMetrics to generate the chart.
GoogleCloudContactcenterinsightsV1QueryMetrics? queryMetrics;
GoogleCloudContactcenterinsightsV1ChartDataSource({
this.generativeInsights,
this.queryMetrics,
});
GoogleCloudContactcenterinsightsV1ChartDataSource.fromJson(core.Map json_)
: this(
generativeInsights: json_.containsKey('generativeInsights')
? GoogleCloudContactcenterinsightsV1GenerativeInsights.fromJson(
json_['generativeInsights']
as core.Map<core.String, core.dynamic>,
)
: null,
queryMetrics: json_.containsKey('queryMetrics')
? GoogleCloudContactcenterinsightsV1QueryMetrics.fromJson(
json_['queryMetrics'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final generativeInsights = this.generativeInsights;
final queryMetrics = this.queryMetrics;
return {
'generativeInsights': ?generativeInsights,
'queryMetrics': ?queryMetrics,
};
}
}
/// Configurable dashboard's container.
///
/// Container can contain multiple widgets.
class GoogleCloudContactcenterinsightsV1Container {
/// Unique ID for the container.
///
/// Output only.
core.String? containerId;
/// Date range config applied to all charts in the container.
GoogleCloudContactcenterinsightsV1DateRangeConfig? dateRangeConfig;
/// Container description
core.String? description;
/// User provided display name of the Container.
core.String? displayName;
/// Filter applied to all charts in the container.
///
/// Should support scope later.
core.String? filter;
/// The height of the container in grid units.
core.int? height;
/// Widgets in the Container.
core.List<GoogleCloudContactcenterinsightsV1Widget>? widgets;
/// The width of the container in grid units.
core.int? width;
GoogleCloudContactcenterinsightsV1Container({
this.containerId,
this.dateRangeConfig,
this.description,
this.displayName,
this.filter,
this.height,
this.widgets,
this.width,
});
GoogleCloudContactcenterinsightsV1Container.fromJson(core.Map json_)
: this(
containerId: json_['containerId'] as core.String?,
dateRangeConfig: json_.containsKey('dateRangeConfig')
? GoogleCloudContactcenterinsightsV1DateRangeConfig.fromJson(
json_['dateRangeConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
filter: json_['filter'] as core.String?,
height: json_['height'] as core.int?,
widgets: (json_['widgets'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Widget.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
width: json_['width'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final containerId = this.containerId;
final dateRangeConfig = this.dateRangeConfig;
final description = this.description;
final displayName = this.displayName;
final filter = this.filter;
final height = this.height;
final widgets = this.widgets;
final width = this.width;
return {
'containerId': ?containerId,
'dateRangeConfig': ?dateRangeConfig,
'description': ?description,
'displayName': ?displayName,
'filter': ?filter,
'height': ?height,
'widgets': ?widgets,
'width': ?width,
};
}
}
/// The conversation resource.
class GoogleCloudContactcenterinsightsV1Conversation {
/// An opaque, user-specified string representing the human agent who handled
/// the conversation.
core.String? agentId;
/// Call-specific metadata.
GoogleCloudContactcenterinsightsV1ConversationCallMetadata? callMetadata;
/// Info for correlating across conversations.
///
/// Output only.
GoogleCloudContactcenterinsightsV1ConversationCorrelationInfo?
correlationInfo;
/// The time at which the conversation was created.
///
/// Output only.
core.String? createTime;
/// The source of the audio and transcription for the conversation.
GoogleCloudContactcenterinsightsV1ConversationDataSource? dataSource;
/// All the matched Dialogflow intents in the call.
///
/// The key corresponds to a Dialogflow intent, format:
/// projects/{project}/agent/{agent}/intents/{intent}
///
/// Output only.
core.Map<core.String, GoogleCloudContactcenterinsightsV1DialogflowIntent>?
dialogflowIntents;
/// The duration of the conversation.
///
/// Output only.
core.String? duration;
/// The time at which this conversation should expire.
///
/// After this time, the conversation data and any associated analyses will be
/// deleted.
core.String? expireTime;
/// A map for the user to specify any custom fields.
///
/// A maximum of 100 labels per conversation is allowed, with a maximum of 256
/// characters per entry.
core.Map<core.String, core.String>? labels;
/// A user-specified language code for the conversation.
core.String? languageCode;
/// The conversation's latest analysis, if one exists.
///
/// Output only.
GoogleCloudContactcenterinsightsV1Analysis? latestAnalysis;
/// Latest summary of the conversation.
///
/// Output only.
GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData?
latestSummary;
/// The conversation medium.
///
/// Immutable.
/// Possible string values are:
/// - "MEDIUM_UNSPECIFIED" : Default value for unspecified.
/// - "PHONE_CALL" : The format for conversations that took place over the
/// phone.
/// - "CHAT" : The format for conversations that took place over chat.
core.String? medium;
/// Input only.
///
/// JSON metadata encoded as a string. This field is primarily used by
/// Insights integrations with various telephony systems and must be in one of
/// Insight's supported formats.
core.String? metadataJson;
/// The resource name of the conversation.
///
/// Format:
/// projects/{project}/locations/{location}/conversations/{conversation}
///
/// Immutable.
core.String? name;
/// Obfuscated user ID which the customer sent to us.
core.String? obfuscatedUserId;
/// Conversation metadata related to quality management.
GoogleCloudContactcenterinsightsV1ConversationQualityMetadata?
qualityMetadata;
/// The annotations that were generated during the customer and agent
/// interaction.
///
/// Output only.
core.List<GoogleCloudContactcenterinsightsV1RuntimeAnnotation>?
runtimeAnnotations;
/// The time at which the conversation started.
core.String? startTime;
/// The conversation transcript.
///
/// Output only.
GoogleCloudContactcenterinsightsV1ConversationTranscript? transcript;
/// Input only.
///
/// The TTL for this resource. If specified, then this TTL will be used to
/// calculate the expire time.
core.String? ttl;
/// The number of turns in the conversation.
///
/// Output only.
core.int? turnCount;
/// The most recent time at which the conversation was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Conversation({
this.agentId,
this.callMetadata,
this.correlationInfo,
this.createTime,
this.dataSource,
this.dialogflowIntents,
this.duration,
this.expireTime,
this.labels,
this.languageCode,
this.latestAnalysis,
this.latestSummary,
this.medium,
this.metadataJson,
this.name,
this.obfuscatedUserId,
this.qualityMetadata,
this.runtimeAnnotations,
this.startTime,
this.transcript,
this.ttl,
this.turnCount,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Conversation.fromJson(core.Map json_)
: this(
agentId: json_['agentId'] as core.String?,
callMetadata: json_.containsKey('callMetadata')
? GoogleCloudContactcenterinsightsV1ConversationCallMetadata.fromJson(
json_['callMetadata'] as core.Map<core.String, core.dynamic>,
)
: null,
correlationInfo: json_.containsKey('correlationInfo')
? GoogleCloudContactcenterinsightsV1ConversationCorrelationInfo.fromJson(
json_['correlationInfo'] as core.Map<core.String, core.dynamic>,
)
: null,
createTime: json_['createTime'] as core.String?,
dataSource: json_.containsKey('dataSource')
? GoogleCloudContactcenterinsightsV1ConversationDataSource.fromJson(
json_['dataSource'] as core.Map<core.String, core.dynamic>,
)
: null,
dialogflowIntents:
(json_['dialogflowIntents'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1DialogflowIntent.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
duration: json_['duration'] as core.String?,
expireTime: json_['expireTime'] as core.String?,
labels: (json_['labels'] as core.Map<core.String, core.dynamic>?)?.map(
(key, value) => core.MapEntry(key, value as core.String),
),
languageCode: json_['languageCode'] as core.String?,
latestAnalysis: json_.containsKey('latestAnalysis')
? GoogleCloudContactcenterinsightsV1Analysis.fromJson(
json_['latestAnalysis'] as core.Map<core.String, core.dynamic>,
)
: null,
latestSummary: json_.containsKey('latestSummary')
? GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData.fromJson(
json_['latestSummary'] as core.Map<core.String, core.dynamic>,
)
: null,
medium: json_['medium'] as core.String?,
metadataJson: json_['metadataJson'] as core.String?,
name: json_['name'] as core.String?,
obfuscatedUserId: json_['obfuscatedUserId'] as core.String?,
qualityMetadata: json_.containsKey('qualityMetadata')
? GoogleCloudContactcenterinsightsV1ConversationQualityMetadata.fromJson(
json_['qualityMetadata'] as core.Map<core.String, core.dynamic>,
)
: null,
runtimeAnnotations: (json_['runtimeAnnotations'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1RuntimeAnnotation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
startTime: json_['startTime'] as core.String?,
transcript: json_.containsKey('transcript')
? GoogleCloudContactcenterinsightsV1ConversationTranscript.fromJson(
json_['transcript'] as core.Map<core.String, core.dynamic>,
)
: null,
ttl: json_['ttl'] as core.String?,
turnCount: json_['turnCount'] as core.int?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentId = this.agentId;
final callMetadata = this.callMetadata;
final correlationInfo = this.correlationInfo;
final createTime = this.createTime;
final dataSource = this.dataSource;
final dialogflowIntents = this.dialogflowIntents;
final duration = this.duration;
final expireTime = this.expireTime;
final labels = this.labels;
final languageCode = this.languageCode;
final latestAnalysis = this.latestAnalysis;
final latestSummary = this.latestSummary;
final medium = this.medium;
final metadataJson = this.metadataJson;
final name = this.name;
final obfuscatedUserId = this.obfuscatedUserId;
final qualityMetadata = this.qualityMetadata;
final runtimeAnnotations = this.runtimeAnnotations;
final startTime = this.startTime;
final transcript = this.transcript;
final ttl = this.ttl;
final turnCount = this.turnCount;
final updateTime = this.updateTime;
return {
'agentId': ?agentId,
'callMetadata': ?callMetadata,
'correlationInfo': ?correlationInfo,
'createTime': ?createTime,
'dataSource': ?dataSource,
'dialogflowIntents': ?dialogflowIntents,
'duration': ?duration,
'expireTime': ?expireTime,
'labels': ?labels,
'languageCode': ?languageCode,
'latestAnalysis': ?latestAnalysis,
'latestSummary': ?latestSummary,
'medium': ?medium,
'metadataJson': ?metadataJson,
'name': ?name,
'obfuscatedUserId': ?obfuscatedUserId,
'qualityMetadata': ?qualityMetadata,
'runtimeAnnotations': ?runtimeAnnotations,
'startTime': ?startTime,
'transcript': ?transcript,
'ttl': ?ttl,
'turnCount': ?turnCount,
'updateTime': ?updateTime,
};
}
}
/// Call-specific metadata.
class GoogleCloudContactcenterinsightsV1ConversationCallMetadata {
/// The audio channel that contains the agent.
core.int? agentChannel;
/// The audio channel that contains the customer.
core.int? customerChannel;
GoogleCloudContactcenterinsightsV1ConversationCallMetadata({
this.agentChannel,
this.customerChannel,
});
GoogleCloudContactcenterinsightsV1ConversationCallMetadata.fromJson(
core.Map json_,
) : this(
agentChannel: json_['agentChannel'] as core.int?,
customerChannel: json_['customerChannel'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentChannel = this.agentChannel;
final customerChannel = this.customerChannel;
return {'agentChannel': ?agentChannel, 'customerChannel': ?customerChannel};
}
}
/// Info for correlating across conversations.
class GoogleCloudContactcenterinsightsV1ConversationCorrelationInfo {
/// The correlation types of this conversation.
///
/// A single conversation can have multiple correlation types. For example a
/// conversation that only has a single segment is both a SEGMENT and a
/// FULL_CONVERSATION.
///
/// Output only.
core.List<core.String>? correlationTypes;
/// The full conversation correlation id this conversation is a segment of.
///
/// Output only.
core.String? fullConversationCorrelationId;
/// The full conversation correlation id this conversation is a merged
/// conversation of.
///
/// Output only.
core.String? mergedFullConversationCorrelationId;
GoogleCloudContactcenterinsightsV1ConversationCorrelationInfo({
this.correlationTypes,
this.fullConversationCorrelationId,
this.mergedFullConversationCorrelationId,
});
GoogleCloudContactcenterinsightsV1ConversationCorrelationInfo.fromJson(
core.Map json_,
) : this(
correlationTypes: (json_['correlationTypes'] as core.List?)
?.map((value) => value as core.String)
.toList(),
fullConversationCorrelationId:
json_['fullConversationCorrelationId'] as core.String?,
mergedFullConversationCorrelationId:
json_['mergedFullConversationCorrelationId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final correlationTypes = this.correlationTypes;
final fullConversationCorrelationId = this.fullConversationCorrelationId;
final mergedFullConversationCorrelationId =
this.mergedFullConversationCorrelationId;
return {
'correlationTypes': ?correlationTypes,
'fullConversationCorrelationId': ?fullConversationCorrelationId,
'mergedFullConversationCorrelationId':
?mergedFullConversationCorrelationId,
};
}
}
/// Options for configuring what metadata is included in the conversation data
/// used in QAI and Discovery Engine.
class GoogleCloudContactcenterinsightsV1ConversationDataOptions {
/// Whether to include the per turn Dialogflow interaction data in
/// conversation transcript.
core.bool? includeDialogflowInteractionData;
GoogleCloudContactcenterinsightsV1ConversationDataOptions({
this.includeDialogflowInteractionData,
});
GoogleCloudContactcenterinsightsV1ConversationDataOptions.fromJson(
core.Map json_,
) : this(
includeDialogflowInteractionData:
json_['includeDialogflowInteractionData'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final includeDialogflowInteractionData =
this.includeDialogflowInteractionData;
return {
'includeDialogflowInteractionData': ?includeDialogflowInteractionData,
};
}
}
/// The conversation source, which is a combination of transcript and audio.
class GoogleCloudContactcenterinsightsV1ConversationDataSource {
/// The source when the conversation comes from Dialogflow.
GoogleCloudContactcenterinsightsV1DialogflowSource? dialogflowSource;
/// A Cloud Storage location specification for the audio and transcript.
GoogleCloudContactcenterinsightsV1GcsSource? gcsSource;
/// Cloud Storage URI that points to a file that contains the conversation
/// metadata.
core.String? metadataUri;
/// Cloud Storage URIs that points to files that contain the conversation
/// audio for each turn.
///
/// Assume the order of the URIs is the same as the order of the transcript
/// turns.
core.List<
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio
>?
turnLevelAudios;
GoogleCloudContactcenterinsightsV1ConversationDataSource({
this.dialogflowSource,
this.gcsSource,
this.metadataUri,
this.turnLevelAudios,
});
GoogleCloudContactcenterinsightsV1ConversationDataSource.fromJson(
core.Map json_,
) : this(
dialogflowSource: json_.containsKey('dialogflowSource')
? GoogleCloudContactcenterinsightsV1DialogflowSource.fromJson(
json_['dialogflowSource']
as core.Map<core.String, core.dynamic>,
)
: null,
gcsSource: json_.containsKey('gcsSource')
? GoogleCloudContactcenterinsightsV1GcsSource.fromJson(
json_['gcsSource'] as core.Map<core.String, core.dynamic>,
)
: null,
metadataUri: json_['metadataUri'] as core.String?,
turnLevelAudios: (json_['turnLevelAudios'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final dialogflowSource = this.dialogflowSource;
final gcsSource = this.gcsSource;
final metadataUri = this.metadataUri;
final turnLevelAudios = this.turnLevelAudios;
return {
'dialogflowSource': ?dialogflowSource,
'gcsSource': ?gcsSource,
'metadataUri': ?metadataUri,
'turnLevelAudios': ?turnLevelAudios,
};
}
}
/// A wrapper for holding the audio for any given turn.
class GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio {
/// The duration of the audio.
core.String? audioDuration;
/// The Cloud Storage URI of the audio for any given turn.
core.String? audioGcsUri;
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio({
this.audioDuration,
this.audioGcsUri,
});
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio.fromJson(
core.Map json_,
) : this(
audioDuration: json_['audioDuration'] as core.String?,
audioGcsUri: json_['audioGcsUri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final audioDuration = this.audioDuration;
final audioGcsUri = this.audioGcsUri;
return {'audioDuration': ?audioDuration, 'audioGcsUri': ?audioGcsUri};
}
}
/// One channel of conversation-level sentiment data.
class GoogleCloudContactcenterinsightsV1ConversationLevelSentiment {
/// The channel of the audio that the data applies to.
core.int? channelTag;
/// Data specifying sentiment.
GoogleCloudContactcenterinsightsV1SentimentData? sentimentData;
GoogleCloudContactcenterinsightsV1ConversationLevelSentiment({
this.channelTag,
this.sentimentData,
});
GoogleCloudContactcenterinsightsV1ConversationLevelSentiment.fromJson(
core.Map json_,
) : this(
channelTag: json_['channelTag'] as core.int?,
sentimentData: json_.containsKey('sentimentData')
? GoogleCloudContactcenterinsightsV1SentimentData.fromJson(
json_['sentimentData'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final channelTag = this.channelTag;
final sentimentData = this.sentimentData;
return {'channelTag': ?channelTag, 'sentimentData': ?sentimentData};
}
}
/// Conversation-level silence data.
class GoogleCloudContactcenterinsightsV1ConversationLevelSilence {
/// Amount of time calculated to be in silence.
core.String? silenceDuration;
/// Percentage of the total conversation spent in silence.
core.double? silencePercentage;
GoogleCloudContactcenterinsightsV1ConversationLevelSilence({
this.silenceDuration,
this.silencePercentage,
});
GoogleCloudContactcenterinsightsV1ConversationLevelSilence.fromJson(
core.Map json_,
) : this(
silenceDuration: json_['silenceDuration'] as core.String?,
silencePercentage: (json_['silencePercentage'] as core.num?)
?.toDouble(),
);
core.Map<core.String, core.dynamic> toJson() {
final silenceDuration = this.silenceDuration;
final silencePercentage = this.silencePercentage;
return {
'silenceDuration': ?silenceDuration,
'silencePercentage': ?silencePercentage,
};
}
}
/// The call participant speaking for a given utterance.
class GoogleCloudContactcenterinsightsV1ConversationParticipant {
/// Use `dialogflow_participant_name` instead.
///
/// The name of the Dialogflow participant. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}
///
/// Deprecated.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.String? dialogflowParticipant;
/// The name of the participant provided by Dialogflow.
///
/// Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/participants/{participant}
core.String? dialogflowParticipantName;
/// Obfuscated user ID from Dialogflow.
core.String? obfuscatedExternalUserId;
/// The role of the participant.
/// Possible string values are:
/// - "ROLE_UNSPECIFIED" : Participant's role is not set.
/// - "HUMAN_AGENT" : Participant is a human agent.
/// - "AUTOMATED_AGENT" : Participant is an automated agent.
/// - "END_USER" : Participant is an end user who conversed with the contact
/// center.
/// - "ANY_AGENT" : Participant is either a human or automated agent.
core.String? role;
/// A user-specified ID representing the participant.
core.String? userId;
GoogleCloudContactcenterinsightsV1ConversationParticipant({
this.dialogflowParticipant,
this.dialogflowParticipantName,
this.obfuscatedExternalUserId,
this.role,
this.userId,
});
GoogleCloudContactcenterinsightsV1ConversationParticipant.fromJson(
core.Map json_,
) : this(
dialogflowParticipant: json_['dialogflowParticipant'] as core.String?,
dialogflowParticipantName:
json_['dialogflowParticipantName'] as core.String?,
obfuscatedExternalUserId:
json_['obfuscatedExternalUserId'] as core.String?,
role: json_['role'] as core.String?,
userId: json_['userId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final dialogflowParticipant = this.dialogflowParticipant;
final dialogflowParticipantName = this.dialogflowParticipantName;
final obfuscatedExternalUserId = this.obfuscatedExternalUserId;
final role = this.role;
final userId = this.userId;
return {
'dialogflowParticipant': ?dialogflowParticipant,
'dialogflowParticipantName': ?dialogflowParticipantName,
'obfuscatedExternalUserId': ?obfuscatedExternalUserId,
'role': ?role,
'userId': ?userId,
};
}
}
/// Conversation metadata related to quality management.
class GoogleCloudContactcenterinsightsV1ConversationQualityMetadata {
/// Information about agents involved in the call.
core.List<
GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo
>?
agentInfo;
/// An arbitrary integer value indicating the customer's satisfaction rating.
core.int? customerSatisfactionRating;
/// Input only.
///
/// The feedback labels associated with the conversation.
core.List<GoogleCloudContactcenterinsightsV1FeedbackLabel>? feedbackLabels;
/// An arbitrary string value specifying the menu path the customer took.
core.String? menuPath;
/// The amount of time the customer waited to connect with an agent.
core.String? waitDuration;
GoogleCloudContactcenterinsightsV1ConversationQualityMetadata({
this.agentInfo,
this.customerSatisfactionRating,
this.feedbackLabels,
this.menuPath,
this.waitDuration,
});
GoogleCloudContactcenterinsightsV1ConversationQualityMetadata.fromJson(
core.Map json_,
) : this(
agentInfo: (json_['agentInfo'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
customerSatisfactionRating:
json_['customerSatisfactionRating'] as core.int?,
feedbackLabels: (json_['feedbackLabels'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
menuPath: json_['menuPath'] as core.String?,
waitDuration: json_['waitDuration'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentInfo = this.agentInfo;
final customerSatisfactionRating = this.customerSatisfactionRating;
final feedbackLabels = this.feedbackLabels;
final menuPath = this.menuPath;
final waitDuration = this.waitDuration;
return {
'agentInfo': ?agentInfo,
'customerSatisfactionRating': ?customerSatisfactionRating,
'feedbackLabels': ?feedbackLabels,
'menuPath': ?menuPath,
'waitDuration': ?waitDuration,
};
}
}
/// Information about an agent involved in the conversation.
class GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo {
/// A user-specified string representing the agent.
core.String? agentId;
/// The agent type, e.g. HUMAN_AGENT.
/// Possible string values are:
/// - "ROLE_UNSPECIFIED" : Participant's role is not set.
/// - "HUMAN_AGENT" : Participant is a human agent.
/// - "AUTOMATED_AGENT" : Participant is an automated agent.
/// - "END_USER" : Participant is an end user who conversed with the contact
/// center.
/// - "ANY_AGENT" : Participant is either a human or automated agent.
core.String? agentType;
/// The agent's deployment display name.
///
/// Only applicable to automated agents.
core.String? deploymentDisplayName;
/// The agent's deployment ID.
///
/// Only applicable to automated agents.
core.String? deploymentId;
/// The agent's name.
core.String? displayName;
/// A user-provided string indicating the outcome of the agent's segment of
/// the call.
core.String? dispositionCode;
/// The entry subagent's display name.
core.String? entrySubagentDisplayName;
/// The agent's location.
core.String? location;
/// A user-specified string representing the agent's team.
///
/// Deprecated in favor of the `teams` field.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.String? team;
/// User-specified strings representing the agent's teams.
core.List<core.String>? teams;
/// The agent's version display name.
///
/// Only applicable to automated agents.
core.String? versionDisplayName;
/// The agent's version ID.
///
/// Only applicable to automated agents.
core.String? versionId;
GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo({
this.agentId,
this.agentType,
this.deploymentDisplayName,
this.deploymentId,
this.displayName,
this.dispositionCode,
this.entrySubagentDisplayName,
this.location,
this.team,
this.teams,
this.versionDisplayName,
this.versionId,
});
GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo.fromJson(
core.Map json_,
) : this(
agentId: json_['agentId'] as core.String?,
agentType: json_['agentType'] as core.String?,
deploymentDisplayName: json_['deploymentDisplayName'] as core.String?,
deploymentId: json_['deploymentId'] as core.String?,
displayName: json_['displayName'] as core.String?,
dispositionCode: json_['dispositionCode'] as core.String?,
entrySubagentDisplayName:
json_['entrySubagentDisplayName'] as core.String?,
location: json_['location'] as core.String?,
team: json_['team'] as core.String?,
teams: (json_['teams'] as core.List?)
?.map((value) => value as core.String)
.toList(),
versionDisplayName: json_['versionDisplayName'] as core.String?,
versionId: json_['versionId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentId = this.agentId;
final agentType = this.agentType;
final deploymentDisplayName = this.deploymentDisplayName;
final deploymentId = this.deploymentId;
final displayName = this.displayName;
final dispositionCode = this.dispositionCode;
final entrySubagentDisplayName = this.entrySubagentDisplayName;
final location = this.location;
final team = this.team;
final teams = this.teams;
final versionDisplayName = this.versionDisplayName;
final versionId = this.versionId;
return {
'agentId': ?agentId,
'agentType': ?agentType,
'deploymentDisplayName': ?deploymentDisplayName,
'deploymentId': ?deploymentId,
'displayName': ?displayName,
'dispositionCode': ?dispositionCode,
'entrySubagentDisplayName': ?entrySubagentDisplayName,
'location': ?location,
'team': ?team,
'teams': ?teams,
'versionDisplayName': ?versionDisplayName,
'versionId': ?versionId,
};
}
}
/// Conversation summarization suggestion data.
class GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData {
/// The name of the answer record.
///
/// Format:
/// projects/{project}/locations/{location}/answerRecords/{answer_record}
core.String? answerRecord;
/// The confidence score of the summarization.
core.double? confidence;
/// The name of the model that generates this summary.
///
/// Format:
/// projects/{project}/locations/{location}/conversationModels/{conversation_model}
core.String? conversationModel;
/// Agent Assist generator ID.
core.String? generatorId;
/// A map that contains metadata about the summarization and the document from
/// which it originates.
core.Map<core.String, core.String>? metadata;
/// The summarization content that is concatenated into one string.
core.String? text;
/// The summarization content that is divided into sections.
///
/// The key is the section's name and the value is the section's content.
/// There is no specific format for the key or value.
core.Map<core.String, core.String>? textSections;
GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData({
this.answerRecord,
this.confidence,
this.conversationModel,
this.generatorId,
this.metadata,
this.text,
this.textSections,
});
GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData.fromJson(
core.Map json_,
) : this(
answerRecord: json_['answerRecord'] as core.String?,
confidence: (json_['confidence'] as core.num?)?.toDouble(),
conversationModel: json_['conversationModel'] as core.String?,
generatorId: json_['generatorId'] as core.String?,
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
text: json_['text'] as core.String?,
textSections:
(json_['textSections'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
);
core.Map<core.String, core.dynamic> toJson() {
final answerRecord = this.answerRecord;
final confidence = this.confidence;
final conversationModel = this.conversationModel;
final generatorId = this.generatorId;
final metadata = this.metadata;
final text = this.text;
final textSections = this.textSections;
return {
'answerRecord': ?answerRecord,
'confidence': ?confidence,
'conversationModel': ?conversationModel,
'generatorId': ?generatorId,
'metadata': ?metadata,
'text': ?text,
'textSections': ?textSections,
};
}
}
/// A message representing the transcript of a conversation.
class GoogleCloudContactcenterinsightsV1ConversationTranscript {
/// A list of sequential transcript segments that comprise the conversation.
core.List<
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegment
>?
transcriptSegments;
GoogleCloudContactcenterinsightsV1ConversationTranscript({
this.transcriptSegments,
});
GoogleCloudContactcenterinsightsV1ConversationTranscript.fromJson(
core.Map json_,
) : this(
transcriptSegments: (json_['transcriptSegments'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegment.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final transcriptSegments = this.transcriptSegments;
return {'transcriptSegments': ?transcriptSegments};
}
}
/// A segment of a full transcript.
class GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegment {
/// For conversations derived from multi-channel audio, this is the channel
/// number corresponding to the audio from that channel.
///
/// For audioChannelCount = N, its output values can range from '1' to 'N'. A
/// channel tag of 0 indicates that the audio is mono.
core.int? channelTag;
/// A confidence estimate between 0.0 and 1.0 of the fidelity of this segment.
///
/// A default value of 0.0 indicates that the value is unset.
core.double? confidence;
/// CCAI metadata relating to the current transcript segment.
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata?
dialogflowSegmentMetadata;
/// The language code of this segment as a
/// \[BCP-47\](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
///
/// Example: "en-US".
core.String? languageCode;
/// The time that the message occurred, if provided.
core.String? messageTime;
/// The participant of this segment.
GoogleCloudContactcenterinsightsV1ConversationParticipant? segmentParticipant;
/// The sentiment for this transcript segment.
GoogleCloudContactcenterinsightsV1SentimentData? sentiment;
/// The text of this segment.
core.String? text;
/// Turn level audio for this transcript segment.
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio?
turnLevelAudio;
/// A list of the word-specific information for each word in the segment.
core.List<
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfo
>?
words;
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegment({
this.channelTag,
this.confidence,
this.dialogflowSegmentMetadata,
this.languageCode,
this.messageTime,
this.segmentParticipant,
this.sentiment,
this.text,
this.turnLevelAudio,
this.words,
});
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegment.fromJson(
core.Map json_,
) : this(
channelTag: json_['channelTag'] as core.int?,
confidence: (json_['confidence'] as core.num?)?.toDouble(),
dialogflowSegmentMetadata:
json_.containsKey('dialogflowSegmentMetadata')
? GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata.fromJson(
json_['dialogflowSegmentMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
languageCode: json_['languageCode'] as core.String?,
messageTime: json_['messageTime'] as core.String?,
segmentParticipant: json_.containsKey('segmentParticipant')
? GoogleCloudContactcenterinsightsV1ConversationParticipant.fromJson(
json_['segmentParticipant']
as core.Map<core.String, core.dynamic>,
)
: null,
sentiment: json_.containsKey('sentiment')
? GoogleCloudContactcenterinsightsV1SentimentData.fromJson(
json_['sentiment'] as core.Map<core.String, core.dynamic>,
)
: null,
text: json_['text'] as core.String?,
turnLevelAudio: json_.containsKey('turnLevelAudio')
? GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio.fromJson(
json_['turnLevelAudio'] as core.Map<core.String, core.dynamic>,
)
: null,
words: (json_['words'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfo.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final channelTag = this.channelTag;
final confidence = this.confidence;
final dialogflowSegmentMetadata = this.dialogflowSegmentMetadata;
final languageCode = this.languageCode;
final messageTime = this.messageTime;
final segmentParticipant = this.segmentParticipant;
final sentiment = this.sentiment;
final text = this.text;
final turnLevelAudio = this.turnLevelAudio;
final words = this.words;
return {
'channelTag': ?channelTag,
'confidence': ?confidence,
'dialogflowSegmentMetadata': ?dialogflowSegmentMetadata,
'languageCode': ?languageCode,
'messageTime': ?messageTime,
'segmentParticipant': ?segmentParticipant,
'sentiment': ?sentiment,
'text': ?text,
'turnLevelAudio': ?turnLevelAudio,
'words': ?words,
};
}
}
/// Metadata from Dialogflow relating to the current transcript segment.
class GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata {
/// Whether the transcript segment was covered under the configured smart
/// reply allowlist in Agent Assist.
core.bool? smartReplyAllowlistCovered;
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata({
this.smartReplyAllowlistCovered,
});
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentDialogflowSegmentMetadata.fromJson(
core.Map json_,
) : this(
smartReplyAllowlistCovered:
json_['smartReplyAllowlistCovered'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final smartReplyAllowlistCovered = this.smartReplyAllowlistCovered;
return {'smartReplyAllowlistCovered': ?smartReplyAllowlistCovered};
}
}
/// Word-level info for words in a transcript.
class GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfo {
/// A confidence estimate between 0.0 and 1.0 of the fidelity of this word.
///
/// A default value of 0.0 indicates that the value is unset.
core.double? confidence;
/// Time offset of the end of this word relative to the beginning of the total
/// conversation.
core.String? endOffset;
/// Time offset of the start of this word relative to the beginning of the
/// total conversation.
core.String? startOffset;
/// The word itself.
///
/// Includes punctuation marks that surround the word.
core.String? word;
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfo({
this.confidence,
this.endOffset,
this.startOffset,
this.word,
});
GoogleCloudContactcenterinsightsV1ConversationTranscriptTranscriptSegmentWordInfo.fromJson(
core.Map json_,
) : this(
confidence: (json_['confidence'] as core.num?)?.toDouble(),
endOffset: json_['endOffset'] as core.String?,
startOffset: json_['startOffset'] as core.String?,
word: json_['word'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final confidence = this.confidence;
final endOffset = this.endOffset;
final startOffset = this.startOffset;
final word = this.word;
return {
'confidence': ?confidence,
'endOffset': ?endOffset,
'startOffset': ?startOffset,
'word': ?word,
};
}
}
/// A configuration that defines how to correlate conversations for a given a
/// given project.
class GoogleCloudContactcenterinsightsV1CorrelationConfig {
/// The time at which the correlation config was created.
///
/// Output only.
core.String? createTime;
/// The correlation type config for full conversations.
GoogleCloudContactcenterinsightsV1CorrelationTypeConfig?
fullConversationConfig;
/// Identifier.
///
/// The resource name of the correlation config. Format:
/// projects/{project}/locations/{location}/correlationConfig
///
/// Immutable.
core.String? name;
/// The time at which the correlation config was last updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1CorrelationConfig({
this.createTime,
this.fullConversationConfig,
this.name,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1CorrelationConfig.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
fullConversationConfig: json_.containsKey('fullConversationConfig')
? GoogleCloudContactcenterinsightsV1CorrelationTypeConfig.fromJson(
json_['fullConversationConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final fullConversationConfig = this.fullConversationConfig;
final name = this.name;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'fullConversationConfig': ?fullConversationConfig,
'name': ?name,
'updateTime': ?updateTime,
};
}
}
/// A correlation rule that defines how to join conversations for a given
/// correlation type.
class GoogleCloudContactcenterinsightsV1CorrelationRule {
/// Whether the config is active to be evaluated.
///
/// Optional.
core.bool? active;
/// A cel expression (go/cel) to be evaluated as a boolean value.
///
/// Two variables conversation_a and conversation_b will be available for
/// evaluation. This expression should evaluate to true if conversation_a and
/// conversation_b should be joined. This is used as an extra constraint on
/// top of the join_key_expression to further refine the group of
/// conversations that are joined together and will be evaluated in both
/// directions. for two conversations c1 and c2 and the result will be OR'd.
/// We will evaluate: f(c1, c2) OR f(c2, c1)
///
/// Optional.
core.String? constraintExpression;
/// A cel expression (go/cel) to be evaluated as a string value.
///
/// This string value will be used as the join key for the correlation.
///
/// Optional.
core.String? joinKeyExpression;
/// The unique identifier of the rule.
///
/// Required.
core.String? ruleId;
GoogleCloudContactcenterinsightsV1CorrelationRule({
this.active,
this.constraintExpression,
this.joinKeyExpression,
this.ruleId,
});
GoogleCloudContactcenterinsightsV1CorrelationRule.fromJson(core.Map json_)
: this(
active: json_['active'] as core.bool?,
constraintExpression: json_['constraintExpression'] as core.String?,
joinKeyExpression: json_['joinKeyExpression'] as core.String?,
ruleId: json_['ruleId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final active = this.active;
final constraintExpression = this.constraintExpression;
final joinKeyExpression = this.joinKeyExpression;
final ruleId = this.ruleId;
return {
'active': ?active,
'constraintExpression': ?constraintExpression,
'joinKeyExpression': ?joinKeyExpression,
'ruleId': ?ruleId,
};
}
}
/// A list of correlation rules for a given correlation type.
class GoogleCloudContactcenterinsightsV1CorrelationTypeConfig {
/// A list of correlation rules to be evaluated for correlation.
core.List<GoogleCloudContactcenterinsightsV1CorrelationRule>?
correlationRules;
GoogleCloudContactcenterinsightsV1CorrelationTypeConfig({
this.correlationRules,
});
GoogleCloudContactcenterinsightsV1CorrelationTypeConfig.fromJson(
core.Map json_,
) : this(
correlationRules: (json_['correlationRules'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1CorrelationRule.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final correlationRules = this.correlationRules;
return {'correlationRules': ?correlationRules};
}
}
/// Configurable dashboard
class GoogleCloudContactcenterinsightsV1Dashboard {
/// Dashboard creation time.
///
/// Output only.
core.String? createTime;
/// Date range config applied to all charts in the dashboard.
GoogleCloudContactcenterinsightsV1DateRangeConfig? dateRangeConfig;
/// Dashboard description
core.String? description;
/// User provided display name of the dashboard.
core.String? displayName;
/// Filter applied to all charts in the dashboard.
///
/// Should support scope later.
core.String? filter;
/// Identifier.
///
/// Dashboard resource name. Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}
core.String? name;
/// Whether the dashboard is read-only.
///
/// All predefined dashboards are read-only and cannot be modified by the
/// user.
///
/// Output only.
core.bool? readOnly;
/// The dashboard's root widget container.
///
/// We want to display the dashboard layout in a tree-like structure, where
/// the root container contains other widgets (containers or charts) as
/// children.
GoogleCloudContactcenterinsightsV1Container? rootContainer;
/// Dashboard last update time.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Dashboard({
this.createTime,
this.dateRangeConfig,
this.description,
this.displayName,
this.filter,
this.name,
this.readOnly,
this.rootContainer,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Dashboard.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
dateRangeConfig: json_.containsKey('dateRangeConfig')
? GoogleCloudContactcenterinsightsV1DateRangeConfig.fromJson(
json_['dateRangeConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
filter: json_['filter'] as core.String?,
name: json_['name'] as core.String?,
readOnly: json_['readOnly'] as core.bool?,
rootContainer: json_.containsKey('rootContainer')
? GoogleCloudContactcenterinsightsV1Container.fromJson(
json_['rootContainer'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final dateRangeConfig = this.dateRangeConfig;
final description = this.description;
final displayName = this.displayName;
final filter = this.filter;
final name = this.name;
final readOnly = this.readOnly;
final rootContainer = this.rootContainer;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'dateRangeConfig': ?dateRangeConfig,
'description': ?description,
'displayName': ?displayName,
'filter': ?filter,
'name': ?name,
'readOnly': ?readOnly,
'rootContainer': ?rootContainer,
'updateTime': ?updateTime,
};
}
}
/// Dataset resource represents a collection of conversations that may be
/// bounded (Static Dataset, e.g. golden dataset for training), or unbounded
/// (Dynamic Dataset, e.g. live traffic, or agent training traffic)
class GoogleCloudContactcenterinsightsV1Dataset {
/// Dataset create time.
///
/// Output only.
core.String? createTime;
/// Dataset description.
core.String? description;
/// Display name for the dataaset
core.String? displayName;
/// Identifier.
///
/// Resource name of the dataset. Format:
/// projects/{project}/locations/{location}/datasets/{dataset}
///
/// Immutable.
core.String? name;
/// Option TTL for the dataset.
///
/// Optional.
core.String? ttl;
/// Dataset usage type.
/// Possible string values are:
/// - "TYPE_UNSPECIFIED" : Default value for unspecified.
/// - "EVAL" : For evals only.
/// - "LIVE" : Dataset with new conversations coming in regularly (Insights
/// legacy conversations and AI trainer)
core.String? type;
/// Dataset update time.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Dataset({
this.createTime,
this.description,
this.displayName,
this.name,
this.ttl,
this.type,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Dataset.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
ttl: json_['ttl'] as core.String?,
type: json_['type'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final description = this.description;
final displayName = this.displayName;
final name = this.name;
final ttl = this.ttl;
final type = this.type;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'description': ?description,
'displayName': ?displayName,
'name': ?name,
'ttl': ?ttl,
'type': ?type,
'updateTime': ?updateTime,
};
}
}
/// Date range configuration for dashboard charts.
class GoogleCloudContactcenterinsightsV1DateRangeConfig {
/// An absolute date range.
GoogleCloudContactcenterinsightsV1QueryInterval? absoluteDateRange;
/// A relative date range.
GoogleCloudContactcenterinsightsV1DateRangeConfigRelativeDateRange?
relativeDateRange;
GoogleCloudContactcenterinsightsV1DateRangeConfig({
this.absoluteDateRange,
this.relativeDateRange,
});
GoogleCloudContactcenterinsightsV1DateRangeConfig.fromJson(core.Map json_)
: this(
absoluteDateRange: json_.containsKey('absoluteDateRange')
? GoogleCloudContactcenterinsightsV1QueryInterval.fromJson(
json_['absoluteDateRange']
as core.Map<core.String, core.dynamic>,
)
: null,
relativeDateRange: json_.containsKey('relativeDateRange')
? GoogleCloudContactcenterinsightsV1DateRangeConfigRelativeDateRange.fromJson(
json_['relativeDateRange']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final absoluteDateRange = this.absoluteDateRange;
final relativeDateRange = this.relativeDateRange;
return {
'absoluteDateRange': ?absoluteDateRange,
'relativeDateRange': ?relativeDateRange,
};
}
}
/// Relative date range configuration.
class GoogleCloudContactcenterinsightsV1DateRangeConfigRelativeDateRange {
/// The quantity of units in the past.
///
/// Required.
core.String? quantity;
/// The unit of time.
///
/// Required.
/// Possible string values are:
/// - "TIME_UNIT_UNSPECIFIED" : Unspecified.
/// - "DAY" : Day.
/// - "WEEK" : Week.
/// - "MONTH" : Month.
/// - "QUARTER" : Quarter.
/// - "YEAR" : Year.
core.String? unit;
GoogleCloudContactcenterinsightsV1DateRangeConfigRelativeDateRange({
this.quantity,
this.unit,
});
GoogleCloudContactcenterinsightsV1DateRangeConfigRelativeDateRange.fromJson(
core.Map json_,
) : this(
quantity: json_['quantity'] as core.String?,
unit: json_['unit'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final quantity = this.quantity;
final unit = this.unit;
return {'quantity': ?quantity, 'unit': ?unit};
}
}
/// The request to deploy an issue model.
class GoogleCloudContactcenterinsightsV1DeployIssueModelRequest {
/// The issue model to deploy.
///
/// Required.
core.String? name;
GoogleCloudContactcenterinsightsV1DeployIssueModelRequest({this.name});
GoogleCloudContactcenterinsightsV1DeployIssueModelRequest.fromJson(
core.Map json_,
) : this(name: json_['name'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final name = this.name;
return {'name': ?name};
}
}
/// The request to deploy a QaScorecardRevision
typedef GoogleCloudContactcenterinsightsV1DeployQaScorecardRevisionRequest =
$Empty;
/// The request to analyze conversation data using agentic workflows.
///
/// This RPC triggers a complex analysis process that may involve several steps
/// of reasoning and tool execution.
class GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest {
/// If true, the request will be validated and a simulation of the analysis
/// will be performed without actually executing the task.
///
/// Optional.
core.bool? dryRun;
/// AIP-160 compliant filter for selecting target conversations.
///
/// Optional.
core.String? filter;
/// If true, the agent will generate a full diagnostic report for all
/// sub-agents.
///
/// Optional.
core.bool? fullReport;
/// Specific instructions for the agent.
///
/// Optional.
core.String? instructions;
/// The maximum number of steps the agent can take during the execution of the
/// task.
///
/// Defaults to 10.
///
/// Optional.
core.int? maxSteps;
/// The type of metric being diagnosed.
///
/// Optional.
/// Possible string values are:
/// - "DIAGNOSTIC_METRIC_TYPE_UNSPECIFIED" : Metric type is unspecified.
/// - "ESCALATION" : Escalation rate.
/// - "CONTAINMENT" : Containment rate.
core.String? metricType;
/// The configuration for the output of the task.
///
/// Optional.
GoogleCloudContactcenterinsightsV1OutputConfig? outputConfig;
/// The parent resource where the analysis will be performed.
///
/// Required.
core.String? parent;
/// A unique ID that identifies the request.
///
/// If the service receives two `DiagnoseConversationsRequest`s with the same
/// `request_id`, then the second request will be ignored; instead, the
/// response of the first request will be returned. The ID must contain only
/// letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The
/// maximum length is 40 characters.
///
/// Optional. Required.
core.String? requestId;
/// A natural language description of the analysis goal or question.
///
/// Optional.
core.String? taskQuery;
/// If true, the request will only be validated (permissions, filter syntax,
/// etc.) without actually triggering the analysis.
///
/// Optional.
core.bool? validateOnly;
GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest({
this.dryRun,
this.filter,
this.fullReport,
this.instructions,
this.maxSteps,
this.metricType,
this.outputConfig,
this.parent,
this.requestId,
this.taskQuery,
this.validateOnly,
});
GoogleCloudContactcenterinsightsV1DiagnoseConversationsRequest.fromJson(
core.Map json_,
) : this(
dryRun: json_['dryRun'] as core.bool?,
filter: json_['filter'] as core.String?,
fullReport: json_['fullReport'] as core.bool?,
instructions: json_['instructions'] as core.String?,
maxSteps: json_['maxSteps'] as core.int?,
metricType: json_['metricType'] as core.String?,
outputConfig: json_.containsKey('outputConfig')
? GoogleCloudContactcenterinsightsV1OutputConfig.fromJson(
json_['outputConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
parent: json_['parent'] as core.String?,
requestId: json_['requestId'] as core.String?,
taskQuery: json_['taskQuery'] as core.String?,
validateOnly: json_['validateOnly'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final dryRun = this.dryRun;
final filter = this.filter;
final fullReport = this.fullReport;
final instructions = this.instructions;
final maxSteps = this.maxSteps;
final metricType = this.metricType;
final outputConfig = this.outputConfig;
final parent = this.parent;
final requestId = this.requestId;
final taskQuery = this.taskQuery;
final validateOnly = this.validateOnly;
return {
'dryRun': ?dryRun,
'filter': ?filter,
'fullReport': ?fullReport,
'instructions': ?instructions,
'maxSteps': ?maxSteps,
'metricType': ?metricType,
'outputConfig': ?outputConfig,
'parent': ?parent,
'requestId': ?requestId,
'taskQuery': ?taskQuery,
'validateOnly': ?validateOnly,
};
}
}
/// The diagnostic resource.
class GoogleCloudContactcenterinsightsV1Diagnostic {
/// The complete sequence of thoughts and actions taken by the agent.
///
/// Output only.
core.String? analysisSummary;
/// The filter used to select the conversations that were included in the
/// diagnostic.
///
/// Output only.
core.String? conversationFilter;
/// The time at which the diagnostic was created.
///
/// Output only.
core.String? createTime;
/// Identifier.
///
/// The resource name of the diagnostic.
///
/// Immutable.
core.String? name;
/// The report containing the findings of the diagnostic.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DiagnosticReport? report;
GoogleCloudContactcenterinsightsV1Diagnostic({
this.analysisSummary,
this.conversationFilter,
this.createTime,
this.name,
this.report,
});
GoogleCloudContactcenterinsightsV1Diagnostic.fromJson(core.Map json_)
: this(
analysisSummary: json_['analysisSummary'] as core.String?,
conversationFilter: json_['conversationFilter'] as core.String?,
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
report: json_.containsKey('report')
? GoogleCloudContactcenterinsightsV1DiagnosticReport.fromJson(
json_['report'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final analysisSummary = this.analysisSummary;
final conversationFilter = this.conversationFilter;
final createTime = this.createTime;
final name = this.name;
final report = this.report;
return {
'analysisSummary': ?analysisSummary,
'conversationFilter': ?conversationFilter,
'createTime': ?createTime,
'name': ?name,
'report': ?report,
};
}
}
/// A diagnostic report containing aggregate metrics and intent breakdowns.
class GoogleCloudContactcenterinsightsV1DiagnosticReport {
/// A breakdown of metrics grouped by intent.
///
/// Output only.
core.List<GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats>?
intentStats;
/// A list of loss patterns identified for the entire project/dataset.
///
/// Output only.
core.List<GoogleCloudContactcenterinsightsV1LossPattern>? lossPatterns;
/// Deprecated: The type of the metric.
///
/// Metrics for Outcome Based Insights derived from QueryMetrics.
///
/// Output only.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.Map<core.String, GoogleCloudContactcenterinsightsV1MetricValue>? metrics;
GoogleCloudContactcenterinsightsV1DiagnosticReport({
this.intentStats,
this.lossPatterns,
this.metrics,
});
GoogleCloudContactcenterinsightsV1DiagnosticReport.fromJson(core.Map json_)
: this(
intentStats: (json_['intentStats'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
lossPatterns: (json_['lossPatterns'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1LossPattern.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
metrics: (json_['metrics'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1MetricValue.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
);
core.Map<core.String, core.dynamic> toJson() {
final intentStats = this.intentStats;
final lossPatterns = this.lossPatterns;
final metrics = this.metrics;
return {
'intentStats': ?intentStats,
'lossPatterns': ?lossPatterns,
'metrics': ?metrics,
};
}
}
/// A breakdown of metrics grouped by intent.
class GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats {
/// The number of conversations associated with this intent.
///
/// Output only.
core.int? conversationCount;
/// The display name of the intent.
///
/// Output only.
core.String? intentDisplayName;
/// The unique identifier for the intent (from Discovery Engine).
///
/// Output only.
core.String? intentId;
/// A list of loss patterns identified for this intent.
///
/// Output only.
core.List<GoogleCloudContactcenterinsightsV1LossPattern>? lossPatterns;
/// Deprecated: The type of the metric.
///
/// Metrics for Outcome Based Insights derived from QueryMetrics.
///
/// Output only.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.Map<core.String, GoogleCloudContactcenterinsightsV1MetricValue>? metrics;
GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats({
this.conversationCount,
this.intentDisplayName,
this.intentId,
this.lossPatterns,
this.metrics,
});
GoogleCloudContactcenterinsightsV1DiagnosticReportIntentStats.fromJson(
core.Map json_,
) : this(
conversationCount: json_['conversationCount'] as core.int?,
intentDisplayName: json_['intentDisplayName'] as core.String?,
intentId: json_['intentId'] as core.String?,
lossPatterns: (json_['lossPatterns'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1LossPattern.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
metrics: (json_['metrics'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1MetricValue.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
);
core.Map<core.String, core.dynamic> toJson() {
final conversationCount = this.conversationCount;
final intentDisplayName = this.intentDisplayName;
final intentId = this.intentId;
final lossPatterns = this.lossPatterns;
final metrics = this.metrics;
return {
'conversationCount': ?conversationCount,
'intentDisplayName': ?intentDisplayName,
'intentId': ?intentId,
'lossPatterns': ?lossPatterns,
'metrics': ?metrics,
};
}
}
/// The data for a Dialogflow intent.
///
/// Represents a detected intent in the conversation, e.g. MAKES_PROMISE.
class GoogleCloudContactcenterinsightsV1DialogflowIntent {
/// The human-readable name of the intent.
core.String? displayName;
GoogleCloudContactcenterinsightsV1DialogflowIntent({this.displayName});
GoogleCloudContactcenterinsightsV1DialogflowIntent.fromJson(core.Map json_)
: this(displayName: json_['displayName'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
return {'displayName': ?displayName};
}
}
/// Dialogflow interaction data.
class GoogleCloudContactcenterinsightsV1DialogflowInteractionData {
/// The confidence of the match ranging from 0.0 (completely uncertain) to 1.0
/// (completely certain).
core.double? confidence;
/// The Dialogflow intent resource path.
///
/// Format: projects/{project}/agent/{agent}/intents/{intent}
core.String? dialogflowIntentId;
GoogleCloudContactcenterinsightsV1DialogflowInteractionData({
this.confidence,
this.dialogflowIntentId,
});
GoogleCloudContactcenterinsightsV1DialogflowInteractionData.fromJson(
core.Map json_,
) : this(
confidence: (json_['confidence'] as core.num?)?.toDouble(),
dialogflowIntentId: json_['dialogflowIntentId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final confidence = this.confidence;
final dialogflowIntentId = this.dialogflowIntentId;
return {
'confidence': ?confidence,
'dialogflowIntentId': ?dialogflowIntentId,
};
}
}
/// A Dialogflow source of conversation data.
class GoogleCloudContactcenterinsightsV1DialogflowSource {
/// Cloud Storage URI that points to a file that contains the conversation
/// audio.
core.String? audioUri;
/// The name of the Dialogflow conversation that this conversation resource is
/// derived from.
///
/// Format:
/// projects/{project}/locations/{location}/conversations/{conversation}
///
/// Output only.
core.String? dialogflowConversation;
GoogleCloudContactcenterinsightsV1DialogflowSource({
this.audioUri,
this.dialogflowConversation,
});
GoogleCloudContactcenterinsightsV1DialogflowSource.fromJson(core.Map json_)
: this(
audioUri: json_['audioUri'] as core.String?,
dialogflowConversation: json_['dialogflowConversation'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final audioUri = this.audioUri;
final dialogflowConversation = this.dialogflowConversation;
return {
'audioUri': ?audioUri,
'dialogflowConversation': ?dialogflowConversation,
};
}
}
/// A dimension determines the grouping key for the query.
///
/// In SQL terms, these would be part of both the "SELECT" and "GROUP BY"
/// clauses.
class GoogleCloudContactcenterinsightsV1Dimension {
/// Metadata about the agent dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionAgentDimensionMetadata?
agentDimensionMetadata;
/// Metadata about the client sentiment category dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionClientSentimentCategoryDimensionMetadata?
clientSentimentCategoryDimensionMetadata;
/// Metadata about the conversation profile dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionConversationProfileDimensionMetadata?
conversationProfileDimensionMetadata;
/// Metadata about the Conversational Agents playbook dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsPlaybookDimensionMetadata?
conversationalAgentsPlaybookDimensionMetadata;
/// Metadata about the Conversational Agents tool dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsToolDimensionMetadata?
conversationalAgentsToolDimensionMetadata;
/// The key of the dimension.
/// Possible string values are:
/// - "DIMENSION_KEY_UNSPECIFIED" : The key of the dimension is unspecified.
/// - "ISSUE" : The dimension is keyed by issues.
/// - "ISSUE_NAME" : The dimension is keyed by issue names.
/// - "AGENT" : The dimension is keyed by agents.
/// - "AGENT_TEAM" : The dimension is keyed by agent teams.
/// - "QA_QUESTION_ID" : The dimension is keyed by QaQuestionIds. Note that:
/// We only group by the QuestionId and not the revision-id of the scorecard
/// this question is a part of. This allows for showing stats for the same
/// question across different scorecard revisions.
/// - "QA_QUESTION_ANSWER_VALUE" : The dimension is keyed by
/// QaQuestionIds-Answer value pairs. Note that: We only group by the
/// QuestionId and not the revision-id of the scorecard this question is a
/// part of. This allows for showing distribution of answers per question
/// across different scorecard revisions.
/// - "QA_SCORECARD_ID" : The dimension is keyed by QaScorecardIds. Note that:
/// We only group by the ScorecardId and not the revision-id of the scorecard.
/// This allows for showing stats for the same scorecard across different
/// revisions. This metric is mostly only useful if querying the average
/// normalized score per scorecard.
/// - "CONVERSATION_PROFILE_ID" : The dimension is keyed by the conversation
/// profile ID.
/// - "MEDIUM" : The dimension is keyed by the conversation medium.
/// - "CONVERSATIONAL_AGENTS_PLAYBOOK_ID" : The dimension is keyed by the
/// Conversational Agents playbook ID.
/// - "CONVERSATIONAL_AGENTS_PLAYBOOK_NAME" : The dimension is keyed by the
/// Conversational Agents playbook display name.
/// - "CONVERSATIONAL_AGENTS_TOOL_ID" : The dimension is keyed by the
/// Conversational Agents tool ID.
/// - "CONVERSATIONAL_AGENTS_TOOL_NAME" : The dimension is keyed by the
/// Conversational Agents tool display name.
/// - "CLIENT_SENTIMENT_CATEGORY" : The dimension is keyed by the client
/// sentiment category.
/// - "AGENT_VERSION_ID" : The dimension is keyed by the agent version ID.
/// - "AGENT_DEPLOYMENT_ID" : The dimension is keyed by the agent deployment
/// ID.
/// - "AGENT_ASSIST_SUPERVISOR_ID" : The dimension is keyed by the supervisor
/// ID of the assigned human supervisor for virtual agents.
/// - "LABEL_KEY" : The dimension is keyed by label keys.
/// - "LABEL_VALUE" : The dimension is keyed by label values.
/// - "LABEL_KEY_AND_VALUE" : The dimension is keyed by label key-value pairs.
/// - "LAST_TRANSFER_SUB_AGENT_NAME" : The dimension is keyed by the last
/// transfer sub agent name.
core.String? dimensionKey;
/// Metadata about the issue dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionIssueDimensionMetadata?
issueDimensionMetadata;
/// Metadata about conversation labels.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionLabelDimensionMetadata?
labelDimensionMetadata;
/// Metadata about the conversation medium dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionMediumDimensionMetadata?
mediumDimensionMetadata;
/// Metadata about the QA question-answer dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionQaQuestionAnswerDimensionMetadata?
qaQuestionAnswerDimensionMetadata;
/// Metadata about the QA question dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionQaQuestionDimensionMetadata?
qaQuestionDimensionMetadata;
/// Metadata about the QA scorecard dimension.
///
/// Output only.
GoogleCloudContactcenterinsightsV1DimensionQaScorecardDimensionMetadata?
qaScorecardDimensionMetadata;
GoogleCloudContactcenterinsightsV1Dimension({
this.agentDimensionMetadata,
this.clientSentimentCategoryDimensionMetadata,
this.conversationProfileDimensionMetadata,
this.conversationalAgentsPlaybookDimensionMetadata,
this.conversationalAgentsToolDimensionMetadata,
this.dimensionKey,
this.issueDimensionMetadata,
this.labelDimensionMetadata,
this.mediumDimensionMetadata,
this.qaQuestionAnswerDimensionMetadata,
this.qaQuestionDimensionMetadata,
this.qaScorecardDimensionMetadata,
});
GoogleCloudContactcenterinsightsV1Dimension.fromJson(core.Map json_)
: this(
agentDimensionMetadata: json_.containsKey('agentDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionAgentDimensionMetadata.fromJson(
json_['agentDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
clientSentimentCategoryDimensionMetadata:
json_.containsKey('clientSentimentCategoryDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionClientSentimentCategoryDimensionMetadata.fromJson(
json_['clientSentimentCategoryDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
conversationProfileDimensionMetadata:
json_.containsKey('conversationProfileDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionConversationProfileDimensionMetadata.fromJson(
json_['conversationProfileDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
conversationalAgentsPlaybookDimensionMetadata:
json_.containsKey('conversationalAgentsPlaybookDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsPlaybookDimensionMetadata.fromJson(
json_['conversationalAgentsPlaybookDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
conversationalAgentsToolDimensionMetadata:
json_.containsKey('conversationalAgentsToolDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsToolDimensionMetadata.fromJson(
json_['conversationalAgentsToolDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
dimensionKey: json_['dimensionKey'] as core.String?,
issueDimensionMetadata: json_.containsKey('issueDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionIssueDimensionMetadata.fromJson(
json_['issueDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
labelDimensionMetadata: json_.containsKey('labelDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionLabelDimensionMetadata.fromJson(
json_['labelDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
mediumDimensionMetadata: json_.containsKey('mediumDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionMediumDimensionMetadata.fromJson(
json_['mediumDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
qaQuestionAnswerDimensionMetadata:
json_.containsKey('qaQuestionAnswerDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionQaQuestionAnswerDimensionMetadata.fromJson(
json_['qaQuestionAnswerDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
qaQuestionDimensionMetadata:
json_.containsKey('qaQuestionDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionQaQuestionDimensionMetadata.fromJson(
json_['qaQuestionDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
qaScorecardDimensionMetadata:
json_.containsKey('qaScorecardDimensionMetadata')
? GoogleCloudContactcenterinsightsV1DimensionQaScorecardDimensionMetadata.fromJson(
json_['qaScorecardDimensionMetadata']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final agentDimensionMetadata = this.agentDimensionMetadata;
final clientSentimentCategoryDimensionMetadata =
this.clientSentimentCategoryDimensionMetadata;
final conversationProfileDimensionMetadata =
this.conversationProfileDimensionMetadata;
final conversationalAgentsPlaybookDimensionMetadata =
this.conversationalAgentsPlaybookDimensionMetadata;
final conversationalAgentsToolDimensionMetadata =
this.conversationalAgentsToolDimensionMetadata;
final dimensionKey = this.dimensionKey;
final issueDimensionMetadata = this.issueDimensionMetadata;
final labelDimensionMetadata = this.labelDimensionMetadata;
final mediumDimensionMetadata = this.mediumDimensionMetadata;
final qaQuestionAnswerDimensionMetadata =
this.qaQuestionAnswerDimensionMetadata;
final qaQuestionDimensionMetadata = this.qaQuestionDimensionMetadata;
final qaScorecardDimensionMetadata = this.qaScorecardDimensionMetadata;
return {
'agentDimensionMetadata': ?agentDimensionMetadata,
'clientSentimentCategoryDimensionMetadata':
?clientSentimentCategoryDimensionMetadata,
'conversationProfileDimensionMetadata':
?conversationProfileDimensionMetadata,
'conversationalAgentsPlaybookDimensionMetadata':
?conversationalAgentsPlaybookDimensionMetadata,
'conversationalAgentsToolDimensionMetadata':
?conversationalAgentsToolDimensionMetadata,
'dimensionKey': ?dimensionKey,
'issueDimensionMetadata': ?issueDimensionMetadata,
'labelDimensionMetadata': ?labelDimensionMetadata,
'mediumDimensionMetadata': ?mediumDimensionMetadata,
'qaQuestionAnswerDimensionMetadata': ?qaQuestionAnswerDimensionMetadata,
'qaQuestionDimensionMetadata': ?qaQuestionDimensionMetadata,
'qaScorecardDimensionMetadata': ?qaScorecardDimensionMetadata,
};
}
}
/// Metadata about the agent dimension.
class GoogleCloudContactcenterinsightsV1DimensionAgentDimensionMetadata {
/// The agent's deployment display name.
///
/// Only applicable to automated agents. This will be populated for
/// AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentDeploymentDisplayName;
/// The agent's deployment ID.
///
/// Only applicable to automated agents. This will be populated for AGENT and
/// AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentDeploymentId;
/// The agent's name This will be populated for AGENT, AGENT_TEAM,
/// AGENT_VERSION_ID, and AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentDisplayName;
/// A user-specified string representing the agent.
///
/// This will be populated for AGENT, AGENT_TEAM, AGENT_VERSION_ID, and
/// AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentId;
/// A user-specified string representing the agent's team.
///
/// Optional.
core.String? agentTeam;
/// The agent's version display name.
///
/// Only applicable to automated agents. This will be populated for
/// AGENT_VERSION_ID, and AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentVersionDisplayName;
/// The agent's version ID.
///
/// Only applicable to automated agents. This will be populated for
/// AGENT_VERSION_ID, and AGENT_DEPLOYMENT_ID dimensions.
///
/// Optional.
core.String? agentVersionId;
GoogleCloudContactcenterinsightsV1DimensionAgentDimensionMetadata({
this.agentDeploymentDisplayName,
this.agentDeploymentId,
this.agentDisplayName,
this.agentId,
this.agentTeam,
this.agentVersionDisplayName,
this.agentVersionId,
});
GoogleCloudContactcenterinsightsV1DimensionAgentDimensionMetadata.fromJson(
core.Map json_,
) : this(
agentDeploymentDisplayName:
json_['agentDeploymentDisplayName'] as core.String?,
agentDeploymentId: json_['agentDeploymentId'] as core.String?,
agentDisplayName: json_['agentDisplayName'] as core.String?,
agentId: json_['agentId'] as core.String?,
agentTeam: json_['agentTeam'] as core.String?,
agentVersionDisplayName:
json_['agentVersionDisplayName'] as core.String?,
agentVersionId: json_['agentVersionId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentDeploymentDisplayName = this.agentDeploymentDisplayName;
final agentDeploymentId = this.agentDeploymentId;
final agentDisplayName = this.agentDisplayName;
final agentId = this.agentId;
final agentTeam = this.agentTeam;
final agentVersionDisplayName = this.agentVersionDisplayName;
final agentVersionId = this.agentVersionId;
return {
'agentDeploymentDisplayName': ?agentDeploymentDisplayName,
'agentDeploymentId': ?agentDeploymentId,
'agentDisplayName': ?agentDisplayName,
'agentId': ?agentId,
'agentTeam': ?agentTeam,
'agentVersionDisplayName': ?agentVersionDisplayName,
'agentVersionId': ?agentVersionId,
};
}
}
/// Metadata about the client sentiment category dimension.
class GoogleCloudContactcenterinsightsV1DimensionClientSentimentCategoryDimensionMetadata {
/// The client sentiment category.
///
/// Optional.
core.String? sentimentCategory;
GoogleCloudContactcenterinsightsV1DimensionClientSentimentCategoryDimensionMetadata({
this.sentimentCategory,
});
GoogleCloudContactcenterinsightsV1DimensionClientSentimentCategoryDimensionMetadata.fromJson(
core.Map json_,
) : this(sentimentCategory: json_['sentimentCategory'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final sentimentCategory = this.sentimentCategory;
return {'sentimentCategory': ?sentimentCategory};
}
}
/// Metadata about the conversation profile dimension.
class GoogleCloudContactcenterinsightsV1DimensionConversationProfileDimensionMetadata {
/// The conversation profile ID.
///
/// Optional.
core.String? conversationProfileId;
GoogleCloudContactcenterinsightsV1DimensionConversationProfileDimensionMetadata({
this.conversationProfileId,
});
GoogleCloudContactcenterinsightsV1DimensionConversationProfileDimensionMetadata.fromJson(
core.Map json_,
) : this(
conversationProfileId: json_['conversationProfileId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationProfileId = this.conversationProfileId;
return {'conversationProfileId': ?conversationProfileId};
}
}
/// Metadata about the Conversational Agents playbook dimension.
class GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsPlaybookDimensionMetadata {
/// The dialogflow playbook display name.
///
/// Optional.
core.String? playbookDisplayName;
/// The dialogflow playbook ID.
///
/// Optional.
core.String? playbookId;
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsPlaybookDimensionMetadata({
this.playbookDisplayName,
this.playbookId,
});
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsPlaybookDimensionMetadata.fromJson(
core.Map json_,
) : this(
playbookDisplayName: json_['playbookDisplayName'] as core.String?,
playbookId: json_['playbookId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final playbookDisplayName = this.playbookDisplayName;
final playbookId = this.playbookId;
return {
'playbookDisplayName': ?playbookDisplayName,
'playbookId': ?playbookId,
};
}
}
/// Metadata about the Conversational Agents tool dimension.
class GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsToolDimensionMetadata {
/// The dialogflow tool display name.
///
/// Optional.
core.String? toolDisplayName;
/// The dialogflow tool ID.
///
/// Optional.
core.String? toolId;
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsToolDimensionMetadata({
this.toolDisplayName,
this.toolId,
});
GoogleCloudContactcenterinsightsV1DimensionConversationalAgentsToolDimensionMetadata.fromJson(
core.Map json_,
) : this(
toolDisplayName: json_['toolDisplayName'] as core.String?,
toolId: json_['toolId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final toolDisplayName = this.toolDisplayName;
final toolId = this.toolId;
return {'toolDisplayName': ?toolDisplayName, 'toolId': ?toolId};
}
}
/// Metadata about the issue dimension.
class GoogleCloudContactcenterinsightsV1DimensionIssueDimensionMetadata {
/// The issue display name.
core.String? issueDisplayName;
/// The issue ID.
core.String? issueId;
/// The parent issue model ID.
core.String? issueModelId;
GoogleCloudContactcenterinsightsV1DimensionIssueDimensionMetadata({
this.issueDisplayName,
this.issueId,
this.issueModelId,
});
GoogleCloudContactcenterinsightsV1DimensionIssueDimensionMetadata.fromJson(
core.Map json_,
) : this(
issueDisplayName: json_['issueDisplayName'] as core.String?,
issueId: json_['issueId'] as core.String?,
issueModelId: json_['issueModelId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final issueDisplayName = this.issueDisplayName;
final issueId = this.issueId;
final issueModelId = this.issueModelId;
return {
'issueDisplayName': ?issueDisplayName,
'issueId': ?issueId,
'issueModelId': ?issueModelId,
};
}
}
/// Metadata about conversation labels.
class GoogleCloudContactcenterinsightsV1DimensionLabelDimensionMetadata {
/// The label key.
///
/// Optional.
core.String? labelKey;
/// The label value.
///
/// Optional.
core.String? labelValue;
GoogleCloudContactcenterinsightsV1DimensionLabelDimensionMetadata({
this.labelKey,
this.labelValue,
});
GoogleCloudContactcenterinsightsV1DimensionLabelDimensionMetadata.fromJson(
core.Map json_,
) : this(
labelKey: json_['labelKey'] as core.String?,
labelValue: json_['labelValue'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final labelKey = this.labelKey;
final labelValue = this.labelValue;
return {'labelKey': ?labelKey, 'labelValue': ?labelValue};
}
}
/// Metadata about the conversation medium dimension.
class GoogleCloudContactcenterinsightsV1DimensionMediumDimensionMetadata {
/// The conversation medium.
///
/// Currently supports : PHONE_CALL, CHAT.
///
/// Optional.
core.String? medium;
GoogleCloudContactcenterinsightsV1DimensionMediumDimensionMetadata({
this.medium,
});
GoogleCloudContactcenterinsightsV1DimensionMediumDimensionMetadata.fromJson(
core.Map json_,
) : this(medium: json_['medium'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final medium = this.medium;
return {'medium': ?medium};
}
}
/// Metadata about the QA question-answer dimension.
///
/// This is useful for showing the answer distribution for questions for a given
/// scorecard.
class GoogleCloudContactcenterinsightsV1DimensionQaQuestionAnswerDimensionMetadata {
/// The full body of the question.
///
/// Optional.
core.String? answerValue;
/// The QA question ID.
///
/// Optional.
core.String? qaQuestionId;
/// The QA scorecard ID.
///
/// Optional.
core.String? qaScorecardId;
/// The full body of the question.
///
/// Optional.
core.String? questionBody;
GoogleCloudContactcenterinsightsV1DimensionQaQuestionAnswerDimensionMetadata({
this.answerValue,
this.qaQuestionId,
this.qaScorecardId,
this.questionBody,
});
GoogleCloudContactcenterinsightsV1DimensionQaQuestionAnswerDimensionMetadata.fromJson(
core.Map json_,
) : this(
answerValue: json_['answerValue'] as core.String?,
qaQuestionId: json_['qaQuestionId'] as core.String?,
qaScorecardId: json_['qaScorecardId'] as core.String?,
questionBody: json_['questionBody'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final answerValue = this.answerValue;
final qaQuestionId = this.qaQuestionId;
final qaScorecardId = this.qaScorecardId;
final questionBody = this.questionBody;
return {
'answerValue': ?answerValue,
'qaQuestionId': ?qaQuestionId,
'qaScorecardId': ?qaScorecardId,
'questionBody': ?questionBody,
};
}
}
/// Metadata about the QA question dimension.
class GoogleCloudContactcenterinsightsV1DimensionQaQuestionDimensionMetadata {
/// The QA question ID.
///
/// Optional.
core.String? qaQuestionId;
/// The QA scorecard ID.
///
/// Optional.
core.String? qaScorecardId;
/// The full body of the question.
///
/// Optional.
core.String? questionBody;
GoogleCloudContactcenterinsightsV1DimensionQaQuestionDimensionMetadata({
this.qaQuestionId,
this.qaScorecardId,
this.questionBody,
});
GoogleCloudContactcenterinsightsV1DimensionQaQuestionDimensionMetadata.fromJson(
core.Map json_,
) : this(
qaQuestionId: json_['qaQuestionId'] as core.String?,
qaScorecardId: json_['qaScorecardId'] as core.String?,
questionBody: json_['questionBody'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final qaQuestionId = this.qaQuestionId;
final qaScorecardId = this.qaScorecardId;
final questionBody = this.questionBody;
return {
'qaQuestionId': ?qaQuestionId,
'qaScorecardId': ?qaScorecardId,
'questionBody': ?questionBody,
};
}
}
/// Metadata about the QA scorecard dimension.
class GoogleCloudContactcenterinsightsV1DimensionQaScorecardDimensionMetadata {
/// The QA scorecard ID.
///
/// Optional.
core.String? qaScorecardId;
GoogleCloudContactcenterinsightsV1DimensionQaScorecardDimensionMetadata({
this.qaScorecardId,
});
GoogleCloudContactcenterinsightsV1DimensionQaScorecardDimensionMetadata.fromJson(
core.Map json_,
) : this(qaScorecardId: json_['qaScorecardId'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final qaScorecardId = this.qaScorecardId;
return {'qaScorecardId': ?qaScorecardId};
}
}
/// A customer-managed encryption key specification that can be applied to all
/// created resources (e.g. `Conversation`).
class GoogleCloudContactcenterinsightsV1EncryptionSpec {
/// The name of customer-managed encryption key that is used to secure a
/// resource and its sub-resources.
///
/// If empty, the resource is secured by our default encryption key. Only the
/// key in the same location as this resource is allowed to be used for
/// encryption. Format:
/// `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`
///
/// Required.
core.String? kmsKey;
/// The resource name of the encryption key specification resource.
///
/// Format: projects/{project}/locations/{location}/encryptionSpec
///
/// Immutable.
core.String? name;
GoogleCloudContactcenterinsightsV1EncryptionSpec({this.kmsKey, this.name});
GoogleCloudContactcenterinsightsV1EncryptionSpec.fromJson(core.Map json_)
: this(
kmsKey: json_['kmsKey'] as core.String?,
name: json_['name'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final kmsKey = this.kmsKey;
final name = this.name;
return {'kmsKey': ?kmsKey, 'name': ?name};
}
}
/// The data for an entity annotation.
///
/// Represents a phrase in the conversation that is a known entity, such as a
/// person, an organization, or location.
class GoogleCloudContactcenterinsightsV1Entity {
/// The representative name for the entity.
core.String? displayName;
/// Metadata associated with the entity.
///
/// For most entity types, the metadata is a Wikipedia URL (`wikipedia_url`)
/// and Knowledge Graph MID (`mid`), if they are available. For the metadata
/// associated with other entity types, see the Type table below.
core.Map<core.String, core.String>? metadata;
/// The salience score associated with the entity in the \[0, 1.0\] range.
///
/// The salience score for an entity provides information about the importance
/// or centrality of that entity to the entire document text. Scores closer to
/// 0 are less salient, while scores closer to 1.0 are highly salient.
core.double? salience;
/// The aggregate sentiment expressed for this entity in the conversation.
GoogleCloudContactcenterinsightsV1SentimentData? sentiment;
/// The entity type.
/// Possible string values are:
/// - "TYPE_UNSPECIFIED" : Unspecified.
/// - "PERSON" : Person.
/// - "LOCATION" : Location.
/// - "ORGANIZATION" : Organization.
/// - "EVENT" : Event.
/// - "WORK_OF_ART" : Artwork.
/// - "CONSUMER_GOOD" : Consumer product.
/// - "OTHER" : Other types of entities.
/// - "PHONE_NUMBER" : Phone number. The metadata lists the phone number
/// (formatted according to local convention), plus whichever additional
/// elements appear in the text: * `number` - The actual number, broken down
/// into sections according to local convention. * `national_prefix` - Country
/// code, if detected. * `area_code` - Region or area code, if detected. *
/// `extension` - Phone extension (to be dialed after connection), if
/// detected.
/// - "ADDRESS" : Address. The metadata identifies the street number and
/// locality plus whichever additional elements appear in the text: *
/// `street_number` - Street number. * `locality` - City or town. *
/// `street_name` - Street/route name, if detected. * `postal_code` - Postal
/// code, if detected. * `country` - Country, if detected. * `broad_region` -
/// Administrative area, such as the state, if detected. * `narrow_region` -
/// Smaller administrative area, such as county, if detected. * `sublocality`
/// - Used in Asian addresses to demark a district within a city, if detected.
/// - "DATE" : Date. The metadata identifies the components of the date: *
/// `year` - Four digit year, if detected. * `month` - Two digit month number,
/// if detected. * `day` - Two digit day number, if detected.
/// - "NUMBER" : Number. The metadata is the number itself.
/// - "PRICE" : Price. The metadata identifies the `value` and `currency`.
core.String? type;
GoogleCloudContactcenterinsightsV1Entity({
this.displayName,
this.metadata,
this.salience,
this.sentiment,
this.type,
});
GoogleCloudContactcenterinsightsV1Entity.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
salience: (json_['salience'] as core.num?)?.toDouble(),
sentiment: json_.containsKey('sentiment')
? GoogleCloudContactcenterinsightsV1SentimentData.fromJson(
json_['sentiment'] as core.Map<core.String, core.dynamic>,
)
: null,
type: json_['type'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final metadata = this.metadata;
final salience = this.salience;
final sentiment = this.sentiment;
final type = this.type;
return {
'displayName': ?displayName,
'metadata': ?metadata,
'salience': ?salience,
'sentiment': ?sentiment,
'type': ?type,
};
}
}
/// The data for an entity mention annotation.
///
/// This represents a mention of an `Entity` in the conversation.
class GoogleCloudContactcenterinsightsV1EntityMentionData {
/// The key of this entity in conversation entities.
///
/// Can be used to retrieve the exact `Entity` this mention is attached to.
core.String? entityUniqueId;
/// Sentiment expressed for this mention of the entity.
GoogleCloudContactcenterinsightsV1SentimentData? sentiment;
/// The type of the entity mention.
/// Possible string values are:
/// - "MENTION_TYPE_UNSPECIFIED" : Unspecified.
/// - "PROPER" : Proper noun.
/// - "COMMON" : Common noun (or noun compound).
core.String? type;
GoogleCloudContactcenterinsightsV1EntityMentionData({
this.entityUniqueId,
this.sentiment,
this.type,
});
GoogleCloudContactcenterinsightsV1EntityMentionData.fromJson(core.Map json_)
: this(
entityUniqueId: json_['entityUniqueId'] as core.String?,
sentiment: json_.containsKey('sentiment')
? GoogleCloudContactcenterinsightsV1SentimentData.fromJson(
json_['sentiment'] as core.Map<core.String, core.dynamic>,
)
: null,
type: json_['type'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final entityUniqueId = this.entityUniqueId;
final sentiment = this.sentiment;
final type = this.type;
return {
'entityUniqueId': ?entityUniqueId,
'sentiment': ?sentiment,
'type': ?type,
};
}
}
/// Exact match configuration.
class GoogleCloudContactcenterinsightsV1ExactMatchConfig {
/// Whether to consider case sensitivity when performing an exact match.
core.bool? caseSensitive;
GoogleCloudContactcenterinsightsV1ExactMatchConfig({this.caseSensitive});
GoogleCloudContactcenterinsightsV1ExactMatchConfig.fromJson(core.Map json_)
: this(caseSensitive: json_['caseSensitive'] as core.bool?);
core.Map<core.String, core.dynamic> toJson() {
final caseSensitive = this.caseSensitive;
return {'caseSensitive': ?caseSensitive};
}
}
/// The request to export insights.
class GoogleCloudContactcenterinsightsV1ExportInsightsDataRequest {
/// Specified if sink is a BigQuery table.
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestination?
bigQueryDestination;
/// Version of the export schema.
///
/// Optional.
/// Possible string values are:
/// - "EXPORT_SCHEMA_VERSION_UNSPECIFIED" : Unspecified. Defaults to
/// EXPORT_V3.
/// - "EXPORT_V1" : Export schema version 1.
/// - "EXPORT_V2" : Export schema version 2.
/// - "EXPORT_V3" : Export schema version 3.
/// - "EXPORT_V4" : Export schema version 4.
/// - "EXPORT_V5" : Export schema version 5.
/// - "EXPORT_V6" : Export schema version 6.
/// - "EXPORT_V7" : Export schema version 7.
/// - "EXPORT_V8" : Export schema version 8.
/// - "EXPORT_V9" : Export schema version 9.
/// - "EXPORT_V10" : Export schema version 10.
/// - "EXPORT_V11" : Export schema version 11.
/// - "EXPORT_V12" : Export schema version 12.
/// - "EXPORT_V13" : Export schema version 13.
/// - "EXPORT_V14" : Export schema version 14.
/// - "EXPORT_V15" : Export schema version 15.
/// - "EXPORT_V16" : Export schema version 16.
/// - "EXPORT_V17" : Export schema version 17.
/// - "EXPORT_VERSION_LATEST_AVAILABLE" : Export schema version latest
/// available.
core.String? exportSchemaVersion;
/// A filter to reduce results to a specific subset.
///
/// Useful for exporting conversations with specific properties.
core.String? filter;
/// A fully qualified KMS key name for BigQuery tables protected by CMEK.
///
/// Format:
/// projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}
core.String? kmsKey;
/// The parent resource to export data from.
///
/// Required.
core.String? parent;
/// Options for what to do if the destination table already exists.
/// Possible string values are:
/// - "WRITE_DISPOSITION_UNSPECIFIED" : Write disposition is not specified.
/// Defaults to WRITE_TRUNCATE.
/// - "WRITE_TRUNCATE" : If the table already exists, BigQuery will overwrite
/// the table data and use the schema from the load.
/// - "WRITE_APPEND" : If the table already exists, BigQuery will append data
/// to the table.
core.String? writeDisposition;
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequest({
this.bigQueryDestination,
this.exportSchemaVersion,
this.filter,
this.kmsKey,
this.parent,
this.writeDisposition,
});
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequest.fromJson(
core.Map json_,
) : this(
bigQueryDestination: json_.containsKey('bigQueryDestination')
? GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestination.fromJson(
json_['bigQueryDestination']
as core.Map<core.String, core.dynamic>,
)
: null,
exportSchemaVersion: json_['exportSchemaVersion'] as core.String?,
filter: json_['filter'] as core.String?,
kmsKey: json_['kmsKey'] as core.String?,
parent: json_['parent'] as core.String?,
writeDisposition: json_['writeDisposition'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final bigQueryDestination = this.bigQueryDestination;
final exportSchemaVersion = this.exportSchemaVersion;
final filter = this.filter;
final kmsKey = this.kmsKey;
final parent = this.parent;
final writeDisposition = this.writeDisposition;
return {
'bigQueryDestination': ?bigQueryDestination,
'exportSchemaVersion': ?exportSchemaVersion,
'filter': ?filter,
'kmsKey': ?kmsKey,
'parent': ?parent,
'writeDisposition': ?writeDisposition,
};
}
}
/// A BigQuery Table Reference.
class GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestination {
/// The name of the BigQuery dataset that the snapshot result should be
/// exported to.
///
/// If this dataset does not exist, the export call returns an
/// INVALID_ARGUMENT error.
///
/// Required.
core.String? dataset;
/// A project ID or number.
///
/// If specified, then export will attempt to write data to this project
/// instead of the resource project. Otherwise, the resource project will be
/// used.
core.String? projectId;
/// The BigQuery table name to which the insights data should be written.
///
/// If this table does not exist, the export call returns an INVALID_ARGUMENT
/// error.
core.String? table;
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestination({
this.dataset,
this.projectId,
this.table,
});
GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestination.fromJson(
core.Map json_,
) : this(
dataset: json_['dataset'] as core.String?,
projectId: json_['projectId'] as core.String?,
table: json_['table'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final dataset = this.dataset;
final projectId = this.projectId;
final table = this.table;
return {'dataset': ?dataset, 'projectId': ?projectId, 'table': ?table};
}
}
/// Request to export an issue model.
class GoogleCloudContactcenterinsightsV1ExportIssueModelRequest {
/// Google Cloud Storage URI to export the issue model to.
GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination?
gcsDestination;
/// The issue model to export.
///
/// Required.
core.String? name;
GoogleCloudContactcenterinsightsV1ExportIssueModelRequest({
this.gcsDestination,
this.name,
});
GoogleCloudContactcenterinsightsV1ExportIssueModelRequest.fromJson(
core.Map json_,
) : this(
gcsDestination: json_.containsKey('gcsDestination')
? GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination.fromJson(
json_['gcsDestination'] as core.Map<core.String, core.dynamic>,
)
: null,
name: json_['name'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final gcsDestination = this.gcsDestination;
final name = this.name;
return {'gcsDestination': ?gcsDestination, 'name': ?name};
}
}
/// Google Cloud Storage Object URI to save the issue model to.
typedef GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination =
$Shared14;
/// Agent Assist frequently-asked-question answer data.
class GoogleCloudContactcenterinsightsV1FaqAnswerData {
/// The piece of text from the `source` knowledge base document.
core.String? answer;
/// The system's confidence score that this answer is a good match for this
/// conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
/// certain).
core.double? confidenceScore;
/// Map that contains metadata about the FAQ answer and the document that it
/// originates from.
core.Map<core.String, core.String>? metadata;
/// The name of the answer record.
///
/// Format:
/// projects/{project}/locations/{location}/answerRecords/{answer_record}
core.String? queryRecord;
/// The corresponding FAQ question.
core.String? question;
/// The knowledge document that this answer was extracted from.
///
/// Format:
/// projects/{project}/knowledgeBases/{knowledge_base}/documents/{document}.
core.String? source;
GoogleCloudContactcenterinsightsV1FaqAnswerData({
this.answer,
this.confidenceScore,
this.metadata,
this.queryRecord,
this.question,
this.source,
});
GoogleCloudContactcenterinsightsV1FaqAnswerData.fromJson(core.Map json_)
: this(
answer: json_['answer'] as core.String?,
confidenceScore: (json_['confidenceScore'] as core.num?)?.toDouble(),
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
queryRecord: json_['queryRecord'] as core.String?,
question: json_['question'] as core.String?,
source: json_['source'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final answer = this.answer;
final confidenceScore = this.confidenceScore;
final metadata = this.metadata;
final queryRecord = this.queryRecord;
final question = this.question;
final source = this.source;
return {
'answer': ?answer,
'confidenceScore': ?confidenceScore,
'metadata': ?metadata,
'queryRecord': ?queryRecord,
'question': ?question,
'source': ?source,
};
}
}
/// Represents a conversation, resource, and label provided by the user.
///
/// Can take the form of a string label or a QaAnswer label. QaAnswer labels are
/// used for Quality AI example conversations. String labels are used for Topic
/// Modeling. AgentAssistSummary labels are used for Agent Assist Summarization.
class GoogleCloudContactcenterinsightsV1FeedbackLabel {
/// Create time of the label.
///
/// Output only.
core.String? createTime;
/// String label used for Topic Modeling.
core.String? label;
/// Name of the resource to be labeled.
///
/// Supported resources are: *
/// `projects/{project}/locations/{location}/qaScorecards/{scorecard}/revisions/{revision}/qaQuestions/{question}`
/// * `projects/{project}/locations/{location}/issueModels/{issue_model}` *
/// `projects/{project}/locations/{location}/generators/{generator_id}`
core.String? labeledResource;
/// Resource name of the FeedbackLabel.
///
/// Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/feedbackLabels/{feedback_label}
///
/// Immutable.
core.String? name;
/// QaAnswer label used for Quality AI example conversations.
GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue? qaAnswerLabel;
/// Update time of the label.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1FeedbackLabel({
this.createTime,
this.label,
this.labeledResource,
this.name,
this.qaAnswerLabel,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
label: json_['label'] as core.String?,
labeledResource: json_['labeledResource'] as core.String?,
name: json_['name'] as core.String?,
qaAnswerLabel: json_.containsKey('qaAnswerLabel')
? GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue.fromJson(
json_['qaAnswerLabel'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final label = this.label;
final labeledResource = this.labeledResource;
final name = this.name;
final qaAnswerLabel = this.qaAnswerLabel;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'label': ?label,
'labeledResource': ?labeledResource,
'name': ?name,
'qaAnswerLabel': ?qaAnswerLabel,
'updateTime': ?updateTime,
};
}
}
/// The message to finalize an assessment.
///
/// Finalizing makes an assessment and its notes immutable.
typedef GoogleCloudContactcenterinsightsV1FinalizeAssessmentRequest = $Empty;
/// A Cloud Storage source of conversation data.
class GoogleCloudContactcenterinsightsV1GcsSource {
/// Cloud Storage URI that points to a file that contains the conversation
/// audio.
core.String? audioUri;
/// Cloud Storage URI that points to a file that contains the conversation
/// transcript.
///
/// Immutable.
core.String? transcriptUri;
GoogleCloudContactcenterinsightsV1GcsSource({
this.audioUri,
this.transcriptUri,
});
GoogleCloudContactcenterinsightsV1GcsSource.fromJson(core.Map json_)
: this(
audioUri: json_['audioUri'] as core.String?,
transcriptUri: json_['transcriptUri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final audioUri = this.audioUri;
final transcriptUri = this.transcriptUri;
return {'audioUri': ?audioUri, 'transcriptUri': ?transcriptUri};
}
}
/// The response from a GenerateConversationSignedAudio request.
class GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse {
/// The signed uris for the audio.
GoogleCloudContactcenterinsightsV1SignedAudioUris? signedAudioUris;
GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse({
this.signedAudioUris,
});
GoogleCloudContactcenterinsightsV1GenerateConversationSignedAudioResponse.fromJson(
core.Map json_,
) : this(
signedAudioUris: json_.containsKey('signedAudioUris')
? GoogleCloudContactcenterinsightsV1SignedAudioUris.fromJson(
json_['signedAudioUris'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final signedAudioUris = this.signedAudioUris;
return {'signedAudioUris': ?signedAudioUris};
}
}
/// Request that use natural language query to generate the chart.
class GoogleCloudContactcenterinsightsV1GenerativeInsights {
/// The chart checkpoint used to generate the chart.
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartCheckpoint?
chartCheckpoint;
/// The chart conversations used to generate the chart.
///
/// Output only.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.List<
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversation
>?
chartConversations;
/// Chart spec for the chart.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? chartSpec;
///
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? request;
/// For charts with comparison, this key will determine the metric that will
/// be compared between the current and another dataset.
///
/// Optional.
core.String? sqlComparisonKey;
/// SQL query used to generate the chart.
core.String? sqlQuery;
GoogleCloudContactcenterinsightsV1GenerativeInsights({
this.chartCheckpoint,
this.chartConversations,
this.chartSpec,
this.request,
this.sqlComparisonKey,
this.sqlQuery,
});
GoogleCloudContactcenterinsightsV1GenerativeInsights.fromJson(core.Map json_)
: this(
chartCheckpoint: json_.containsKey('chartCheckpoint')
? GoogleCloudContactcenterinsightsV1GenerativeInsightsChartCheckpoint.fromJson(
json_['chartCheckpoint'] as core.Map<core.String, core.dynamic>,
)
: null,
chartConversations: (json_['chartConversations'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
chartSpec: json_.containsKey('chartSpec')
? json_['chartSpec'] as core.Map<core.String, core.dynamic>
: null,
request: json_.containsKey('request')
? json_['request'] as core.Map<core.String, core.dynamic>
: null,
sqlComparisonKey: json_['sqlComparisonKey'] as core.String?,
sqlQuery: json_['sqlQuery'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final chartCheckpoint = this.chartCheckpoint;
final chartConversations = this.chartConversations;
final chartSpec = this.chartSpec;
final request = this.request;
final sqlComparisonKey = this.sqlComparisonKey;
final sqlQuery = this.sqlQuery;
return {
'chartCheckpoint': ?chartCheckpoint,
'chartConversations': ?chartConversations,
'chartSpec': ?chartSpec,
'request': ?request,
'sqlComparisonKey': ?sqlComparisonKey,
'sqlQuery': ?sqlQuery,
};
}
}
/// The current chart checkpoint state.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartCheckpoint {
/// The revision id of the chart.
core.String? revisionId;
/// The session id of the chart.
core.String? sessionId;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartCheckpoint({
this.revisionId,
this.sessionId,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartCheckpoint.fromJson(
core.Map json_,
) : this(
revisionId: json_['revisionId'] as core.String?,
sessionId: json_['sessionId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final revisionId = this.revisionId;
final sessionId = this.sessionId;
return {'revisionId': ?revisionId, 'sessionId': ?sessionId};
}
}
/// The conversation used to generate the chart.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversation {
/// The conversation id of the chart.
core.String? conversationId;
/// The create time of the conversation.
core.String? createTime;
/// Ordered list of messages, including user inputs and system responses.
core.List<
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessage
>?
messages;
/// The update time of the conversation.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversation({
this.conversationId,
this.createTime,
this.messages,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversation.fromJson(
core.Map json_,
) : this(
conversationId: json_['conversationId'] as core.String?,
createTime: json_['createTime'] as core.String?,
messages: (json_['messages'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessage.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationId = this.conversationId;
final createTime = this.createTime;
final messages = this.messages;
final updateTime = this.updateTime;
return {
'conversationId': ?conversationId,
'createTime': ?createTime,
'messages': ?messages,
'updateTime': ?updateTime,
};
}
}
/// The message in the conversation.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessage {
/// For user messages, this is the time at which the system received the
/// message.
///
/// For system messages, this is the time at which the system generated the
/// message.
core.String? createTime;
/// The message id of the message.
core.String? messageId;
/// A message from the system in response to the user.
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessage?
systemMessage;
/// A message from the user that is interacting with the system.
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageUserMessage?
userMessage;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessage({
this.createTime,
this.messageId,
this.systemMessage,
this.userMessage,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessage.fromJson(
core.Map json_,
) : this(
createTime: json_['createTime'] as core.String?,
messageId: json_['messageId'] as core.String?,
systemMessage: json_.containsKey('systemMessage')
? GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessage.fromJson(
json_['systemMessage'] as core.Map<core.String, core.dynamic>,
)
: null,
userMessage: json_.containsKey('userMessage')
? GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageUserMessage.fromJson(
json_['userMessage'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final messageId = this.messageId;
final systemMessage = this.systemMessage;
final userMessage = this.userMessage;
return {
'createTime': ?createTime,
'messageId': ?messageId,
'systemMessage': ?systemMessage,
'userMessage': ?userMessage,
};
}
}
/// A message from the system in response to the user.
///
/// This message can also be a message from the user as historical context for
/// multiturn conversations with the system.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessage {
/// Chart spec from LLM
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? chartSpec;
/// Raw SQL from LLM, before templatization
core.String? generatedSqlQuery;
/// A direct natural language response to the user message.
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessageTextOutput?
textOutput;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessage({
this.chartSpec,
this.generatedSqlQuery,
this.textOutput,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessage.fromJson(
core.Map json_,
) : this(
chartSpec: json_.containsKey('chartSpec')
? json_['chartSpec'] as core.Map<core.String, core.dynamic>
: null,
generatedSqlQuery: json_['generatedSqlQuery'] as core.String?,
textOutput: json_.containsKey('textOutput')
? GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessageTextOutput.fromJson(
json_['textOutput'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final chartSpec = this.chartSpec;
final generatedSqlQuery = this.generatedSqlQuery;
final textOutput = this.textOutput;
return {
'chartSpec': ?chartSpec,
'generatedSqlQuery': ?generatedSqlQuery,
'textOutput': ?textOutput,
};
}
}
/// A text output message from the system.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessageTextOutput {
/// The parts of the message.
core.List<core.String>? texts;
/// The type of the text message.
/// Possible string values are:
/// - "TYPE_UNSPECIFIED" : The default text type.
/// - "THOUGHT" : The text is a thinking plan generated by the thinking tool.
/// - "FINAL_RESPONSE" : The text is a final response to the user question.
/// - "PROGRESS" : The text is an informational message about the agent's
/// progress, such as a tool being invoked. This is distinct from the agent's
/// internal thought process (`THOUGHT`) and the final answer to the user
/// (`FINAL_RESPONSE`). These messages provide insight into the agent's
/// actions.
core.String? type;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessageTextOutput({
this.texts,
this.type,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageSystemMessageTextOutput.fromJson(
core.Map json_,
) : this(
texts: (json_['texts'] as core.List?)
?.map((value) => value as core.String)
.toList(),
type: json_['type'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final texts = this.texts;
final type = this.type;
return {'texts': ?texts, 'type': ?type};
}
}
/// The user message.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageUserMessage {
/// A message from the user that is interacting with the system.
core.String? text;
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageUserMessage({
this.text,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsChartConversationMessageUserMessage.fromJson(
core.Map json_,
) : this(text: json_['text'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final text = this.text;
return {'text': ?text};
}
}
/// The request for generative insights.
class GoogleCloudContactcenterinsightsV1GenerativeInsightsRequest {
/// The full name of the chart resource this request corresponds to.
///
/// Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}/charts/{chart}
core.String? chart;
/// Filter for the data that can be specified in addition to the natural
/// language query.
///
/// This `filter` is specifically used for charts where comparisons are
/// possible. For example, "compare to last month" or "compare to previous
/// quarter".
///
/// Optional.
core.String? comparisonFilter;
/// Filter for the data that can be specified in addition to the natural
/// language query.
///
/// Users are encouraged to use this field to populate time-windows.
core.String? filter;
/// The natural language query specified by the user.
///
/// If this field is specified, `sql_query` will be ignored.
core.String? naturalLanguageQuery;
/// The revision id that maps to the state of the chart state revision.
///
/// When specified, the backend will reload the chart with the sql and visual
/// spec from that revision.
///
/// Optional.
core.String? revisionId;
/// The session id of the conversation.
///
/// If the session id is not specified, backend will generate a random session
/// id. If the session id is specified, will associate user-provided
/// user_query with the provided session id.
///
/// Optional.
core.String? sessionId;
/// For charts with comparison, this key will determine the metric that will
/// be compared between the current and another dataset.
///
/// Optional.
core.String? sqlComparisonKey;
/// The SQL query specified by the user.
///
/// This query must be in BigQuery SQL dialect. The `filter` field will also
/// be ignored, as it is assumed that any filtering is already included in the
/// SQL query.
///
/// Optional.
core.String? sqlQuery;
/// The user provided chart spec for the chart.
///
/// This will be used to override the visual spec generated by the LLM.
///
/// Optional.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? userProvidedChartSpec;
GoogleCloudContactcenterinsightsV1GenerativeInsightsRequest({
this.chart,
this.comparisonFilter,
this.filter,
this.naturalLanguageQuery,
this.revisionId,
this.sessionId,
this.sqlComparisonKey,
this.sqlQuery,
this.userProvidedChartSpec,
});
GoogleCloudContactcenterinsightsV1GenerativeInsightsRequest.fromJson(
core.Map json_,
) : this(
chart: json_['chart'] as core.String?,
comparisonFilter: json_['comparisonFilter'] as core.String?,
filter: json_['filter'] as core.String?,
naturalLanguageQuery: json_['naturalLanguageQuery'] as core.String?,
revisionId: json_['revisionId'] as core.String?,
sessionId: json_['sessionId'] as core.String?,
sqlComparisonKey: json_['sqlComparisonKey'] as core.String?,
sqlQuery: json_['sqlQuery'] as core.String?,
userProvidedChartSpec: json_.containsKey('userProvidedChartSpec')
? json_['userProvidedChartSpec']
as core.Map<core.String, core.dynamic>
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final chart = this.chart;
final comparisonFilter = this.comparisonFilter;
final filter = this.filter;
final naturalLanguageQuery = this.naturalLanguageQuery;
final revisionId = this.revisionId;
final sessionId = this.sessionId;
final sqlComparisonKey = this.sqlComparisonKey;
final sqlQuery = this.sqlQuery;
final userProvidedChartSpec = this.userProvidedChartSpec;
return {
'chart': ?chart,
'comparisonFilter': ?comparisonFilter,
'filter': ?filter,
'naturalLanguageQuery': ?naturalLanguageQuery,
'revisionId': ?revisionId,
'sessionId': ?sessionId,
'sqlComparisonKey': ?sqlComparisonKey,
'sqlQuery': ?sqlQuery,
'userProvidedChartSpec': ?userProvidedChartSpec,
};
}
}
/// The data for a hold annotation.
typedef GoogleCloudContactcenterinsightsV1HoldData = $Empty;
/// Request to import an issue model.
class GoogleCloudContactcenterinsightsV1ImportIssueModelRequest {
/// If set to true, will create an issue model from the imported file with
/// randomly generated IDs for the issue model and corresponding issues.
///
/// Otherwise, replaces an existing model with the same ID as the file.
///
/// Optional.
core.bool? createNewModel;
/// Google Cloud Storage source message.
GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource? gcsSource;
/// The parent resource of the issue model.
///
/// Required.
core.String? parent;
GoogleCloudContactcenterinsightsV1ImportIssueModelRequest({
this.createNewModel,
this.gcsSource,
this.parent,
});
GoogleCloudContactcenterinsightsV1ImportIssueModelRequest.fromJson(
core.Map json_,
) : this(
createNewModel: json_['createNewModel'] as core.bool?,
gcsSource: json_.containsKey('gcsSource')
? GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource.fromJson(
json_['gcsSource'] as core.Map<core.String, core.dynamic>,
)
: null,
parent: json_['parent'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createNewModel = this.createNewModel;
final gcsSource = this.gcsSource;
final parent = this.parent;
return {
'createNewModel': ?createNewModel,
'gcsSource': ?gcsSource,
'parent': ?parent,
};
}
}
/// Google Cloud Storage Object URI to get the issue model file from.
typedef GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource =
$Shared14;
/// The request to ingest conversations.
class GoogleCloudContactcenterinsightsV1IngestConversationsRequest {
/// Configuration that applies to all conversations.
GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig?
conversationConfig;
/// A cloud storage bucket source.
///
/// Note that any previously ingested objects from the source will be skipped
/// to avoid duplication.
GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource?
gcsSource;
/// The parent resource for new conversations.
///
/// Required.
core.String? parent;
/// DLP settings for transcript redaction.
///
/// Optional, will default to the config specified in Settings.
///
/// Optional.
GoogleCloudContactcenterinsightsV1RedactionConfig? redactionConfig;
/// If set, this fields indicates the number of objects to ingest from the
/// Cloud Storage bucket.
///
/// If empty, the entire bucket will be ingested. Unless they are first
/// deleted, conversations produced through sampling won't be ingested by
/// subsequent ingest requests.
///
/// Optional.
core.int? sampleSize;
/// Default Speech-to-Text configuration.
///
/// Optional, will default to the config specified in Settings.
///
/// Optional.
GoogleCloudContactcenterinsightsV1SpeechConfig? speechConfig;
/// Configuration for when `source` contains conversation transcripts.
GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig?
transcriptObjectConfig;
GoogleCloudContactcenterinsightsV1IngestConversationsRequest({
this.conversationConfig,
this.gcsSource,
this.parent,
this.redactionConfig,
this.sampleSize,
this.speechConfig,
this.transcriptObjectConfig,
});
GoogleCloudContactcenterinsightsV1IngestConversationsRequest.fromJson(
core.Map json_,
) : this(
conversationConfig: json_.containsKey('conversationConfig')
? GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig.fromJson(
json_['conversationConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
gcsSource: json_.containsKey('gcsSource')
? GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource.fromJson(
json_['gcsSource'] as core.Map<core.String, core.dynamic>,
)
: null,
parent: json_['parent'] as core.String?,
redactionConfig: json_.containsKey('redactionConfig')
? GoogleCloudContactcenterinsightsV1RedactionConfig.fromJson(
json_['redactionConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
sampleSize: json_['sampleSize'] as core.int?,
speechConfig: json_.containsKey('speechConfig')
? GoogleCloudContactcenterinsightsV1SpeechConfig.fromJson(
json_['speechConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
transcriptObjectConfig: json_.containsKey('transcriptObjectConfig')
? GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig.fromJson(
json_['transcriptObjectConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationConfig = this.conversationConfig;
final gcsSource = this.gcsSource;
final parent = this.parent;
final redactionConfig = this.redactionConfig;
final sampleSize = this.sampleSize;
final speechConfig = this.speechConfig;
final transcriptObjectConfig = this.transcriptObjectConfig;
return {
'conversationConfig': ?conversationConfig,
'gcsSource': ?gcsSource,
'parent': ?parent,
'redactionConfig': ?redactionConfig,
'sampleSize': ?sampleSize,
'speechConfig': ?speechConfig,
'transcriptObjectConfig': ?transcriptObjectConfig,
};
}
}
/// Configuration that applies to all conversations.
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig {
/// Indicates which of the channels, 1 or 2, contains the agent.
///
/// Note that this must be set for conversations to be properly displayed and
/// analyzed.
///
/// Optional.
core.int? agentChannel;
/// An opaque, user-specified string representing a human agent who handled
/// all conversations in the import.
///
/// Note that this will be overridden if per-conversation metadata is provided
/// through the `metadata_bucket_uri`.
///
/// Optional.
core.String? agentId;
/// Indicates which of the channels, 1 or 2, contains the agent.
///
/// Note that this must be set for conversations to be properly displayed and
/// analyzed.
///
/// Optional.
core.int? customerChannel;
GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig({
this.agentChannel,
this.agentId,
this.customerChannel,
});
GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig.fromJson(
core.Map json_,
) : this(
agentChannel: json_['agentChannel'] as core.int?,
agentId: json_['agentId'] as core.String?,
customerChannel: json_['customerChannel'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final agentChannel = this.agentChannel;
final agentId = this.agentId;
final customerChannel = this.customerChannel;
return {
'agentChannel': ?agentChannel,
'agentId': ?agentId,
'customerChannel': ?customerChannel,
};
}
}
/// Configuration for Cloud Storage bucket sources.
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource {
/// The Cloud Storage path to the conversation audio file.
///
/// Note that: \[1\] Audio files will be transcribed if not already. \[2\]
/// Audio files and transcript files must be in separate buckets / folders.
/// \[3\] A source file and its corresponding audio file must share the same
/// name to be properly ingested, E.g.
/// `gs://bucket/transcript/conversation1.json` and
/// `gs://bucket/audio/conversation1.mp3`.
///
/// Optional.
core.String? audioBucketUri;
/// Specifies the type of the objects in `bucket_uri`.
///
/// Avoid passing this. This is inferred from the `transcript_bucket_uri`,
/// `audio_bucket_uri`.
///
/// Optional.
/// Possible string values are:
/// - "BUCKET_OBJECT_TYPE_UNSPECIFIED" : The object type is unspecified and
/// will default to `TRANSCRIPT`.
/// - "TRANSCRIPT" : The object is a transcript.
/// - "AUDIO" : The object is an audio file.
core.String? bucketObjectType;
/// The Cloud Storage bucket containing source objects.
///
/// Avoid passing this. Pass this through one of `transcript_bucket_uri` or
/// `audio_bucket_uri`.
///
/// Optional.
core.String? bucketUri;
/// Custom keys to extract as conversation labels from metadata files in
/// `metadata_bucket_uri`.
///
/// Keys not included in this field will be ignored. Note that there is a
/// limit of 100 labels per conversation.
///
/// Optional.
core.List<core.String>? customMetadataKeys;
/// The Cloud Storage path to the conversation metadata.
///
/// Note that: \[1\] Metadata files are expected to be in JSON format. \[2\]
/// Metadata and source files (transcripts or audio) must be in separate
/// buckets / folders. \[3\] A source file and its corresponding metadata file
/// must share the same name to be properly ingested, E.g.
/// `gs://bucket/audio/conversation1.mp3` and
/// `gs://bucket/metadata/conversation1.json`.
///
/// Optional.
core.String? metadataBucketUri;
/// The Cloud Storage path to the conversation transcripts.
///
/// Note that: \[1\] Transcript files are expected to be in JSON format. \[2\]
/// Transcript, audio, metadata files must be in separate buckets / folders.
/// \[3\] A source file and its corresponding metadata file must share the
/// same name to be properly ingested, E.g.
/// `gs://bucket/audio/conversation1.mp3` and
/// `gs://bucket/metadata/conversation1.json`.
///
/// Optional.
core.String? transcriptBucketUri;
GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource({
this.audioBucketUri,
this.bucketObjectType,
this.bucketUri,
this.customMetadataKeys,
this.metadataBucketUri,
this.transcriptBucketUri,
});
GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource.fromJson(
core.Map json_,
) : this(
audioBucketUri: json_['audioBucketUri'] as core.String?,
bucketObjectType: json_['bucketObjectType'] as core.String?,
bucketUri: json_['bucketUri'] as core.String?,
customMetadataKeys: (json_['customMetadataKeys'] as core.List?)
?.map((value) => value as core.String)
.toList(),
metadataBucketUri: json_['metadataBucketUri'] as core.String?,
transcriptBucketUri: json_['transcriptBucketUri'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final audioBucketUri = this.audioBucketUri;
final bucketObjectType = this.bucketObjectType;
final bucketUri = this.bucketUri;
final customMetadataKeys = this.customMetadataKeys;
final metadataBucketUri = this.metadataBucketUri;
final transcriptBucketUri = this.transcriptBucketUri;
return {
'audioBucketUri': ?audioBucketUri,
'bucketObjectType': ?bucketObjectType,
'bucketUri': ?bucketUri,
'customMetadataKeys': ?customMetadataKeys,
'metadataBucketUri': ?metadataBucketUri,
'transcriptBucketUri': ?transcriptBucketUri,
};
}
}
/// Configuration for processing transcript objects.
class GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig {
/// The medium transcript objects represent.
///
/// Required.
/// Possible string values are:
/// - "MEDIUM_UNSPECIFIED" : Default value for unspecified.
/// - "PHONE_CALL" : The format for conversations that took place over the
/// phone.
/// - "CHAT" : The format for conversations that took place over chat.
core.String? medium;
GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig({
this.medium,
});
GoogleCloudContactcenterinsightsV1IngestConversationsRequestTranscriptObjectConfig.fromJson(
core.Map json_,
) : this(medium: json_['medium'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final medium = this.medium;
return {'medium': ?medium};
}
}
/// The request to initialize a location-level encryption specification.
class GoogleCloudContactcenterinsightsV1InitializeEncryptionSpecRequest {
/// The encryption spec used for CMEK encryption.
///
/// It is required that the kms key is in the same region as the endpoint. The
/// same key will be used for all provisioned resources, if encryption is
/// available. If the `kms_key_name` field is left empty, no encryption will
/// be enforced.
///
/// Required.
GoogleCloudContactcenterinsightsV1EncryptionSpec? encryptionSpec;
GoogleCloudContactcenterinsightsV1InitializeEncryptionSpecRequest({
this.encryptionSpec,
});
GoogleCloudContactcenterinsightsV1InitializeEncryptionSpecRequest.fromJson(
core.Map json_,
) : this(
encryptionSpec: json_.containsKey('encryptionSpec')
? GoogleCloudContactcenterinsightsV1EncryptionSpec.fromJson(
json_['encryptionSpec'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final encryptionSpec = this.encryptionSpec;
return {'encryptionSpec': ?encryptionSpec};
}
}
/// The data for an intent.
///
/// Represents a detected intent in the conversation, for example MAKES_PROMISE.
class GoogleCloudContactcenterinsightsV1Intent {
/// The human-readable name of the intent.
core.String? displayName;
/// The unique identifier of the intent.
core.String? id;
GoogleCloudContactcenterinsightsV1Intent({this.displayName, this.id});
GoogleCloudContactcenterinsightsV1Intent.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
id: json_['id'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final id = this.id;
return {'displayName': ?displayName, 'id': ?id};
}
}
/// The data for an intent match.
///
/// Represents an intent match for a text segment in the conversation. A text
/// segment can be part of a sentence, a complete sentence, or an utterance with
/// multiple sentences.
class GoogleCloudContactcenterinsightsV1IntentMatchData {
/// The id of the matched intent.
///
/// Can be used to retrieve the corresponding intent information.
core.String? intentUniqueId;
GoogleCloudContactcenterinsightsV1IntentMatchData({this.intentUniqueId});
GoogleCloudContactcenterinsightsV1IntentMatchData.fromJson(core.Map json_)
: this(intentUniqueId: json_['intentUniqueId'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final intentUniqueId = this.intentUniqueId;
return {'intentUniqueId': ?intentUniqueId};
}
}
/// The data for an interruption annotation.
typedef GoogleCloudContactcenterinsightsV1InterruptionData = $Empty;
/// The issue resource.
class GoogleCloudContactcenterinsightsV1Issue {
/// The time at which this issue was created.
///
/// Output only.
core.String? createTime;
/// Representative description of the issue.
core.String? displayDescription;
/// The representative name for the issue.
core.String? displayName;
/// The resource name of the issue.
///
/// Format:
/// projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}
///
/// Immutable.
core.String? name;
/// Resource names of the sample representative utterances that match to this
/// issue.
///
/// Output only.
core.List<core.String>? sampleUtterances;
/// The most recent time that this issue was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Issue({
this.createTime,
this.displayDescription,
this.displayName,
this.name,
this.sampleUtterances,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Issue.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
displayDescription: json_['displayDescription'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
sampleUtterances: (json_['sampleUtterances'] as core.List?)
?.map((value) => value as core.String)
.toList(),
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final displayDescription = this.displayDescription;
final displayName = this.displayName;
final name = this.name;
final sampleUtterances = this.sampleUtterances;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'displayDescription': ?displayDescription,
'displayName': ?displayName,
'name': ?name,
'sampleUtterances': ?sampleUtterances,
'updateTime': ?updateTime,
};
}
}
/// Information about the issue.
class GoogleCloudContactcenterinsightsV1IssueAssignment {
/// Display name of the assigned issue.
///
/// This field is set at time of analysis and immutable since then.
///
/// Immutable.
core.String? displayName;
/// Resource name of the assigned issue.
core.String? issue;
/// Score indicating the likelihood of the issue assignment.
///
/// currently bounded on \[0,1\].
core.double? score;
GoogleCloudContactcenterinsightsV1IssueAssignment({
this.displayName,
this.issue,
this.score,
});
GoogleCloudContactcenterinsightsV1IssueAssignment.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
issue: json_['issue'] as core.String?,
score: (json_['score'] as core.num?)?.toDouble(),
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final issue = this.issue;
final score = this.score;
return {'displayName': ?displayName, 'issue': ?issue, 'score': ?score};
}
}
/// The data for an issue match annotation.
class GoogleCloudContactcenterinsightsV1IssueMatchData {
/// Information about the issue's assignment.
GoogleCloudContactcenterinsightsV1IssueAssignment? issueAssignment;
GoogleCloudContactcenterinsightsV1IssueMatchData({this.issueAssignment});
GoogleCloudContactcenterinsightsV1IssueMatchData.fromJson(core.Map json_)
: this(
issueAssignment: json_.containsKey('issueAssignment')
? GoogleCloudContactcenterinsightsV1IssueAssignment.fromJson(
json_['issueAssignment'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final issueAssignment = this.issueAssignment;
return {'issueAssignment': ?issueAssignment};
}
}
/// The issue model resource.
class GoogleCloudContactcenterinsightsV1IssueModel {
/// The time at which this issue model was created.
///
/// Output only.
core.String? createTime;
/// The representative name for the issue model.
core.String? displayName;
/// Configs for the input data that used to create the issue model.
GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig? inputDataConfig;
/// Number of issues in this issue model.
///
/// Output only.
core.String? issueCount;
/// Language of the model.
core.String? languageCode;
/// Type of the model.
/// Possible string values are:
/// - "MODEL_TYPE_UNSPECIFIED" : Unspecified model type.
/// - "TYPE_V1" : Type V1.
/// - "TYPE_V2" : Type V2.
core.String? modelType;
/// The resource name of the issue model.
///
/// Format: projects/{project}/locations/{location}/issueModels/{issue_model}
///
/// Immutable.
core.String? name;
/// State of the model.
///
/// Output only.
/// Possible string values are:
/// - "STATE_UNSPECIFIED" : Unspecified.
/// - "UNDEPLOYED" : Model is not deployed but is ready to deploy.
/// - "DEPLOYING" : Model is being deployed.
/// - "DEPLOYED" : Model is deployed and is ready to be used. A model can only
/// be used in analysis if it's in this state.
/// - "UNDEPLOYING" : Model is being undeployed.
/// - "DELETING" : Model is being deleted.
core.String? state;
/// The issue model's label statistics on its training data.
///
/// Output only. Immutable.
GoogleCloudContactcenterinsightsV1IssueModelLabelStats? trainingStats;
/// The most recent time at which the issue model was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1IssueModel({
this.createTime,
this.displayName,
this.inputDataConfig,
this.issueCount,
this.languageCode,
this.modelType,
this.name,
this.state,
this.trainingStats,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1IssueModel.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
inputDataConfig: json_.containsKey('inputDataConfig')
? GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig.fromJson(
json_['inputDataConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
issueCount: json_['issueCount'] as core.String?,
languageCode: json_['languageCode'] as core.String?,
modelType: json_['modelType'] as core.String?,
name: json_['name'] as core.String?,
state: json_['state'] as core.String?,
trainingStats: json_.containsKey('trainingStats')
? GoogleCloudContactcenterinsightsV1IssueModelLabelStats.fromJson(
json_['trainingStats'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final displayName = this.displayName;
final inputDataConfig = this.inputDataConfig;
final issueCount = this.issueCount;
final languageCode = this.languageCode;
final modelType = this.modelType;
final name = this.name;
final state = this.state;
final trainingStats = this.trainingStats;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'displayName': ?displayName,
'inputDataConfig': ?inputDataConfig,
'issueCount': ?issueCount,
'languageCode': ?languageCode,
'modelType': ?modelType,
'name': ?name,
'state': ?state,
'trainingStats': ?trainingStats,
'updateTime': ?updateTime,
};
}
}
/// Configs for the input data used to create the issue model.
class GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig {
/// A filter to reduce the conversations used for training the model to a
/// specific subset.
///
/// Refer to https://cloud.google.com/contact-center/insights/docs/filtering
/// for details.
core.String? filter;
/// Medium of conversations used in training data.
///
/// This field is being deprecated. To specify the medium to be used in
/// training a new issue model, set the `medium` field on `filter`.
/// Possible string values are:
/// - "MEDIUM_UNSPECIFIED" : Default value for unspecified.
/// - "PHONE_CALL" : The format for conversations that took place over the
/// phone.
/// - "CHAT" : The format for conversations that took place over chat.
@core.Deprecated(
'Not supported. Member documentation may have more information.',
)
core.String? medium;
/// Number of conversations used in training.
///
/// Output only.
///
/// Output only.
core.String? trainingConversationsCount;
GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig({
this.filter,
this.medium,
this.trainingConversationsCount,
});
GoogleCloudContactcenterinsightsV1IssueModelInputDataConfig.fromJson(
core.Map json_,
) : this(
filter: json_['filter'] as core.String?,
medium: json_['medium'] as core.String?,
trainingConversationsCount:
json_['trainingConversationsCount'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final filter = this.filter;
final medium = this.medium;
final trainingConversationsCount = this.trainingConversationsCount;
return {
'filter': ?filter,
'medium': ?medium,
'trainingConversationsCount': ?trainingConversationsCount,
};
}
}
/// Aggregated statistics about an issue model.
class GoogleCloudContactcenterinsightsV1IssueModelLabelStats {
/// Number of conversations the issue model has analyzed at this point in
/// time.
core.String? analyzedConversationsCount;
/// Statistics on each issue.
///
/// Key is the issue's resource name.
core.Map<
core.String,
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats
>?
issueStats;
/// Number of analyzed conversations for which no issue was applicable at this
/// point in time.
core.String? unclassifiedConversationsCount;
GoogleCloudContactcenterinsightsV1IssueModelLabelStats({
this.analyzedConversationsCount,
this.issueStats,
this.unclassifiedConversationsCount,
});
GoogleCloudContactcenterinsightsV1IssueModelLabelStats.fromJson(
core.Map json_,
) : this(
analyzedConversationsCount:
json_['analyzedConversationsCount'] as core.String?,
issueStats:
(json_['issueStats'] as core.Map<core.String, core.dynamic>?)?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
unclassifiedConversationsCount:
json_['unclassifiedConversationsCount'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final analyzedConversationsCount = this.analyzedConversationsCount;
final issueStats = this.issueStats;
final unclassifiedConversationsCount = this.unclassifiedConversationsCount;
return {
'analyzedConversationsCount': ?analyzedConversationsCount,
'issueStats': ?issueStats,
'unclassifiedConversationsCount': ?unclassifiedConversationsCount,
};
}
}
/// Aggregated statistics about an issue.
class GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats {
/// Display name of the issue.
core.String? displayName;
/// Issue resource.
///
/// Format:
/// projects/{project}/locations/{location}/issueModels/{issue_model}/issues/{issue}
core.String? issue;
/// Number of conversations attached to the issue at this point in time.
core.String? labeledConversationsCount;
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats({
this.displayName,
this.issue,
this.labeledConversationsCount,
});
GoogleCloudContactcenterinsightsV1IssueModelLabelStatsIssueStats.fromJson(
core.Map json_,
) : this(
displayName: json_['displayName'] as core.String?,
issue: json_['issue'] as core.String?,
labeledConversationsCount:
json_['labeledConversationsCount'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final issue = this.issue;
final labeledConversationsCount = this.labeledConversationsCount;
return {
'displayName': ?displayName,
'issue': ?issue,
'labeledConversationsCount': ?labeledConversationsCount,
};
}
}
/// Issue Modeling result on a conversation.
class GoogleCloudContactcenterinsightsV1IssueModelResult {
/// Issue model that generates the result.
///
/// Format: projects/{project}/locations/{location}/issueModels/{issue_model}
core.String? issueModel;
/// All the matched issues.
core.List<GoogleCloudContactcenterinsightsV1IssueAssignment>? issues;
GoogleCloudContactcenterinsightsV1IssueModelResult({
this.issueModel,
this.issues,
});
GoogleCloudContactcenterinsightsV1IssueModelResult.fromJson(core.Map json_)
: this(
issueModel: json_['issueModel'] as core.String?,
issues: (json_['issues'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1IssueAssignment.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final issueModel = this.issueModel;
final issues = this.issues;
return {'issueModel': ?issueModel, 'issues': ?issues};
}
}
/// The response for listing all feedback labels.
class GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse {
/// The feedback labels that match the request.
core.List<GoogleCloudContactcenterinsightsV1FeedbackLabel>? feedbackLabels;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse({
this.feedbackLabels,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAllFeedbackLabelsResponse.fromJson(
core.Map json_,
) : this(
feedbackLabels: (json_['feedbackLabels'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final feedbackLabels = this.feedbackLabels;
final nextPageToken = this.nextPageToken;
return {'feedbackLabels': ?feedbackLabels, 'nextPageToken': ?nextPageToken};
}
}
/// The response to list analyses.
class GoogleCloudContactcenterinsightsV1ListAnalysesResponse {
/// The analyses that match the request.
core.List<GoogleCloudContactcenterinsightsV1Analysis>? analyses;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAnalysesResponse({
this.analyses,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAnalysesResponse.fromJson(
core.Map json_,
) : this(
analyses: (json_['analyses'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Analysis.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final analyses = this.analyses;
final nextPageToken = this.nextPageToken;
return {'analyses': ?analyses, 'nextPageToken': ?nextPageToken};
}
}
/// The response of listing views.
class GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse {
/// The analysis_rule that match the request.
core.List<GoogleCloudContactcenterinsightsV1AnalysisRule>? analysisRules;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse({
this.analysisRules,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAnalysisRulesResponse.fromJson(
core.Map json_,
) : this(
analysisRules: (json_['analysisRules'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AnalysisRule.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final analysisRules = this.analysisRules;
final nextPageToken = this.nextPageToken;
return {'analysisRules': ?analysisRules, 'nextPageToken': ?nextPageToken};
}
}
/// The response of listing assessment rules.
class GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse {
/// The assessment rules that match the request.
core.List<GoogleCloudContactcenterinsightsV1AssessmentRule>? assessmentRules;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse({
this.assessmentRules,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAssessmentRulesResponse.fromJson(
core.Map json_,
) : this(
assessmentRules: (json_['assessmentRules'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AssessmentRule.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final assessmentRules = this.assessmentRules;
final nextPageToken = this.nextPageToken;
return {
'assessmentRules': ?assessmentRules,
'nextPageToken': ?nextPageToken,
};
}
}
/// The response of listing assessments.
class GoogleCloudContactcenterinsightsV1ListAssessmentsResponse {
/// The assessments that match the request.
core.List<GoogleCloudContactcenterinsightsV1Assessment>? assessments;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAssessmentsResponse({
this.assessments,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAssessmentsResponse.fromJson(
core.Map json_,
) : this(
assessments: (json_['assessments'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Assessment.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final assessments = this.assessments;
final nextPageToken = this.nextPageToken;
return {'assessments': ?assessments, 'nextPageToken': ?nextPageToken};
}
}
/// The response from a ListAuthorizedViewSet request.
class GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse {
/// The AuthorizedViewSets under the parent.
core.List<GoogleCloudContactcenterinsightsV1AuthorizedViewSet>?
authorizedViewSets;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse({
this.authorizedViewSets,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAuthorizedViewSetsResponse.fromJson(
core.Map json_,
) : this(
authorizedViewSets: (json_['authorizedViewSets'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AuthorizedViewSet.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final authorizedViewSets = this.authorizedViewSets;
final nextPageToken = this.nextPageToken;
return {
'authorizedViewSets': ?authorizedViewSets,
'nextPageToken': ?nextPageToken,
};
}
}
/// The response from a ListAuthorizedViews request.
class GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse {
/// The AuthorizedViews under the parent.
core.List<GoogleCloudContactcenterinsightsV1AuthorizedView>? authorizedViews;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse({
this.authorizedViews,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAuthorizedViewsResponse.fromJson(
core.Map json_,
) : this(
authorizedViews: (json_['authorizedViews'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final authorizedViews = this.authorizedViews;
final nextPageToken = this.nextPageToken;
return {
'authorizedViews': ?authorizedViews,
'nextPageToken': ?nextPageToken,
};
}
}
/// The response message for listing auto labeling rules.
class GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse {
/// The auto labeling rules.
core.List<GoogleCloudContactcenterinsightsV1AutoLabelingRule>?
autoLabelingRules;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse({
this.autoLabelingRules,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListAutoLabelingRulesResponse.fromJson(
core.Map json_,
) : this(
autoLabelingRules: (json_['autoLabelingRules'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final autoLabelingRules = this.autoLabelingRules;
final nextPageToken = this.nextPageToken;
return {
'autoLabelingRules': ?autoLabelingRules,
'nextPageToken': ?nextPageToken,
};
}
}
/// The response of listing charts.
class GoogleCloudContactcenterinsightsV1ListChartsResponse {
/// The charts under the parent.
core.List<GoogleCloudContactcenterinsightsV1Chart>? charts;
/// The value returned by the last `ListChartsResponse`.
///
/// This value indicates that this is a continuation of a prior `ListCharts`
/// call and that the system should return the next page of data.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListChartsResponse({
this.charts,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListChartsResponse.fromJson(core.Map json_)
: this(
charts: (json_['charts'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Chart.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final charts = this.charts;
final nextPageToken = this.nextPageToken;
return {'charts': ?charts, 'nextPageToken': ?nextPageToken};
}
}
/// The response of listing conversations.
class GoogleCloudContactcenterinsightsV1ListConversationsResponse {
/// The conversations that match the request.
core.List<GoogleCloudContactcenterinsightsV1Conversation>? conversations;
/// A token which can be sent as `page_token` to retrieve the next page.
///
/// If this field is set, it means there is another page available. If it is
/// not set, it means no other pages are available.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListConversationsResponse({
this.conversations,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListConversationsResponse.fromJson(
core.Map json_,
) : this(
conversations: (json_['conversations'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1Conversation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversations = this.conversations;
final nextPageToken = this.nextPageToken;
return {'conversations': ?conversations, 'nextPageToken': ?nextPageToken};
}
}
/// The response of listing dashboards.
class GoogleCloudContactcenterinsightsV1ListDashboardsResponse {
/// The dashboards under the parent.
core.List<GoogleCloudContactcenterinsightsV1Dashboard>? dashboards;
/// The value returned by the last `ListDashboardsResponse`.
///
/// This value indicates that this is a continuation of a prior
/// `ListDashboards` call and that the system should return the next page of
/// data.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListDashboardsResponse({
this.dashboards,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListDashboardsResponse.fromJson(
core.Map json_,
) : this(
dashboards: (json_['dashboards'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Dashboard.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final dashboards = this.dashboards;
final nextPageToken = this.nextPageToken;
return {'dashboards': ?dashboards, 'nextPageToken': ?nextPageToken};
}
}
/// The response to list datasets.
class GoogleCloudContactcenterinsightsV1ListDatasetsResponse {
/// The datasets that match the request.
core.List<GoogleCloudContactcenterinsightsV1Dataset>? datasets;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListDatasetsResponse({
this.datasets,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListDatasetsResponse.fromJson(
core.Map json_,
) : this(
datasets: (json_['datasets'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Dataset.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final datasets = this.datasets;
final nextPageToken = this.nextPageToken;
return {'datasets': ?datasets, 'nextPageToken': ?nextPageToken};
}
}
/// The response from a ListDiagnostics request.
class GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse {
/// The diagnostics that match the request.
///
/// Optional.
core.List<GoogleCloudContactcenterinsightsV1Diagnostic>? diagnostics;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
///
/// Optional.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse({
this.diagnostics,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListDiagnosticsResponse.fromJson(
core.Map json_,
) : this(
diagnostics: (json_['diagnostics'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Diagnostic.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final diagnostics = this.diagnostics;
final nextPageToken = this.nextPageToken;
return {'diagnostics': ?diagnostics, 'nextPageToken': ?nextPageToken};
}
}
/// The response for listing feedback labels.
class GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse {
/// The feedback labels that match the request.
core.List<GoogleCloudContactcenterinsightsV1FeedbackLabel>? feedbackLabels;
/// The next page token.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse({
this.feedbackLabels,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1ListFeedbackLabelsResponse.fromJson(
core.Map json_,
) : this(
feedbackLabels: (json_['feedbackLabels'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1FeedbackLabel.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final feedbackLabels = this.feedbackLabels;
final nextPageToken = this.nextPageToken;
return {'feedbackLabels': ?feedbackLabels, 'nextPageToken': ?nextPageToken};
}
}
/// The response of listing issue models.
class GoogleCloudContactcenterinsightsV1ListIssueModelsResponse {
/// The issue models that match the request.
core.List<GoogleCloudContactcenterinsightsV1IssueModel>? issueModels;
GoogleCloudContactcenterinsightsV1ListIssueModelsResponse({this.issueModels});
GoogleCloudContactcenterinsightsV1ListIssueModelsResponse.fromJson(
core.Map json_,
) : this(
issueModels: (json_['issueModels'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1IssueModel.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final issueModels = this.issueModels;
return {'issueModels': ?issueModels};
}
}
/// The response of listing issues.
class GoogleCloudContactcenterinsightsV1ListIssuesResponse {
/// The issues that match the request.
core.List<GoogleCloudContactcenterinsightsV1Issue>? issues;
GoogleCloudContactcenterinsightsV1ListIssuesResponse({this.issues});
GoogleCloudContactcenterinsightsV1ListIssuesResponse.fromJson(core.Map json_)
: this(
issues: (json_['issues'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Issue.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final issues = this.issues;
return {'issues': ?issues};
}
}
/// The response of listing notes.
class GoogleCloudContactcenterinsightsV1ListNotesResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The notes that match the request.
core.List<GoogleCloudContactcenterinsightsV1Note>? notes;
GoogleCloudContactcenterinsightsV1ListNotesResponse({
this.nextPageToken,
this.notes,
});
GoogleCloudContactcenterinsightsV1ListNotesResponse.fromJson(core.Map json_)
: this(
nextPageToken: json_['nextPageToken'] as core.String?,
notes: (json_['notes'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Note.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final notes = this.notes;
return {'nextPageToken': ?nextPageToken, 'notes': ?notes};
}
}
/// The response of listing phrase matchers.
class GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The phrase matchers that match the request.
core.List<GoogleCloudContactcenterinsightsV1PhraseMatcher>? phraseMatchers;
GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse({
this.nextPageToken,
this.phraseMatchers,
});
GoogleCloudContactcenterinsightsV1ListPhraseMatchersResponse.fromJson(
core.Map json_,
) : this(
nextPageToken: json_['nextPageToken'] as core.String?,
phraseMatchers: (json_['phraseMatchers'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1PhraseMatcher.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final phraseMatchers = this.phraseMatchers;
return {'nextPageToken': ?nextPageToken, 'phraseMatchers': ?phraseMatchers};
}
}
/// The response from a ListQaQuestionTags request.
class GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The parent resource of the questions.
core.List<GoogleCloudContactcenterinsightsV1QaQuestionTag>? qaQuestionTags;
GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse({
this.nextPageToken,
this.qaQuestionTags,
});
GoogleCloudContactcenterinsightsV1ListQaQuestionTagsResponse.fromJson(
core.Map json_,
) : this(
nextPageToken: json_['nextPageToken'] as core.String?,
qaQuestionTags: (json_['qaQuestionTags'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaQuestionTag.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final qaQuestionTags = this.qaQuestionTags;
return {'nextPageToken': ?nextPageToken, 'qaQuestionTags': ?qaQuestionTags};
}
}
/// The response from a ListQaQuestions request.
class GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The QaQuestions under the parent.
core.List<GoogleCloudContactcenterinsightsV1QaQuestion>? qaQuestions;
GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse({
this.nextPageToken,
this.qaQuestions,
});
GoogleCloudContactcenterinsightsV1ListQaQuestionsResponse.fromJson(
core.Map json_,
) : this(
nextPageToken: json_['nextPageToken'] as core.String?,
qaQuestions: (json_['qaQuestions'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1QaQuestion.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final qaQuestions = this.qaQuestions;
return {'nextPageToken': ?nextPageToken, 'qaQuestions': ?qaQuestions};
}
}
/// The response from a ListQaScorecardRevisions request.
class GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The QaScorecards under the parent.
core.List<GoogleCloudContactcenterinsightsV1QaScorecardRevision>?
qaScorecardRevisions;
GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse({
this.nextPageToken,
this.qaScorecardRevisions,
});
GoogleCloudContactcenterinsightsV1ListQaScorecardRevisionsResponse.fromJson(
core.Map json_,
) : this(
nextPageToken: json_['nextPageToken'] as core.String?,
qaScorecardRevisions: (json_['qaScorecardRevisions'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final qaScorecardRevisions = this.qaScorecardRevisions;
return {
'nextPageToken': ?nextPageToken,
'qaScorecardRevisions': ?qaScorecardRevisions,
};
}
}
/// The response from a ListQaScorecards request.
class GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The QaScorecards under the parent.
core.List<GoogleCloudContactcenterinsightsV1QaScorecard>? qaScorecards;
GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse({
this.nextPageToken,
this.qaScorecards,
});
GoogleCloudContactcenterinsightsV1ListQaScorecardsResponse.fromJson(
core.Map json_,
) : this(
nextPageToken: json_['nextPageToken'] as core.String?,
qaScorecards: (json_['qaScorecards'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final qaScorecards = this.qaScorecards;
return {'nextPageToken': ?nextPageToken, 'qaScorecards': ?qaScorecards};
}
}
/// The response of listing views.
class GoogleCloudContactcenterinsightsV1ListViewsResponse {
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
/// The views that match the request.
core.List<GoogleCloudContactcenterinsightsV1View>? views;
GoogleCloudContactcenterinsightsV1ListViewsResponse({
this.nextPageToken,
this.views,
});
GoogleCloudContactcenterinsightsV1ListViewsResponse.fromJson(core.Map json_)
: this(
nextPageToken: json_['nextPageToken'] as core.String?,
views: (json_['views'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1View.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final views = this.views;
return {'nextPageToken': ?nextPageToken, 'views': ?views};
}
}
/// A loss pattern of a virtual agent and suggested fixes.
class GoogleCloudContactcenterinsightsV1LossPattern {
/// A list of conversation IDs that match this loss pattern.
///
/// Output only.
core.List<core.String>? conversationIds;
/// A markdown description of the loss pattern.
///
/// Output only.
core.String? description;
/// The display name of the loss pattern.
///
/// Output only.
core.String? displayName;
/// A markdown of loss pattern examples.
///
/// Output only.
core.String? examples;
/// The unique identifier for the loss pattern.
///
/// Output only.
core.String? id;
/// The percentage of conversations that match this loss pattern.
///
/// Output only.
core.double? percentage;
/// A markdown description of the suggested fixes.
///
/// Output only.
core.String? suggestedFixes;
GoogleCloudContactcenterinsightsV1LossPattern({
this.conversationIds,
this.description,
this.displayName,
this.examples,
this.id,
this.percentage,
this.suggestedFixes,
});
GoogleCloudContactcenterinsightsV1LossPattern.fromJson(core.Map json_)
: this(
conversationIds: (json_['conversationIds'] as core.List?)
?.map((value) => value as core.String)
.toList(),
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
examples: json_['examples'] as core.String?,
id: json_['id'] as core.String?,
percentage: (json_['percentage'] as core.num?)?.toDouble(),
suggestedFixes: json_['suggestedFixes'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationIds = this.conversationIds;
final description = this.description;
final displayName = this.displayName;
final examples = this.examples;
final id = this.id;
final percentage = this.percentage;
final suggestedFixes = this.suggestedFixes;
return {
'conversationIds': ?conversationIds,
'description': ?description,
'displayName': ?displayName,
'examples': ?examples,
'id': ?id,
'percentage': ?percentage,
'suggestedFixes': ?suggestedFixes,
};
}
}
/// A definition for a metric to be calculated during analysis.
class GoogleCloudContactcenterinsightsV1MetricDefinition {
/// The user-visible name of the metric (e.g., "Containment Rate").
///
/// Output only.
core.String? displayName;
/// The resource name of the underlying Insights primitive (e.g., Tag or
/// QaQuestion) used to calculate this metric.
///
/// Output only.
core.String? sourceId;
GoogleCloudContactcenterinsightsV1MetricDefinition({
this.displayName,
this.sourceId,
});
GoogleCloudContactcenterinsightsV1MetricDefinition.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
sourceId: json_['sourceId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final sourceId = this.sourceId;
return {'displayName': ?displayName, 'sourceId': ?sourceId};
}
}
/// Deprecated: MetricValue is no longer used for diagnostics.
class GoogleCloudContactcenterinsightsV1MetricValue {
/// The list of conversation names that contributed to this metric (hits).
///
/// Format:
/// `projects/{project}/locations/{location}/conversations/{conversation}`
///
/// Output only.
core.List<core.String>? conversations;
/// The user-visible name of the metric (e.g., "Containment Rate").
///
/// Output only.
core.String? displayName;
/// The number of positive matches (hits) for this metric.
///
/// Output only.
core.int? hitCount;
/// Deprecated: The type of the metric.
///
/// Metrics for Outcome Based Insights derived from QueryMetrics.
///
/// Output only.
/// Possible string values are:
/// - "METRIC_TYPE_UNSPECIFIED" : Metric type is unspecified.
/// - "ESCALATION" : Escalation rate.
/// - "CONTAINMENT" : Containment rate.
core.String? metricType;
/// The resource name of the underlying Insights primitive (e.g., Tag or
/// QaQuestion) used to calculate this metric.
///
/// Output only.
core.String? sourceId;
/// The total number of items evaluated for this metric.
///
/// Output only.
core.int? totalCount;
/// The calculated value of the metric (usually a ratio or rate 0.0 - 1.0).
///
/// Output only.
core.double? value;
GoogleCloudContactcenterinsightsV1MetricValue({
this.conversations,
this.displayName,
this.hitCount,
this.metricType,
this.sourceId,
this.totalCount,
this.value,
});
GoogleCloudContactcenterinsightsV1MetricValue.fromJson(core.Map json_)
: this(
conversations: (json_['conversations'] as core.List?)
?.map((value) => value as core.String)
.toList(),
displayName: json_['displayName'] as core.String?,
hitCount: json_['hitCount'] as core.int?,
metricType: json_['metricType'] as core.String?,
sourceId: json_['sourceId'] as core.String?,
totalCount: json_['totalCount'] as core.int?,
value: (json_['value'] as core.num?)?.toDouble(),
);
core.Map<core.String, core.dynamic> toJson() {
final conversations = this.conversations;
final displayName = this.displayName;
final hitCount = this.hitCount;
final metricType = this.metricType;
final sourceId = this.sourceId;
final totalCount = this.totalCount;
final value = this.value;
return {
'conversations': ?conversations,
'displayName': ?displayName,
'hitCount': ?hitCount,
'metricType': ?metricType,
'sourceId': ?sourceId,
'totalCount': ?totalCount,
'value': ?value,
};
}
}
/// The conversation assessment note resource.
class GoogleCloudContactcenterinsightsV1Note {
/// The note is associated to the entire parent assessment.
GoogleCloudContactcenterinsightsV1NoteAssessmentNote? assessmentNote;
/// The note content.
core.String? content;
/// The note is associated with a conversation turn.
GoogleCloudContactcenterinsightsV1NoteConversationTurnNote?
conversationTurnNote;
/// The time at which the note was created.
///
/// Output only.
core.String? createTime;
/// Identifier.
///
/// The resource name of the note. Format:
/// projects/{project}/locations/{location}/conversations/{conversation}/assessments/{assessment}/notes/{note}
core.String? name;
/// The user that created the note.
///
/// Output only.
GoogleCloudContactcenterinsightsV1UserInfo? noteCreator;
/// The note is associated with a QA question in one of the conversation's
/// scorecard results.
GoogleCloudContactcenterinsightsV1NoteQaQuestionNote? qaQuestionNote;
/// The time at which the note was last updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Note({
this.assessmentNote,
this.content,
this.conversationTurnNote,
this.createTime,
this.name,
this.noteCreator,
this.qaQuestionNote,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Note.fromJson(core.Map json_)
: this(
assessmentNote: json_.containsKey('assessmentNote')
? GoogleCloudContactcenterinsightsV1NoteAssessmentNote.fromJson(
json_['assessmentNote'] as core.Map<core.String, core.dynamic>,
)
: null,
content: json_['content'] as core.String?,
conversationTurnNote: json_.containsKey('conversationTurnNote')
? GoogleCloudContactcenterinsightsV1NoteConversationTurnNote.fromJson(
json_['conversationTurnNote']
as core.Map<core.String, core.dynamic>,
)
: null,
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
noteCreator: json_.containsKey('noteCreator')
? GoogleCloudContactcenterinsightsV1UserInfo.fromJson(
json_['noteCreator'] as core.Map<core.String, core.dynamic>,
)
: null,
qaQuestionNote: json_.containsKey('qaQuestionNote')
? GoogleCloudContactcenterinsightsV1NoteQaQuestionNote.fromJson(
json_['qaQuestionNote'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final assessmentNote = this.assessmentNote;
final content = this.content;
final conversationTurnNote = this.conversationTurnNote;
final createTime = this.createTime;
final name = this.name;
final noteCreator = this.noteCreator;
final qaQuestionNote = this.qaQuestionNote;
final updateTime = this.updateTime;
return {
'assessmentNote': ?assessmentNote,
'content': ?content,
'conversationTurnNote': ?conversationTurnNote,
'createTime': ?createTime,
'name': ?name,
'noteCreator': ?noteCreator,
'qaQuestionNote': ?qaQuestionNote,
'updateTime': ?updateTime,
};
}
}
/// A note about the entire parent assessment.
typedef GoogleCloudContactcenterinsightsV1NoteAssessmentNote = $Empty;
/// A note about a conversation turn.
class GoogleCloudContactcenterinsightsV1NoteConversationTurnNote {
/// The conversation turn index that the note is associated with.
core.int? turnIndex;
GoogleCloudContactcenterinsightsV1NoteConversationTurnNote({this.turnIndex});
GoogleCloudContactcenterinsightsV1NoteConversationTurnNote.fromJson(
core.Map json_,
) : this(turnIndex: json_['turnIndex'] as core.int?);
core.Map<core.String, core.dynamic> toJson() {
final turnIndex = this.turnIndex;
return {'turnIndex': ?turnIndex};
}
}
/// A note about a QA question.
class GoogleCloudContactcenterinsightsV1NoteQaQuestionNote {
/// The question resource that the note is associated with.
core.String? qaQuestion;
GoogleCloudContactcenterinsightsV1NoteQaQuestionNote({this.qaQuestion});
GoogleCloudContactcenterinsightsV1NoteQaQuestionNote.fromJson(core.Map json_)
: this(qaQuestion: json_['qaQuestion'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final qaQuestion = this.qaQuestion;
return {'qaQuestion': ?qaQuestion};
}
}
/// Configuration for where to export or return the analysis findings.
class GoogleCloudContactcenterinsightsV1OutputConfig {
/// Export to BigQuery.
///
/// Optional.
GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination?
bigqueryDestination;
/// Export to a Cloud Storage bucket.
///
/// Optional.
GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination? gcsDestination;
/// Export directly to a Google Sheet.
///
/// Optional.
GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination?
googleSheetsDestination;
GoogleCloudContactcenterinsightsV1OutputConfig({
this.bigqueryDestination,
this.gcsDestination,
this.googleSheetsDestination,
});
GoogleCloudContactcenterinsightsV1OutputConfig.fromJson(core.Map json_)
: this(
bigqueryDestination: json_.containsKey('bigqueryDestination')
? GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination.fromJson(
json_['bigqueryDestination']
as core.Map<core.String, core.dynamic>,
)
: null,
gcsDestination: json_.containsKey('gcsDestination')
? GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination.fromJson(
json_['gcsDestination'] as core.Map<core.String, core.dynamic>,
)
: null,
googleSheetsDestination: json_.containsKey('googleSheetsDestination')
? GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination.fromJson(
json_['googleSheetsDestination']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final bigqueryDestination = this.bigqueryDestination;
final gcsDestination = this.gcsDestination;
final googleSheetsDestination = this.googleSheetsDestination;
return {
'bigqueryDestination': ?bigqueryDestination,
'gcsDestination': ?gcsDestination,
'googleSheetsDestination': ?googleSheetsDestination,
};
}
}
/// BigQuery destination configuration.
class GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination {
/// The name of the BigQuery dataset.
///
/// Required.
core.String? dataset;
/// A project ID or number.
///
/// Optional.
core.String? projectId;
/// The BigQuery table name.
///
/// Required.
core.String? table;
GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination({
this.dataset,
this.projectId,
this.table,
});
GoogleCloudContactcenterinsightsV1OutputConfigBigQueryDestination.fromJson(
core.Map json_,
) : this(
dataset: json_['dataset'] as core.String?,
projectId: json_['projectId'] as core.String?,
table: json_['table'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final dataset = this.dataset;
final projectId = this.projectId;
final table = this.table;
return {'dataset': ?dataset, 'projectId': ?projectId, 'table': ?table};
}
}
/// Cloud Storage destination configuration.
class GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination {
/// The Cloud Storage URI to export the results to.
///
/// Required.
core.String? uri;
GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination({this.uri});
GoogleCloudContactcenterinsightsV1OutputConfigGcsDestination.fromJson(
core.Map json_,
) : this(uri: json_['uri'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final uri = this.uri;
return {'uri': ?uri};
}
}
/// Google Sheets destination configuration.
class GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination {
/// The sheet name.
///
/// Optional.
core.String? sheet;
/// An existing Google Sheets ID.
///
/// Optional.
core.String? spreadsheetId;
GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination({
this.sheet,
this.spreadsheetId,
});
GoogleCloudContactcenterinsightsV1OutputConfigGoogleSheetsDestination.fromJson(
core.Map json_,
) : this(
sheet: json_['sheet'] as core.String?,
spreadsheetId: json_['spreadsheetId'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final sheet = this.sheet;
final spreadsheetId = this.spreadsheetId;
return {'sheet': ?sheet, 'spreadsheetId': ?spreadsheetId};
}
}
/// The data for a matched phrase matcher.
///
/// Represents information identifying a phrase matcher for a given match.
class GoogleCloudContactcenterinsightsV1PhraseMatchData {
/// The human-readable name of the phrase matcher.
core.String? displayName;
/// The unique identifier (the resource name) of the phrase matcher.
core.String? phraseMatcher;
GoogleCloudContactcenterinsightsV1PhraseMatchData({
this.displayName,
this.phraseMatcher,
});
GoogleCloudContactcenterinsightsV1PhraseMatchData.fromJson(core.Map json_)
: this(
displayName: json_['displayName'] as core.String?,
phraseMatcher: json_['phraseMatcher'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final displayName = this.displayName;
final phraseMatcher = this.phraseMatcher;
return {'displayName': ?displayName, 'phraseMatcher': ?phraseMatcher};
}
}
/// The data for a phrase match rule.
class GoogleCloudContactcenterinsightsV1PhraseMatchRule {
/// Provides additional information about the rule that specifies how to apply
/// the rule.
GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfig? config;
/// Specifies whether the phrase must be missing from the transcript segment
/// or present in the transcript segment.
core.bool? negated;
/// The phrase to be matched.
///
/// Required.
core.String? query;
GoogleCloudContactcenterinsightsV1PhraseMatchRule({
this.config,
this.negated,
this.query,
});
GoogleCloudContactcenterinsightsV1PhraseMatchRule.fromJson(core.Map json_)
: this(
config: json_.containsKey('config')
? GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfig.fromJson(
json_['config'] as core.Map<core.String, core.dynamic>,
)
: null,
negated: json_['negated'] as core.bool?,
query: json_['query'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final config = this.config;
final negated = this.negated;
final query = this.query;
return {'config': ?config, 'negated': ?negated, 'query': ?query};
}
}
/// Configuration information of a phrase match rule.
class GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfig {
/// The configuration for the exact match rule.
GoogleCloudContactcenterinsightsV1ExactMatchConfig? exactMatchConfig;
/// The configuration for the regex match rule.
GoogleCloudContactcenterinsightsV1RegexMatchConfig? regexMatchConfig;
GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfig({
this.exactMatchConfig,
this.regexMatchConfig,
});
GoogleCloudContactcenterinsightsV1PhraseMatchRuleConfig.fromJson(
core.Map json_,
) : this(
exactMatchConfig: json_.containsKey('exactMatchConfig')
? GoogleCloudContactcenterinsightsV1ExactMatchConfig.fromJson(
json_['exactMatchConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
regexMatchConfig: json_.containsKey('regexMatchConfig')
? GoogleCloudContactcenterinsightsV1RegexMatchConfig.fromJson(
json_['regexMatchConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final exactMatchConfig = this.exactMatchConfig;
final regexMatchConfig = this.regexMatchConfig;
return {
'exactMatchConfig': ?exactMatchConfig,
'regexMatchConfig': ?regexMatchConfig,
};
}
}
/// A message representing a rule in the phrase matcher.
class GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup {
/// A list of phrase match rules that are included in this group.
core.List<GoogleCloudContactcenterinsightsV1PhraseMatchRule>?
phraseMatchRules;
/// The type of this phrase match rule group.
///
/// Required.
/// Possible string values are:
/// - "PHRASE_MATCH_RULE_GROUP_TYPE_UNSPECIFIED" : Unspecified.
/// - "ALL_OF" : Must meet all phrase match rules or there is no match.
/// - "ANY_OF" : If any of the phrase match rules are met, there is a match.
core.String? type;
GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup({
this.phraseMatchRules,
this.type,
});
GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup.fromJson(
core.Map json_,
) : this(
phraseMatchRules: (json_['phraseMatchRules'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1PhraseMatchRule.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
type: json_['type'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final phraseMatchRules = this.phraseMatchRules;
final type = this.type;
return {'phraseMatchRules': ?phraseMatchRules, 'type': ?type};
}
}
/// The phrase matcher resource.
class GoogleCloudContactcenterinsightsV1PhraseMatcher {
/// The most recent time at which the activation status was updated.
///
/// Output only.
core.String? activationUpdateTime;
/// Applies the phrase matcher only when it is active.
core.bool? active;
/// The human-readable name of the phrase matcher.
core.String? displayName;
/// The resource name of the phrase matcher.
///
/// Format:
/// projects/{project}/locations/{location}/phraseMatchers/{phrase_matcher}
core.String? name;
/// A list of phase match rule groups that are included in this matcher.
core.List<GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup>?
phraseMatchRuleGroups;
/// The timestamp of when the revision was created.
///
/// It is also the create time when a new matcher is added.
///
/// Output only.
core.String? revisionCreateTime;
/// The revision ID of the phrase matcher.
///
/// A new revision is committed whenever the matcher is changed, except when
/// it is activated or deactivated. A server generated random ID will be used.
/// Example: locations/global/phraseMatchers/my-first-matcher@1234567
///
/// Output only. Immutable.
core.String? revisionId;
/// The role whose utterances the phrase matcher should be matched against.
///
/// If the role is ROLE_UNSPECIFIED it will be matched against any utterances
/// in the transcript.
/// Possible string values are:
/// - "ROLE_UNSPECIFIED" : Participant's role is not set.
/// - "HUMAN_AGENT" : Participant is a human agent.
/// - "AUTOMATED_AGENT" : Participant is an automated agent.
/// - "END_USER" : Participant is an end user who conversed with the contact
/// center.
/// - "ANY_AGENT" : Participant is either a human or automated agent.
core.String? roleMatch;
/// The type of this phrase matcher.
///
/// Required.
/// Possible string values are:
/// - "PHRASE_MATCHER_TYPE_UNSPECIFIED" : Unspecified.
/// - "ALL_OF" : Must meet all phrase match rule groups or there is no match.
/// - "ANY_OF" : If any of the phrase match rule groups are met, there is a
/// match.
core.String? type;
/// The most recent time at which the phrase matcher was updated.
///
/// Output only.
core.String? updateTime;
/// The customized version tag to use for the phrase matcher.
///
/// If not specified, it will default to `revision_id`.
core.String? versionTag;
GoogleCloudContactcenterinsightsV1PhraseMatcher({
this.activationUpdateTime,
this.active,
this.displayName,
this.name,
this.phraseMatchRuleGroups,
this.revisionCreateTime,
this.revisionId,
this.roleMatch,
this.type,
this.updateTime,
this.versionTag,
});
GoogleCloudContactcenterinsightsV1PhraseMatcher.fromJson(core.Map json_)
: this(
activationUpdateTime: json_['activationUpdateTime'] as core.String?,
active: json_['active'] as core.bool?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
phraseMatchRuleGroups: (json_['phraseMatchRuleGroups'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1PhraseMatchRuleGroup.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
revisionCreateTime: json_['revisionCreateTime'] as core.String?,
revisionId: json_['revisionId'] as core.String?,
roleMatch: json_['roleMatch'] as core.String?,
type: json_['type'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
versionTag: json_['versionTag'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final activationUpdateTime = this.activationUpdateTime;
final active = this.active;
final displayName = this.displayName;
final name = this.name;
final phraseMatchRuleGroups = this.phraseMatchRuleGroups;
final revisionCreateTime = this.revisionCreateTime;
final revisionId = this.revisionId;
final roleMatch = this.roleMatch;
final type = this.type;
final updateTime = this.updateTime;
final versionTag = this.versionTag;
return {
'activationUpdateTime': ?activationUpdateTime,
'active': ?active,
'displayName': ?displayName,
'name': ?name,
'phraseMatchRuleGroups': ?phraseMatchRuleGroups,
'revisionCreateTime': ?revisionCreateTime,
'revisionId': ?revisionId,
'roleMatch': ?roleMatch,
'type': ?type,
'updateTime': ?updateTime,
'versionTag': ?versionTag,
};
}
}
/// The message to publish an assessment.
///
/// Draft and appealed assessments can be published. Publishing simply changes
/// the state of the assessment to published, allowing the console and
/// authorized views to filter on the state.
typedef GoogleCloudContactcenterinsightsV1PublishAssessmentRequest = $Empty;
/// An answer to a QaQuestion.
class GoogleCloudContactcenterinsightsV1QaAnswer {
/// Lists all answer sources containing one or more answer values of a
/// specific source type, e.g., all system-generated answer sources, or all
/// manual edit answer sources.
core.List<GoogleCloudContactcenterinsightsV1QaAnswerAnswerSource>?
answerSources;
/// The answer value from this source.
///
/// This field is populated by default, unless the question has a selection
/// strategy configured to return multiple answer values, in which case
/// `answer_values` will be populated instead.
GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue? answerValue;
/// The conversation the answer applies to.
core.String? conversation;
/// The QaQuestion answered by this answer.
core.String? qaQuestion;
/// Question text.
///
/// E.g., "Did the agent greet the customer?"
core.String? questionBody;
/// User-defined list of arbitrary tags.
///
/// Matches the value from QaScorecard.ScorecardQuestion.tags. Used for
/// grouping/organization and for weighting the score of each answer.
core.List<core.String>? tags;
GoogleCloudContactcenterinsightsV1QaAnswer({
this.answerSources,
this.answerValue,
this.conversation,
this.qaQuestion,
this.questionBody,
this.tags,
});
GoogleCloudContactcenterinsightsV1QaAnswer.fromJson(core.Map json_)
: this(
answerSources: (json_['answerSources'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaAnswerAnswerSource.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
answerValue: json_.containsKey('answerValue')
? GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue.fromJson(
json_['answerValue'] as core.Map<core.String, core.dynamic>,
)
: null,
conversation: json_['conversation'] as core.String?,
qaQuestion: json_['qaQuestion'] as core.String?,
questionBody: json_['questionBody'] as core.String?,
tags: (json_['tags'] as core.List?)
?.map((value) => value as core.String)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final answerSources = this.answerSources;
final answerValue = this.answerValue;
final conversation = this.conversation;
final qaQuestion = this.qaQuestion;
final questionBody = this.questionBody;
final tags = this.tags;
return {
'answerSources': ?answerSources,
'answerValue': ?answerValue,
'conversation': ?conversation,
'qaQuestion': ?qaQuestion,
'questionBody': ?questionBody,
'tags': ?tags,
};
}
}
/// A question may have multiple answers from varying sources, one of which
/// becomes the "main" answer above.
///
/// AnswerSource represents each individual answer.
class GoogleCloudContactcenterinsightsV1QaAnswerAnswerSource {
/// The answer value from this source.
///
/// This field is populated by default, unless the question has a selection
/// strategy configured to return multiple answer values, in which case
/// `answer_values` will be populated instead.
GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue? answerValue;
/// What created the answer.
/// Possible string values are:
/// - "SOURCE_TYPE_UNSPECIFIED" : Source type is unspecified.
/// - "SYSTEM_GENERATED" : Answer was system-generated; created during an
/// Insights analysis.
/// - "MANUAL_EDIT" : Answer was created by a human via manual edit.
core.String? sourceType;
GoogleCloudContactcenterinsightsV1QaAnswerAnswerSource({
this.answerValue,
this.sourceType,
});
GoogleCloudContactcenterinsightsV1QaAnswerAnswerSource.fromJson(
core.Map json_,
) : this(
answerValue: json_.containsKey('answerValue')
? GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue.fromJson(
json_['answerValue'] as core.Map<core.String, core.dynamic>,
)
: null,
sourceType: json_['sourceType'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final answerValue = this.answerValue;
final sourceType = this.sourceType;
return {'answerValue': ?answerValue, 'sourceType': ?sourceType};
}
}
/// Message for holding the value of a QaAnswer.
///
/// QaQuestion.AnswerChoice defines the possible answer values for a question.
class GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue {
/// Boolean value.
core.bool? boolValue;
/// A short string used as an identifier.
///
/// Matches the value used in QaQuestion.AnswerChoice.key.
core.String? key;
/// A value of "Not Applicable (N/A)".
///
/// Should only ever be `true`.
core.bool? naValue;
/// Normalized score of the questions.
///
/// Calculated as score / potential_score.
///
/// Output only.
core.double? normalizedScore;
/// Numerical value.
core.double? numValue;
/// The maximum potential score of the question.
///
/// Output only.
core.double? potentialScore;
/// Numerical score of the answer.
///
/// Output only.
core.double? score;
/// A value of "Skip".
///
/// If provided, this field may only be set to `true`. If a question receives
/// this answer, it will be excluded from any score calculations. This would
/// mean that the question was not evaluated.
///
/// Output only.
core.bool? skipValue;
/// String value.
core.String? strValue;
GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue({
this.boolValue,
this.key,
this.naValue,
this.normalizedScore,
this.numValue,
this.potentialScore,
this.score,
this.skipValue,
this.strValue,
});
GoogleCloudContactcenterinsightsV1QaAnswerAnswerValue.fromJson(core.Map json_)
: this(
boolValue: json_['boolValue'] as core.bool?,
key: json_['key'] as core.String?,
naValue: json_['naValue'] as core.bool?,
normalizedScore: (json_['normalizedScore'] as core.num?)?.toDouble(),
numValue: (json_['numValue'] as core.num?)?.toDouble(),
potentialScore: (json_['potentialScore'] as core.num?)?.toDouble(),
score: (json_['score'] as core.num?)?.toDouble(),
skipValue: json_['skipValue'] as core.bool?,
strValue: json_['strValue'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final boolValue = this.boolValue;
final key = this.key;
final naValue = this.naValue;
final normalizedScore = this.normalizedScore;
final numValue = this.numValue;
final potentialScore = this.potentialScore;
final score = this.score;
final skipValue = this.skipValue;
final strValue = this.strValue;
return {
'boolValue': ?boolValue,
'key': ?key,
'naValue': ?naValue,
'normalizedScore': ?normalizedScore,
'numValue': ?numValue,
'potentialScore': ?potentialScore,
'score': ?score,
'skipValue': ?skipValue,
'strValue': ?strValue,
};
}
}
/// A single question to be scored by the Insights QA feature.
class GoogleCloudContactcenterinsightsV1QaQuestion {
/// Short, descriptive string, used in the UI where it's not practical to
/// display the full question body.
///
/// E.g., "Greeting".
core.String? abbreviation;
/// A list of valid answers to the question, which the LLM must choose from.
core.List<GoogleCloudContactcenterinsightsV1QaQuestionAnswerChoice>?
answerChoices;
/// Instructions describing how to determine the answer.
core.String? answerInstructions;
/// The time at which this question was created.
///
/// Output only.
core.String? createTime;
/// Metrics of the underlying tuned LLM over a holdout/test set while fine
/// tuning the underlying LLM for the given question.
///
/// This field will only be populated if and only if the question is part of a
/// scorecard revision that has been tuned.
GoogleCloudContactcenterinsightsV1QaQuestionMetrics? metrics;
/// Identifier.
///
/// The resource name of the question. Format:
/// projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}/revisions/{revision}/qaQuestions/{qa_question}
core.String? name;
/// Defines the order of the question within its parent scorecard revision.
core.int? order;
/// The configuration of the predefined question.
///
/// This field will only be set if the Question Type is predefined.
GoogleCloudContactcenterinsightsV1QaQuestionPredefinedQuestionConfig?
predefinedQuestionConfig;
/// Options for configuring the data used to generate the QA question.
GoogleCloudContactcenterinsightsV1QaQuestionQaQuestionDataOptions?
qaQuestionDataOptions;
/// Question text.
///
/// E.g., "Did the agent greet the customer?"
core.String? questionBody;
/// The type of question.
/// Possible string values are:
/// - "QA_QUESTION_TYPE_UNSPECIFIED" : The type of the question is
/// unspecified.
/// - "CUSTOMIZABLE" : The default question type. The question is fully
/// customizable by the user.
/// - "PREDEFINED" : The question type is using a predefined model provided by
/// CCAI teams. Users are not allowed to edit the question_body,
/// answer_choices, upload feedback labels for the question nor fine-tune the
/// question. However, users may edit other fields like question tags,
/// question order, etc.
core.String? questionType;
/// Questions are tagged for categorization and scoring.
///
/// Tags can either be: - Default Tags: These are predefined categories. They
/// are identified by their string value (e.g., "BUSINESS", "COMPLIANCE", and
/// "CUSTOMER"). - Custom Tags: These are user-defined categories. They are
/// identified by their full resource name (e.g.,
/// projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}).
/// Both default and custom tags are used to group questions and to influence
/// the scoring of each question.
core.List<core.String>? tags;
/// Metadata about the tuning operation for the question.This field will only
/// be populated if and only if the question is part of a scorecard revision
/// that has been tuned.
GoogleCloudContactcenterinsightsV1QaQuestionTuningMetadata? tuningMetadata;
/// The most recent time at which the question was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1QaQuestion({
this.abbreviation,
this.answerChoices,
this.answerInstructions,
this.createTime,
this.metrics,
this.name,
this.order,
this.predefinedQuestionConfig,
this.qaQuestionDataOptions,
this.questionBody,
this.questionType,
this.tags,
this.tuningMetadata,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1QaQuestion.fromJson(core.Map json_)
: this(
abbreviation: json_['abbreviation'] as core.String?,
answerChoices: (json_['answerChoices'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaQuestionAnswerChoice.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
answerInstructions: json_['answerInstructions'] as core.String?,
createTime: json_['createTime'] as core.String?,
metrics: json_.containsKey('metrics')
? GoogleCloudContactcenterinsightsV1QaQuestionMetrics.fromJson(
json_['metrics'] as core.Map<core.String, core.dynamic>,
)
: null,
name: json_['name'] as core.String?,
order: json_['order'] as core.int?,
predefinedQuestionConfig: json_.containsKey('predefinedQuestionConfig')
? GoogleCloudContactcenterinsightsV1QaQuestionPredefinedQuestionConfig.fromJson(
json_['predefinedQuestionConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
qaQuestionDataOptions: json_.containsKey('qaQuestionDataOptions')
? GoogleCloudContactcenterinsightsV1QaQuestionQaQuestionDataOptions.fromJson(
json_['qaQuestionDataOptions']
as core.Map<core.String, core.dynamic>,
)
: null,
questionBody: json_['questionBody'] as core.String?,
questionType: json_['questionType'] as core.String?,
tags: (json_['tags'] as core.List?)
?.map((value) => value as core.String)
.toList(),
tuningMetadata: json_.containsKey('tuningMetadata')
? GoogleCloudContactcenterinsightsV1QaQuestionTuningMetadata.fromJson(
json_['tuningMetadata'] as core.Map<core.String, core.dynamic>,
)
: null,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final abbreviation = this.abbreviation;
final answerChoices = this.answerChoices;
final answerInstructions = this.answerInstructions;
final createTime = this.createTime;
final metrics = this.metrics;
final name = this.name;
final order = this.order;
final predefinedQuestionConfig = this.predefinedQuestionConfig;
final qaQuestionDataOptions = this.qaQuestionDataOptions;
final questionBody = this.questionBody;
final questionType = this.questionType;
final tags = this.tags;
final tuningMetadata = this.tuningMetadata;
final updateTime = this.updateTime;
return {
'abbreviation': ?abbreviation,
'answerChoices': ?answerChoices,
'answerInstructions': ?answerInstructions,
'createTime': ?createTime,
'metrics': ?metrics,
'name': ?name,
'order': ?order,
'predefinedQuestionConfig': ?predefinedQuestionConfig,
'qaQuestionDataOptions': ?qaQuestionDataOptions,
'questionBody': ?questionBody,
'questionType': ?questionType,
'tags': ?tags,
'tuningMetadata': ?tuningMetadata,
'updateTime': ?updateTime,
};
}
}
/// Message representing a possible answer to the question.
class GoogleCloudContactcenterinsightsV1QaQuestionAnswerChoice {
/// Boolean value.
core.bool? boolValue;
/// A short string used as an identifier.
core.String? key;
/// A value of "Not Applicable (N/A)".
///
/// If provided, this field may only be set to `true`. If a question receives
/// this answer, it will be excluded from any score calculations.
core.bool? naValue;
/// Numerical value.
core.double? numValue;
/// Numerical score of the answer, used for generating the overall score of a
/// QaScorecardResult.
///
/// If the answer uses na_value, this field is unused.
core.double? score;
/// String value.
core.String? strValue;
GoogleCloudContactcenterinsightsV1QaQuestionAnswerChoice({
this.boolValue,
this.key,
this.naValue,
this.numValue,
this.score,
this.strValue,
});
GoogleCloudContactcenterinsightsV1QaQuestionAnswerChoice.fromJson(
core.Map json_,
) : this(
boolValue: json_['boolValue'] as core.bool?,
key: json_['key'] as core.String?,
naValue: json_['naValue'] as core.bool?,
numValue: (json_['numValue'] as core.num?)?.toDouble(),
score: (json_['score'] as core.num?)?.toDouble(),
strValue: json_['strValue'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final boolValue = this.boolValue;
final key = this.key;
final naValue = this.naValue;
final numValue = this.numValue;
final score = this.score;
final strValue = this.strValue;
return {
'boolValue': ?boolValue,
'key': ?key,
'naValue': ?naValue,
'numValue': ?numValue,
'score': ?score,
'strValue': ?strValue,
};
}
}
/// A wrapper representing metrics calculated against a test-set on a LLM that
/// was fine tuned for this question.
class GoogleCloudContactcenterinsightsV1QaQuestionMetrics {
/// Accuracy of the model.
///
/// Measures the percentage of correct answers the model gave on the test set.
///
/// Output only.
core.double? accuracy;
GoogleCloudContactcenterinsightsV1QaQuestionMetrics({this.accuracy});
GoogleCloudContactcenterinsightsV1QaQuestionMetrics.fromJson(core.Map json_)
: this(accuracy: (json_['accuracy'] as core.num?)?.toDouble());
core.Map<core.String, core.dynamic> toJson() {
final accuracy = this.accuracy;
return {'accuracy': ?accuracy};
}
}
/// Configuration for a predefined question.
///
/// This field will only be set if the Question Type is predefined.
class GoogleCloudContactcenterinsightsV1QaQuestionPredefinedQuestionConfig {
/// The type of the predefined question.
/// Possible string values are:
/// - "PREDEFINED_QUESTION_TYPE_UNSPECIFIED" : The type of the predefined
/// question is unspecified.
/// - "CONVERSATION_OUTCOME" : A prebuilt classifier classfying the outcome of
/// the conversation. For example, if the customer issue mentioned in a
/// conversation has been resolved or not.
/// - "CONVERSATION_OUTCOME_ESCALATION_INITIATOR_ROLE" : A prebuilt classifier
/// classfying the initiator of the conversation escalation. For example, if
/// it was initiated by the customer or the agent.
core.String? type;
GoogleCloudContactcenterinsightsV1QaQuestionPredefinedQuestionConfig({
this.type,
});
GoogleCloudContactcenterinsightsV1QaQuestionPredefinedQuestionConfig.fromJson(
core.Map json_,
) : this(type: json_['type'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final type = this.type;
return {'type': ?type};
}
}
/// Options for configuring the data used to generate the QA question.
class GoogleCloudContactcenterinsightsV1QaQuestionQaQuestionDataOptions {
/// Options for configuring the conversation data used to generate the QA
/// question.
GoogleCloudContactcenterinsightsV1ConversationDataOptions?
conversationDataOptions;
GoogleCloudContactcenterinsightsV1QaQuestionQaQuestionDataOptions({
this.conversationDataOptions,
});
GoogleCloudContactcenterinsightsV1QaQuestionQaQuestionDataOptions.fromJson(
core.Map json_,
) : this(
conversationDataOptions: json_.containsKey('conversationDataOptions')
? GoogleCloudContactcenterinsightsV1ConversationDataOptions.fromJson(
json_['conversationDataOptions']
as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationDataOptions = this.conversationDataOptions;
return {'conversationDataOptions': ?conversationDataOptions};
}
}
/// A tag is a resource which aims to categorize a set of questions across
/// multiple scorecards, e.g., "Customer Satisfaction","Billing", etc.
class GoogleCloudContactcenterinsightsV1QaQuestionTag {
/// The time at which the question tag was created.
///
/// Output only.
core.String? createTime;
/// A user-specified display name for the tag.
///
/// Required.
core.String? displayName;
/// Identifier.
///
/// Resource name for the QaQuestionTag Format
/// projects/{project}/locations/{location}/qaQuestionTags/{qa_question_tag}
/// In the above format, the last segment, i.e., qa_question_tag, is a
/// server-generated ID corresponding to the tag resource.
core.String? name;
/// The list of Scorecard Question IDs that the tag applies to.
///
/// Each QaQuestionId is represented as a full resource name containing the
/// Question ID. Lastly, Since a tag may not necessarily be referenced by any
/// Scorecard Questions, we treat this field as optional.
///
/// Optional.
core.List<core.String>? qaQuestionIds;
/// The most recent time at which the question tag was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1QaQuestionTag({
this.createTime,
this.displayName,
this.name,
this.qaQuestionIds,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1QaQuestionTag.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
qaQuestionIds: (json_['qaQuestionIds'] as core.List?)
?.map((value) => value as core.String)
.toList(),
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final qaQuestionIds = this.qaQuestionIds;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'qaQuestionIds': ?qaQuestionIds,
'updateTime': ?updateTime,
};
}
}
/// Metadata about the tuning operation for the question.
///
/// Will only be set if a scorecard containing this question has been tuned.
class GoogleCloudContactcenterinsightsV1QaQuestionTuningMetadata {
/// A list of any applicable data validation warnings about the question's
/// feedback labels.
core.List<core.String>? datasetValidationWarnings;
/// Total number of valid labels provided for the question at the time of
/// tuining.
core.String? totalValidLabelCount;
/// Error status of the tuning operation for the question.
///
/// Will only be set if the tuning operation failed.
core.String? tuningError;
GoogleCloudContactcenterinsightsV1QaQuestionTuningMetadata({
this.datasetValidationWarnings,
this.totalValidLabelCount,
this.tuningError,
});
GoogleCloudContactcenterinsightsV1QaQuestionTuningMetadata.fromJson(
core.Map json_,
) : this(
datasetValidationWarnings:
(json_['datasetValidationWarnings'] as core.List?)
?.map((value) => value as core.String)
.toList(),
totalValidLabelCount: json_['totalValidLabelCount'] as core.String?,
tuningError: json_['tuningError'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final datasetValidationWarnings = this.datasetValidationWarnings;
final totalValidLabelCount = this.totalValidLabelCount;
final tuningError = this.tuningError;
return {
'datasetValidationWarnings': ?datasetValidationWarnings,
'totalValidLabelCount': ?totalValidLabelCount,
'tuningError': ?tuningError,
};
}
}
/// A QaScorecard represents a collection of questions to be scored during
/// analysis.
class GoogleCloudContactcenterinsightsV1QaScorecard {
/// The time at which this scorecard was created.
///
/// Output only.
core.String? createTime;
/// A text description explaining the intent of the scorecard.
core.String? description;
/// The user-specified display name of the scorecard.
core.String? displayName;
/// Whether the scorecard is the default one for the project.
///
/// A default scorecard cannot be deleted and will always appear first in
/// scorecard selector.
core.bool? isDefault;
/// Identifier.
///
/// The scorecard name. Format:
/// projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}
core.String? name;
/// The source of the scorecard.
///
/// Output only.
/// Possible string values are:
/// - "QA_SCORECARD_SOURCE_UNSPECIFIED" : The source of the scorecard is
/// unspecified. Default to QA_SCORECARD_SOURCE_CUSTOMER_DEFINED.
/// - "QA_SCORECARD_SOURCE_CUSTOMER_DEFINED" : The scorecard is a custom
/// scorecard created by the user.
/// - "QA_SCORECARD_SOURCE_DISCOVERY_ENGINE" : The scorecard is a scorecard
/// created through discovery engine deployment.
core.String? source;
/// The most recent time at which the scorecard was updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1QaScorecard({
this.createTime,
this.description,
this.displayName,
this.isDefault,
this.name,
this.source,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
description: json_['description'] as core.String?,
displayName: json_['displayName'] as core.String?,
isDefault: json_['isDefault'] as core.bool?,
name: json_['name'] as core.String?,
source: json_['source'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final description = this.description;
final displayName = this.displayName;
final isDefault = this.isDefault;
final name = this.name;
final source = this.source;
final updateTime = this.updateTime;
return {
'createTime': ?createTime,
'description': ?description,
'displayName': ?displayName,
'isDefault': ?isDefault,
'name': ?name,
'source': ?source,
'updateTime': ?updateTime,
};
}
}
/// The results of scoring a single conversation against a QaScorecard.
///
/// Contains a collection of QaAnswers and aggregate score.
class GoogleCloudContactcenterinsightsV1QaScorecardResult {
/// ID of the agent that handled the conversation.
core.String? agentId;
/// The conversation scored by this result.
core.String? conversation;
/// The timestamp that the revision was created.
///
/// Output only.
core.String? createTime;
/// Identifier.
///
/// The name of the scorecard result. Format:
/// projects/{project}/locations/{location}/qaScorecardResults/{qa_scorecard_result}
core.String? name;
/// The normalized score, which is the score divided by the potential score.
///
/// Any manual edits are included if they exist.
core.double? normalizedScore;
/// The maximum potential overall score of the scorecard.
///
/// Any questions answered using `na_value` are excluded from this
/// calculation.
core.double? potentialScore;
/// Set of QaAnswers represented in the result.
core.List<GoogleCloudContactcenterinsightsV1QaAnswer>? qaAnswers;
/// The QaScorecardRevision scored by this result.
core.String? qaScorecardRevision;
/// Collection of tags and their scores.
core.List<GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult>?
qaTagResults;
/// The overall numerical score of the result, incorporating any manual edits
/// if they exist.
core.double? score;
/// List of all individual score sets.
core.List<GoogleCloudContactcenterinsightsV1QaScorecardResultScoreSource>?
scoreSources;
GoogleCloudContactcenterinsightsV1QaScorecardResult({
this.agentId,
this.conversation,
this.createTime,
this.name,
this.normalizedScore,
this.potentialScore,
this.qaAnswers,
this.qaScorecardRevision,
this.qaTagResults,
this.score,
this.scoreSources,
});
GoogleCloudContactcenterinsightsV1QaScorecardResult.fromJson(core.Map json_)
: this(
agentId: json_['agentId'] as core.String?,
conversation: json_['conversation'] as core.String?,
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
normalizedScore: (json_['normalizedScore'] as core.num?)?.toDouble(),
potentialScore: (json_['potentialScore'] as core.num?)?.toDouble(),
qaAnswers: (json_['qaAnswers'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1QaAnswer.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
qaScorecardRevision: json_['qaScorecardRevision'] as core.String?,
qaTagResults: (json_['qaTagResults'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
score: (json_['score'] as core.num?)?.toDouble(),
scoreSources: (json_['scoreSources'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaScorecardResultScoreSource.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final agentId = this.agentId;
final conversation = this.conversation;
final createTime = this.createTime;
final name = this.name;
final normalizedScore = this.normalizedScore;
final potentialScore = this.potentialScore;
final qaAnswers = this.qaAnswers;
final qaScorecardRevision = this.qaScorecardRevision;
final qaTagResults = this.qaTagResults;
final score = this.score;
final scoreSources = this.scoreSources;
return {
'agentId': ?agentId,
'conversation': ?conversation,
'createTime': ?createTime,
'name': ?name,
'normalizedScore': ?normalizedScore,
'potentialScore': ?potentialScore,
'qaAnswers': ?qaAnswers,
'qaScorecardRevision': ?qaScorecardRevision,
'qaTagResults': ?qaTagResults,
'score': ?score,
'scoreSources': ?scoreSources,
};
}
}
/// Tags and their corresponding results.
class GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult {
/// The normalized score the tag applies to.
core.double? normalizedScore;
/// The potential score the tag applies to.
core.double? potentialScore;
/// The score the tag applies to.
core.double? score;
/// The tag the score applies to.
core.String? tag;
GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult({
this.normalizedScore,
this.potentialScore,
this.score,
this.tag,
});
GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult.fromJson(
core.Map json_,
) : this(
normalizedScore: (json_['normalizedScore'] as core.num?)?.toDouble(),
potentialScore: (json_['potentialScore'] as core.num?)?.toDouble(),
score: (json_['score'] as core.num?)?.toDouble(),
tag: json_['tag'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final normalizedScore = this.normalizedScore;
final potentialScore = this.potentialScore;
final score = this.score;
final tag = this.tag;
return {
'normalizedScore': ?normalizedScore,
'potentialScore': ?potentialScore,
'score': ?score,
'tag': ?tag,
};
}
}
/// A scorecard result may have multiple sets of scores from varying sources,
/// one of which becomes the "main" answer above.
///
/// A ScoreSource represents each individual set of scores.
class GoogleCloudContactcenterinsightsV1QaScorecardResultScoreSource {
/// The normalized score, which is the score divided by the potential score.
core.double? normalizedScore;
/// The maximum potential overall score of the scorecard.
///
/// Any questions answered using `na_value` are excluded from this
/// calculation.
core.double? potentialScore;
/// Collection of tags and their scores.
core.List<GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult>?
qaTagResults;
/// The overall numerical score of the result.
core.double? score;
/// What created the score.
/// Possible string values are:
/// - "SOURCE_TYPE_UNSPECIFIED" : Source type is unspecified.
/// - "SYSTEM_GENERATED_ONLY" : Score is derived only from system-generated
/// answers.
/// - "INCLUDES_MANUAL_EDITS" : Score is derived from both system-generated
/// answers, and includes any manual edits if they exist.
core.String? sourceType;
GoogleCloudContactcenterinsightsV1QaScorecardResultScoreSource({
this.normalizedScore,
this.potentialScore,
this.qaTagResults,
this.score,
this.sourceType,
});
GoogleCloudContactcenterinsightsV1QaScorecardResultScoreSource.fromJson(
core.Map json_,
) : this(
normalizedScore: (json_['normalizedScore'] as core.num?)?.toDouble(),
potentialScore: (json_['potentialScore'] as core.num?)?.toDouble(),
qaTagResults: (json_['qaTagResults'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1QaScorecardResultQaTagResult.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
score: (json_['score'] as core.num?)?.toDouble(),
sourceType: json_['sourceType'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final normalizedScore = this.normalizedScore;
final potentialScore = this.potentialScore;
final qaTagResults = this.qaTagResults;
final score = this.score;
final sourceType = this.sourceType;
return {
'normalizedScore': ?normalizedScore,
'potentialScore': ?potentialScore,
'qaTagResults': ?qaTagResults,
'score': ?score,
'sourceType': ?sourceType,
};
}
}
/// A revision of a QaScorecard.
///
/// Modifying published scorecard fields would invalidate existing scorecard
/// results — the questions may have changed, or the score weighting will make
/// existing scores impossible to understand. So changes must create a new
/// revision, rather than modifying the existing resource.
class GoogleCloudContactcenterinsightsV1QaScorecardRevision {
/// Alternative IDs for this revision of the scorecard, e.g., `latest`.
///
/// Output only.
core.List<core.String>? alternateIds;
/// The timestamp that the revision was created.
///
/// Output only.
core.String? createTime;
/// Identifier.
///
/// The name of the scorecard revision. Format:
/// projects/{project}/locations/{location}/qaScorecards/{qa_scorecard}/revisions/{revision}
core.String? name;
/// The snapshot of the scorecard at the time of this revision's creation.
GoogleCloudContactcenterinsightsV1QaScorecard? snapshot;
/// State of the scorecard revision, indicating whether it's ready to be used
/// in analysis.
///
/// Output only.
/// Possible string values are:
/// - "STATE_UNSPECIFIED" : Unspecified.
/// - "EDITABLE" : The scorecard revision can be edited.
/// - "TRAINING" : Scorecard model training is in progress.
/// - "TRAINING_FAILED" : Scorecard revision model training failed.
/// - "READY" : The revision can be used in analysis.
/// - "DELETING" : Scorecard is being deleted.
/// - "TRAINING_CANCELLED" : Scorecard model training was explicitly cancelled
/// by the user.
core.String? state;
GoogleCloudContactcenterinsightsV1QaScorecardRevision({
this.alternateIds,
this.createTime,
this.name,
this.snapshot,
this.state,
});
GoogleCloudContactcenterinsightsV1QaScorecardRevision.fromJson(core.Map json_)
: this(
alternateIds: (json_['alternateIds'] as core.List?)
?.map((value) => value as core.String)
.toList(),
createTime: json_['createTime'] as core.String?,
name: json_['name'] as core.String?,
snapshot: json_.containsKey('snapshot')
? GoogleCloudContactcenterinsightsV1QaScorecard.fromJson(
json_['snapshot'] as core.Map<core.String, core.dynamic>,
)
: null,
state: json_['state'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final alternateIds = this.alternateIds;
final createTime = this.createTime;
final name = this.name;
final snapshot = this.snapshot;
final state = this.state;
return {
'alternateIds': ?alternateIds,
'createTime': ?createTime,
'name': ?name,
'snapshot': ?snapshot,
'state': ?state,
};
}
}
/// A time window for querying conversations.
class GoogleCloudContactcenterinsightsV1QueryInterval {
/// The end time of the time window.
///
/// Required.
core.String? endTime;
/// The start time of the time window.
///
/// Required.
core.String? startTime;
GoogleCloudContactcenterinsightsV1QueryInterval({
this.endTime,
this.startTime,
});
GoogleCloudContactcenterinsightsV1QueryInterval.fromJson(core.Map json_)
: this(
endTime: json_['endTime'] as core.String?,
startTime: json_['startTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final endTime = this.endTime;
final startTime = this.startTime;
return {'endTime': ?endTime, 'startTime': ?startTime};
}
}
/// Request data that use the existing QueryMetrics.
class GoogleCloudContactcenterinsightsV1QueryMetrics {
///
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? request;
GoogleCloudContactcenterinsightsV1QueryMetrics({this.request});
GoogleCloudContactcenterinsightsV1QueryMetrics.fromJson(core.Map json_)
: this(
request: json_.containsKey('request')
? json_['request'] as core.Map<core.String, core.dynamic>
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final request = this.request;
return {'request': ?request};
}
}
/// The request for querying metrics.
class GoogleCloudContactcenterinsightsV1QueryMetricsRequest {
/// The dimensions that determine the grouping key for the query.
///
/// Defaults to no dimension if this field is unspecified. If a dimension is
/// specified, its key must also be specified. Each dimension's key must be
/// unique. If a time granularity is also specified, metric values in the
/// dimension will be bucketed by this granularity. Up to one dimension is
/// supported for now.
core.List<GoogleCloudContactcenterinsightsV1Dimension>? dimensions;
/// Filter to select a subset of conversations to compute the metrics.
///
/// Must specify a window of the conversation create time to compute the
/// metrics. The returned metrics will be from the range \[DATE(starting
/// create time), DATE(ending create time)).
///
/// Required.
core.String? filter;
/// Measures to return.
///
/// Defaults to all measures if this field is unspecified. A valid mask should
/// traverse from the `measure` field from the response. For example, a path
/// from a measure mask to get the conversation count is
/// "conversation_measure.count".
core.String? measureMask;
/// The time granularity of each data point in the time series.
///
/// Defaults to NONE if this field is unspecified.
/// Possible string values are:
/// - "TIME_GRANULARITY_UNSPECIFIED" : The time granularity is unspecified and
/// will default to NONE.
/// - "NONE" : No time granularity. The response won't contain a time series.
/// This is the default value if no time granularity is specified.
/// - "DAILY" : Data points in the time series will aggregate at a daily
/// granularity. 1 day means \[midnight to midnight).
/// - "HOURLY" : Data points in the time series will aggregate at a daily
/// granularity. 1 HOUR means \[01:00 to 02:00).
/// - "PER_MINUTE" : Data points in the time series will aggregate at a daily
/// granularity. PER_MINUTE means \[01:00 to 01:01).
/// - "PER_5_MINUTES" : Data points in the time series will aggregate at a 1
/// minute granularity. PER_5_MINUTES means \[01:00 to 01:05).
/// - "MONTHLY" : Data points in the time series will aggregate at a monthly
/// granularity. 1 MONTH means \[01st of the month to 1st of the next month).
core.String? timeGranularity;
GoogleCloudContactcenterinsightsV1QueryMetricsRequest({
this.dimensions,
this.filter,
this.measureMask,
this.timeGranularity,
});
GoogleCloudContactcenterinsightsV1QueryMetricsRequest.fromJson(core.Map json_)
: this(
dimensions: (json_['dimensions'] as core.List?)
?.map(
(value) => GoogleCloudContactcenterinsightsV1Dimension.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
filter: json_['filter'] as core.String?,
measureMask: json_['measureMask'] as core.String?,
timeGranularity: json_['timeGranularity'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final dimensions = this.dimensions;
final filter = this.filter;
final measureMask = this.measureMask;
final timeGranularity = this.timeGranularity;
return {
'dimensions': ?dimensions,
'filter': ?filter,
'measureMask': ?measureMask,
'timeGranularity': ?timeGranularity,
};
}
}
/// The request for summarizing performance according to different metrics for
/// conversations over a specified time window.
class GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequest {
/// Conversations are from a single agent.
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequestAgentSource?
agentPerformanceSource;
/// The time window of the conversations to compare the performance to.
GoogleCloudContactcenterinsightsV1QueryInterval? comparisonQueryInterval;
/// Filter to select a subset of conversations to compute the performance
/// overview.
///
/// Supports the same filters as the filter field in QueryMetricsRequest. The
/// source and query interval/comparison query interval should not be included
/// here.
///
/// Optional.
core.String? filter;
/// The time window of the conversations to derive performance stats from.
///
/// Required.
GoogleCloudContactcenterinsightsV1QueryInterval? queryInterval;
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequest({
this.agentPerformanceSource,
this.comparisonQueryInterval,
this.filter,
this.queryInterval,
});
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequest.fromJson(
core.Map json_,
) : this(
agentPerformanceSource: json_.containsKey('agentPerformanceSource')
? GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequestAgentSource.fromJson(
json_['agentPerformanceSource']
as core.Map<core.String, core.dynamic>,
)
: null,
comparisonQueryInterval: json_.containsKey('comparisonQueryInterval')
? GoogleCloudContactcenterinsightsV1QueryInterval.fromJson(
json_['comparisonQueryInterval']
as core.Map<core.String, core.dynamic>,
)
: null,
filter: json_['filter'] as core.String?,
queryInterval: json_.containsKey('queryInterval')
? GoogleCloudContactcenterinsightsV1QueryInterval.fromJson(
json_['queryInterval'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final agentPerformanceSource = this.agentPerformanceSource;
final comparisonQueryInterval = this.comparisonQueryInterval;
final filter = this.filter;
final queryInterval = this.queryInterval;
return {
'agentPerformanceSource': ?agentPerformanceSource,
'comparisonQueryInterval': ?comparisonQueryInterval,
'filter': ?filter,
'queryInterval': ?queryInterval,
};
}
}
/// The entity whose performance is being queried is a single agent.
class GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequestAgentSource {
/// Agent id to query performance overview for.
///
/// Required.
core.String? agentId;
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequestAgentSource({
this.agentId,
});
GoogleCloudContactcenterinsightsV1QueryPerformanceOverviewRequestAgentSource.fromJson(
core.Map json_,
) : this(agentId: json_['agentId'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final agentId = this.agentId;
return {'agentId': ?agentId};
}
}
/// DLP resources used for redaction while ingesting conversations.
///
/// DLP settings are applied to conversations ingested from the
/// `UploadConversation` and `IngestConversations` endpoints, including
/// conversation coming from CCAI Platform. They are not applied to
/// conversations ingested from the `CreateConversation` endpoint or the
/// Dialogflow / Agent Assist runtime integrations. When using Dialogflow /
/// Agent Assist runtime integrations, redaction should be performed in
/// Dialogflow / Agent Assist.
class GoogleCloudContactcenterinsightsV1RedactionConfig {
/// The fully-qualified DLP deidentify template resource name.
///
/// Format: `projects/{project}/deidentifyTemplates/{template}`
core.String? deidentifyTemplate;
/// The fully-qualified DLP inspect template resource name.
///
/// Format:
/// `projects/{project}/locations/{location}/inspectTemplates/{template}`
core.String? inspectTemplate;
GoogleCloudContactcenterinsightsV1RedactionConfig({
this.deidentifyTemplate,
this.inspectTemplate,
});
GoogleCloudContactcenterinsightsV1RedactionConfig.fromJson(core.Map json_)
: this(
deidentifyTemplate: json_['deidentifyTemplate'] as core.String?,
inspectTemplate: json_['inspectTemplate'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final deidentifyTemplate = this.deidentifyTemplate;
final inspectTemplate = this.inspectTemplate;
return {
'deidentifyTemplate': ?deidentifyTemplate,
'inspectTemplate': ?inspectTemplate,
};
}
}
/// The redirect action to be taken when the chart is clicked.
class GoogleCloudContactcenterinsightsV1RedirectAction {
/// The relative path to redirect to.
core.String? relativePath;
GoogleCloudContactcenterinsightsV1RedirectAction({this.relativePath});
GoogleCloudContactcenterinsightsV1RedirectAction.fromJson(core.Map json_)
: this(relativePath: json_['relativePath'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final relativePath = this.relativePath;
return {'relativePath': ?relativePath};
}
}
/// Regex match configuration.
typedef GoogleCloudContactcenterinsightsV1RegexMatchConfig = $Empty;
/// An annotation that was generated during the customer and agent interaction.
class GoogleCloudContactcenterinsightsV1RuntimeAnnotation {
/// The unique identifier of the annotation.
///
/// Format:
/// projects/{project}/locations/{location}/conversationDatasets/{dataset}/conversationDataItems/{data_item}/conversationAnnotations/{annotation}
core.String? annotationId;
/// The feedback that the customer has about the answer in `data`.
GoogleCloudContactcenterinsightsV1AnswerFeedback? answerFeedback;
/// Agent Assist Article Suggestion data.
GoogleCloudContactcenterinsightsV1ArticleSuggestionData? articleSuggestion;
/// The CES end session annotation.
GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation?
cesEndSessionAnnotation;
/// The CES turn annotation.
GoogleCloudContactcenterinsightsV1CesTurnAnnotation? cesTurnAnnotation;
/// Conversation summarization suggestion data.
GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData?
conversationSummarizationSuggestion;
/// The time at which this annotation was created.
core.String? createTime;
/// Dialogflow interaction data.
GoogleCloudContactcenterinsightsV1DialogflowInteractionData?
dialogflowInteraction;
/// The boundary in the conversation where the annotation ends, inclusive.
GoogleCloudContactcenterinsightsV1AnnotationBoundary? endBoundary;
/// Agent Assist FAQ answer data.
GoogleCloudContactcenterinsightsV1FaqAnswerData? faqAnswer;
/// Agent Assist Smart Compose suggestion data.
GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData?
smartComposeSuggestion;
/// Agent Assist Smart Reply data.
GoogleCloudContactcenterinsightsV1SmartReplyData? smartReply;
/// The boundary in the conversation where the annotation starts, inclusive.
GoogleCloudContactcenterinsightsV1AnnotationBoundary? startBoundary;
/// Explicit input used for generating the answer
GoogleCloudContactcenterinsightsV1RuntimeAnnotationUserInput? userInput;
GoogleCloudContactcenterinsightsV1RuntimeAnnotation({
this.annotationId,
this.answerFeedback,
this.articleSuggestion,
this.cesEndSessionAnnotation,
this.cesTurnAnnotation,
this.conversationSummarizationSuggestion,
this.createTime,
this.dialogflowInteraction,
this.endBoundary,
this.faqAnswer,
this.smartComposeSuggestion,
this.smartReply,
this.startBoundary,
this.userInput,
});
GoogleCloudContactcenterinsightsV1RuntimeAnnotation.fromJson(core.Map json_)
: this(
annotationId: json_['annotationId'] as core.String?,
answerFeedback: json_.containsKey('answerFeedback')
? GoogleCloudContactcenterinsightsV1AnswerFeedback.fromJson(
json_['answerFeedback'] as core.Map<core.String, core.dynamic>,
)
: null,
articleSuggestion: json_.containsKey('articleSuggestion')
? GoogleCloudContactcenterinsightsV1ArticleSuggestionData.fromJson(
json_['articleSuggestion']
as core.Map<core.String, core.dynamic>,
)
: null,
cesEndSessionAnnotation: json_.containsKey('cesEndSessionAnnotation')
? GoogleCloudContactcenterinsightsV1CesEndSessionAnnotation.fromJson(
json_['cesEndSessionAnnotation']
as core.Map<core.String, core.dynamic>,
)
: null,
cesTurnAnnotation: json_.containsKey('cesTurnAnnotation')
? GoogleCloudContactcenterinsightsV1CesTurnAnnotation.fromJson(
json_['cesTurnAnnotation']
as core.Map<core.String, core.dynamic>,
)
: null,
conversationSummarizationSuggestion:
json_.containsKey('conversationSummarizationSuggestion')
? GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData.fromJson(
json_['conversationSummarizationSuggestion']
as core.Map<core.String, core.dynamic>,
)
: null,
createTime: json_['createTime'] as core.String?,
dialogflowInteraction: json_.containsKey('dialogflowInteraction')
? GoogleCloudContactcenterinsightsV1DialogflowInteractionData.fromJson(
json_['dialogflowInteraction']
as core.Map<core.String, core.dynamic>,
)
: null,
endBoundary: json_.containsKey('endBoundary')
? GoogleCloudContactcenterinsightsV1AnnotationBoundary.fromJson(
json_['endBoundary'] as core.Map<core.String, core.dynamic>,
)
: null,
faqAnswer: json_.containsKey('faqAnswer')
? GoogleCloudContactcenterinsightsV1FaqAnswerData.fromJson(
json_['faqAnswer'] as core.Map<core.String, core.dynamic>,
)
: null,
smartComposeSuggestion: json_.containsKey('smartComposeSuggestion')
? GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData.fromJson(
json_['smartComposeSuggestion']
as core.Map<core.String, core.dynamic>,
)
: null,
smartReply: json_.containsKey('smartReply')
? GoogleCloudContactcenterinsightsV1SmartReplyData.fromJson(
json_['smartReply'] as core.Map<core.String, core.dynamic>,
)
: null,
startBoundary: json_.containsKey('startBoundary')
? GoogleCloudContactcenterinsightsV1AnnotationBoundary.fromJson(
json_['startBoundary'] as core.Map<core.String, core.dynamic>,
)
: null,
userInput: json_.containsKey('userInput')
? GoogleCloudContactcenterinsightsV1RuntimeAnnotationUserInput.fromJson(
json_['userInput'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final annotationId = this.annotationId;
final answerFeedback = this.answerFeedback;
final articleSuggestion = this.articleSuggestion;
final cesEndSessionAnnotation = this.cesEndSessionAnnotation;
final cesTurnAnnotation = this.cesTurnAnnotation;
final conversationSummarizationSuggestion =
this.conversationSummarizationSuggestion;
final createTime = this.createTime;
final dialogflowInteraction = this.dialogflowInteraction;
final endBoundary = this.endBoundary;
final faqAnswer = this.faqAnswer;
final smartComposeSuggestion = this.smartComposeSuggestion;
final smartReply = this.smartReply;
final startBoundary = this.startBoundary;
final userInput = this.userInput;
return {
'annotationId': ?annotationId,
'answerFeedback': ?answerFeedback,
'articleSuggestion': ?articleSuggestion,
'cesEndSessionAnnotation': ?cesEndSessionAnnotation,
'cesTurnAnnotation': ?cesTurnAnnotation,
'conversationSummarizationSuggestion':
?conversationSummarizationSuggestion,
'createTime': ?createTime,
'dialogflowInteraction': ?dialogflowInteraction,
'endBoundary': ?endBoundary,
'faqAnswer': ?faqAnswer,
'smartComposeSuggestion': ?smartComposeSuggestion,
'smartReply': ?smartReply,
'startBoundary': ?startBoundary,
'userInput': ?userInput,
};
}
}
/// Explicit input used for generating the answer
class GoogleCloudContactcenterinsightsV1RuntimeAnnotationUserInput {
/// The resource name of associated generator.
///
/// Format: `projects//locations//generators/`
core.String? generatorName;
/// Query text.
///
/// Article Search uses this to store the input query used to generate the
/// search results.
core.String? query;
/// Query source for the answer.
/// Possible string values are:
/// - "QUERY_SOURCE_UNSPECIFIED" : Unknown query source.
/// - "AGENT_QUERY" : The query is from agents.
/// - "SUGGESTED_QUERY" : The query is a query from previous suggestions, e.g.
/// from a preceding SuggestKnowledgeAssist response.
core.String? querySource;
GoogleCloudContactcenterinsightsV1RuntimeAnnotationUserInput({
this.generatorName,
this.query,
this.querySource,
});
GoogleCloudContactcenterinsightsV1RuntimeAnnotationUserInput.fromJson(
core.Map json_,
) : this(
generatorName: json_['generatorName'] as core.String?,
query: json_['query'] as core.String?,
querySource: json_['querySource'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final generatorName = this.generatorName;
final query = this.query;
final querySource = this.querySource;
return {
'generatorName': ?generatorName,
'query': ?query,
'querySource': ?querySource,
};
}
}
/// The request to sample conversations to a dataset.
class GoogleCloudContactcenterinsightsV1SampleConversationsRequest {
/// The dataset resource to copy the sampled conversations to.
GoogleCloudContactcenterinsightsV1Dataset? destinationDataset;
/// The parent resource of the dataset.
///
/// Required.
core.String? parent;
/// The sample rule used for sampling conversations.
///
/// Optional.
GoogleCloudContactcenterinsightsV1SampleRule? sampleRule;
GoogleCloudContactcenterinsightsV1SampleConversationsRequest({
this.destinationDataset,
this.parent,
this.sampleRule,
});
GoogleCloudContactcenterinsightsV1SampleConversationsRequest.fromJson(
core.Map json_,
) : this(
destinationDataset: json_.containsKey('destinationDataset')
? GoogleCloudContactcenterinsightsV1Dataset.fromJson(
json_['destinationDataset']
as core.Map<core.String, core.dynamic>,
)
: null,
parent: json_['parent'] as core.String?,
sampleRule: json_.containsKey('sampleRule')
? GoogleCloudContactcenterinsightsV1SampleRule.fromJson(
json_['sampleRule'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final destinationDataset = this.destinationDataset;
final parent = this.parent;
final sampleRule = this.sampleRule;
return {
'destinationDataset': ?destinationDataset,
'parent': ?parent,
'sampleRule': ?sampleRule,
};
}
}
/// Message for sampling conversations.
class GoogleCloudContactcenterinsightsV1SampleRule {
/// To specify the filter for the conversions that should apply this sample
/// rule.
///
/// An empty filter means this sample rule applies to all conversations.
core.String? conversationFilter;
/// Group by dimension to sample the conversation.
///
/// If no dimension is provided, the sampling will be applied to the project
/// level. Current supported dimensions is
/// 'quality_metadata.agent_info.agent_id'.
///
/// Optional.
core.String? dimension;
/// Percentage of conversations that we should sample based on the dimension
/// between \[0, 100\].
core.double? samplePercentage;
/// Number of the conversations that we should sample based on the dimension.
core.String? sampleRow;
GoogleCloudContactcenterinsightsV1SampleRule({
this.conversationFilter,
this.dimension,
this.samplePercentage,
this.sampleRow,
});
GoogleCloudContactcenterinsightsV1SampleRule.fromJson(core.Map json_)
: this(
conversationFilter: json_['conversationFilter'] as core.String?,
dimension: json_['dimension'] as core.String?,
samplePercentage: (json_['samplePercentage'] as core.num?)?.toDouble(),
sampleRow: json_['sampleRow'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversationFilter = this.conversationFilter;
final dimension = this.dimension;
final samplePercentage = this.samplePercentage;
final sampleRow = this.sampleRow;
return {
'conversationFilter': ?conversationFilter,
'dimension': ?dimension,
'samplePercentage': ?samplePercentage,
'sampleRow': ?sampleRow,
};
}
}
/// Message for schedule info.
class GoogleCloudContactcenterinsightsV1ScheduleInfo {
/// End time of the schedule.
///
/// If not specified, will keep scheduling new pipelines for execution util
/// the schedule is no longer active or deleted.
core.String? endTime;
/// The groc expression.
///
/// Format: `every number [synchronized]` Time units can be: minutes, hours
/// Synchronized is optional and indicates that the schedule should be
/// synchronized to the start of the interval: every 5 minutes synchronized
/// means 00:00, 00:05 ... Otherwise the start time is random within the
/// interval. Example: `every 5 minutes` could be 00:02, 00:07, 00:12, ...
core.String? schedule;
/// Start time of the schedule.
///
/// If not specified, will start as soon as the schedule is created.
core.String? startTime;
/// The timezone to use for the groc expression.
///
/// If not specified, defaults to UTC.
core.String? timeZone;
GoogleCloudContactcenterinsightsV1ScheduleInfo({
this.endTime,
this.schedule,
this.startTime,
this.timeZone,
});
GoogleCloudContactcenterinsightsV1ScheduleInfo.fromJson(core.Map json_)
: this(
endTime: json_['endTime'] as core.String?,
schedule: json_['schedule'] as core.String?,
startTime: json_['startTime'] as core.String?,
timeZone: json_['timeZone'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final endTime = this.endTime;
final schedule = this.schedule;
final startTime = this.startTime;
final timeZone = this.timeZone;
return {
'endTime': ?endTime,
'schedule': ?schedule,
'startTime': ?startTime,
'timeZone': ?timeZone,
};
}
}
/// The response from a ListAuthorizedViews request.
class GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse {
/// The AuthorizedViews under the parent.
core.List<GoogleCloudContactcenterinsightsV1AuthorizedView>? authorizedViews;
/// A token, which can be sent as `page_token` to retrieve the next page.
///
/// If this field is omitted, there are no subsequent pages.
core.String? nextPageToken;
GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse({
this.authorizedViews,
this.nextPageToken,
});
GoogleCloudContactcenterinsightsV1SearchAuthorizedViewsResponse.fromJson(
core.Map json_,
) : this(
authorizedViews: (json_['authorizedViews'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1AuthorizedView.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
nextPageToken: json_['nextPageToken'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final authorizedViews = this.authorizedViews;
final nextPageToken = this.nextPageToken;
return {
'authorizedViews': ?authorizedViews,
'nextPageToken': ?nextPageToken,
};
}
}
/// The data for a sentiment annotation.
class GoogleCloudContactcenterinsightsV1SentimentData {
/// A non-negative number from 0 to infinity which represents the absolute
/// magnitude of sentiment regardless of score.
core.double? magnitude;
/// The sentiment score between -1.0 (negative) and 1.0 (positive).
core.double? score;
GoogleCloudContactcenterinsightsV1SentimentData({this.magnitude, this.score});
GoogleCloudContactcenterinsightsV1SentimentData.fromJson(core.Map json_)
: this(
magnitude: (json_['magnitude'] as core.num?)?.toDouble(),
score: (json_['score'] as core.num?)?.toDouble(),
);
core.Map<core.String, core.dynamic> toJson() {
final magnitude = this.magnitude;
final score = this.score;
return {'magnitude': ?magnitude, 'score': ?score};
}
}
/// The CCAI Insights project wide settings.
///
/// Use these settings to configure the behavior of Insights. View these
/// settings with
/// \[`getsettings`\](https://cloud.google.com/contact-center/insights/docs/reference/rest/v1/projects.locations/getSettings)
/// and change the settings with
/// \[`updateSettings`\](https://cloud.google.com/contact-center/insights/docs/reference/rest/v1/projects.locations/updateSettings).
class GoogleCloudContactcenterinsightsV1Settings {
/// Default analysis settings.
GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig? analysisConfig;
/// The default TTL for newly-created conversations.
///
/// If a conversation has a specified expiration, that value will be used
/// instead. Changing this value will not change the expiration of existing
/// conversations. Conversations with no expire time persist until they are
/// deleted.
core.String? conversationTtl;
/// The time at which the settings was created.
///
/// Output only.
core.String? createTime;
/// Configuration for diagnostic metrics.
///
/// Optional.
GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig?
diagnosticMetricConfig;
/// A language code to be applied to each transcript segment unless the
/// segment already specifies a language code.
///
/// Language code defaults to "en-US" if it is neither specified on the
/// segment nor here.
core.String? languageCode;
/// The resource name of the settings resource.
///
/// Format: projects/{project}/locations/{location}/settings
///
/// Immutable.
core.String? name;
/// A map that maps a notification trigger to a Pub/Sub topic.
///
/// Each time a specified trigger occurs, Insights will notify the
/// corresponding Pub/Sub topic. Keys are notification triggers. Supported
/// keys are: * "all-triggers": Notify each time any of the supported triggers
/// occurs. * "create-analysis": Notify each time an analysis is created. *
/// "create-conversation": Notify each time a conversation is created. *
/// "export-insights-data": Notify each time an export is complete. *
/// "ingest-conversations": Notify each time an IngestConversations LRO is
/// complete. * "update-conversation": Notify each time a conversation is
/// updated via UpdateConversation. * "upload-conversation": Notify when an
/// UploadConversation LRO is complete. * "update-or-analyze-conversation":
/// Notify when an analysis for a conversation is completed or when the
/// conversation is updated. The message will contain the conversation with
/// transcript, analysis and other metadata. Values are Pub/Sub topics. The
/// format of each Pub/Sub topic is: projects/{project}/topics/{topic}
core.Map<core.String, core.String>? pubsubNotificationSettings;
/// Default DLP redaction resources to be applied while ingesting
/// conversations.
///
/// This applies to conversations ingested from the `UploadConversation` and
/// `IngestConversations` endpoints, including conversations coming from CCAI
/// Platform.
GoogleCloudContactcenterinsightsV1RedactionConfig? redactionConfig;
/// The path to a Cloud Storage bucket containing conversation screen
/// recordings.
///
/// If provided, Insights will search in the bucket for a screen recording
/// file matching the conversation data source object name prefix. If matches
/// are found, these file URIs will be stored in the conversation screen
/// recordings field.
///
/// Optional.
core.String? screenRecordingBucketUri;
/// Default Speech-to-Text resources to use while ingesting audio files.
///
/// Optional, CCAI Insights will create a default if not provided. This
/// applies to conversations ingested from the `UploadConversation` and
/// `IngestConversations` endpoints, including conversations coming from CCAI
/// Platform.
///
/// Optional.
GoogleCloudContactcenterinsightsV1SpeechConfig? speechConfig;
/// The time zone applied to the project.
///
/// This is a string representation of the time zone, for example,
/// "America/New_York". This field follows the IANA TZ database format. See
/// https://www.iana.org/time-zones for a list of valid values. If no value is
/// set the user time zone will be used.
///
/// Optional.
core.String? timeZone;
/// The time at which the settings were last updated.
///
/// Output only.
core.String? updateTime;
GoogleCloudContactcenterinsightsV1Settings({
this.analysisConfig,
this.conversationTtl,
this.createTime,
this.diagnosticMetricConfig,
this.languageCode,
this.name,
this.pubsubNotificationSettings,
this.redactionConfig,
this.screenRecordingBucketUri,
this.speechConfig,
this.timeZone,
this.updateTime,
});
GoogleCloudContactcenterinsightsV1Settings.fromJson(core.Map json_)
: this(
analysisConfig: json_.containsKey('analysisConfig')
? GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig.fromJson(
json_['analysisConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
conversationTtl: json_['conversationTtl'] as core.String?,
createTime: json_['createTime'] as core.String?,
diagnosticMetricConfig: json_.containsKey('diagnosticMetricConfig')
? GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig.fromJson(
json_['diagnosticMetricConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
languageCode: json_['languageCode'] as core.String?,
name: json_['name'] as core.String?,
pubsubNotificationSettings:
(json_['pubsubNotificationSettings']
as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
redactionConfig: json_.containsKey('redactionConfig')
? GoogleCloudContactcenterinsightsV1RedactionConfig.fromJson(
json_['redactionConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
screenRecordingBucketUri:
json_['screenRecordingBucketUri'] as core.String?,
speechConfig: json_.containsKey('speechConfig')
? GoogleCloudContactcenterinsightsV1SpeechConfig.fromJson(
json_['speechConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
timeZone: json_['timeZone'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final analysisConfig = this.analysisConfig;
final conversationTtl = this.conversationTtl;
final createTime = this.createTime;
final diagnosticMetricConfig = this.diagnosticMetricConfig;
final languageCode = this.languageCode;
final name = this.name;
final pubsubNotificationSettings = this.pubsubNotificationSettings;
final redactionConfig = this.redactionConfig;
final screenRecordingBucketUri = this.screenRecordingBucketUri;
final speechConfig = this.speechConfig;
final timeZone = this.timeZone;
final updateTime = this.updateTime;
return {
'analysisConfig': ?analysisConfig,
'conversationTtl': ?conversationTtl,
'createTime': ?createTime,
'diagnosticMetricConfig': ?diagnosticMetricConfig,
'languageCode': ?languageCode,
'name': ?name,
'pubsubNotificationSettings': ?pubsubNotificationSettings,
'redactionConfig': ?redactionConfig,
'screenRecordingBucketUri': ?screenRecordingBucketUri,
'speechConfig': ?speechConfig,
'timeZone': ?timeZone,
'updateTime': ?updateTime,
};
}
}
/// Default configuration when creating Analyses in Insights.
class GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig {
/// To select the annotators to run and the phrase matchers to use (if any).
///
/// If not specified, all annotators will be run.
GoogleCloudContactcenterinsightsV1AnnotatorSelector? annotatorSelector;
/// Percentage of conversations created using Dialogflow runtime integration
/// to analyze automatically, between \[0, 100\].
core.double? runtimeIntegrationAnalysisPercentage;
/// Percentage of conversations created using the UploadConversation endpoint
/// to analyze automatically, between \[0, 100\].
core.double? uploadConversationAnalysisPercentage;
GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig({
this.annotatorSelector,
this.runtimeIntegrationAnalysisPercentage,
this.uploadConversationAnalysisPercentage,
});
GoogleCloudContactcenterinsightsV1SettingsAnalysisConfig.fromJson(
core.Map json_,
) : this(
annotatorSelector: json_.containsKey('annotatorSelector')
? GoogleCloudContactcenterinsightsV1AnnotatorSelector.fromJson(
json_['annotatorSelector']
as core.Map<core.String, core.dynamic>,
)
: null,
runtimeIntegrationAnalysisPercentage:
(json_['runtimeIntegrationAnalysisPercentage'] as core.num?)
?.toDouble(),
uploadConversationAnalysisPercentage:
(json_['uploadConversationAnalysisPercentage'] as core.num?)
?.toDouble(),
);
core.Map<core.String, core.dynamic> toJson() {
final annotatorSelector = this.annotatorSelector;
final runtimeIntegrationAnalysisPercentage =
this.runtimeIntegrationAnalysisPercentage;
final uploadConversationAnalysisPercentage =
this.uploadConversationAnalysisPercentage;
return {
'annotatorSelector': ?annotatorSelector,
'runtimeIntegrationAnalysisPercentage':
?runtimeIntegrationAnalysisPercentage,
'uploadConversationAnalysisPercentage':
?uploadConversationAnalysisPercentage,
};
}
}
/// Configuration for diagnostic metrics.
class GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig {
/// A map of diagnostic metrics.
///
/// The key is a unique identifier for the metric (e.g., "containment").
///
/// Optional.
core.Map<core.String, GoogleCloudContactcenterinsightsV1MetricDefinition>?
metrics;
GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig({
this.metrics,
});
GoogleCloudContactcenterinsightsV1SettingsDiagnosticMetricConfig.fromJson(
core.Map json_,
) : this(
metrics: (json_['metrics'] as core.Map<core.String, core.dynamic>?)
?.map(
(key, value) => core.MapEntry(
key,
GoogleCloudContactcenterinsightsV1MetricDefinition.fromJson(
value as core.Map<core.String, core.dynamic>,
),
),
),
);
core.Map<core.String, core.dynamic> toJson() {
final metrics = this.metrics;
return {'metrics': ?metrics};
}
}
/// Signed audio URIs for a conversation.
class GoogleCloudContactcenterinsightsV1SignedAudioUris {
/// The signed URI for the audio from the Dialogflow conversation source.
core.String? signedDialogflowAudioUri;
/// The signed URI for the audio from the Cloud Storage conversation source.
core.String? signedGcsAudioUri;
/// The signed URI for the audio corresponding to each turn in the
/// conversation.
core.List<
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio
>?
signedTurnLevelAudios;
GoogleCloudContactcenterinsightsV1SignedAudioUris({
this.signedDialogflowAudioUri,
this.signedGcsAudioUri,
this.signedTurnLevelAudios,
});
GoogleCloudContactcenterinsightsV1SignedAudioUris.fromJson(core.Map json_)
: this(
signedDialogflowAudioUri:
json_['signedDialogflowAudioUri'] as core.String?,
signedGcsAudioUri: json_['signedGcsAudioUri'] as core.String?,
signedTurnLevelAudios: (json_['signedTurnLevelAudios'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1ConversationDataSourceTurnLevelAudio.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final signedDialogflowAudioUri = this.signedDialogflowAudioUri;
final signedGcsAudioUri = this.signedGcsAudioUri;
final signedTurnLevelAudios = this.signedTurnLevelAudios;
return {
'signedDialogflowAudioUri': ?signedDialogflowAudioUri,
'signedGcsAudioUri': ?signedGcsAudioUri,
'signedTurnLevelAudios': ?signedTurnLevelAudios,
};
}
}
/// The data for a silence annotation.
typedef GoogleCloudContactcenterinsightsV1SilenceData = $Empty;
/// Agent Assist Smart Compose suggestion data.
class GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData {
/// The system's confidence score that this suggestion is a good match for
/// this conversation, ranging from 0.0 (completely uncertain) to 1.0
/// (completely certain).
core.double? confidenceScore;
/// Map that contains metadata about the Smart Compose suggestion and the
/// document from which it originates.
core.Map<core.String, core.String>? metadata;
/// The name of the answer record.
///
/// Format:
/// projects/{project}/locations/{location}/answerRecords/{answer_record}
core.String? queryRecord;
/// The content of the suggestion.
core.String? suggestion;
GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData({
this.confidenceScore,
this.metadata,
this.queryRecord,
this.suggestion,
});
GoogleCloudContactcenterinsightsV1SmartComposeSuggestionData.fromJson(
core.Map json_,
) : this(
confidenceScore: (json_['confidenceScore'] as core.num?)?.toDouble(),
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
queryRecord: json_['queryRecord'] as core.String?,
suggestion: json_['suggestion'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final confidenceScore = this.confidenceScore;
final metadata = this.metadata;
final queryRecord = this.queryRecord;
final suggestion = this.suggestion;
return {
'confidenceScore': ?confidenceScore,
'metadata': ?metadata,
'queryRecord': ?queryRecord,
'suggestion': ?suggestion,
};
}
}
/// Agent Assist Smart Reply data.
class GoogleCloudContactcenterinsightsV1SmartReplyData {
/// The system's confidence score that this reply is a good match for this
/// conversation, ranging from 0.0 (completely uncertain) to 1.0 (completely
/// certain).
core.double? confidenceScore;
/// Map that contains metadata about the Smart Reply and the document from
/// which it originates.
core.Map<core.String, core.String>? metadata;
/// The name of the answer record.
///
/// Format:
/// projects/{project}/locations/{location}/answerRecords/{answer_record}
core.String? queryRecord;
/// The content of the reply.
core.String? reply;
GoogleCloudContactcenterinsightsV1SmartReplyData({
this.confidenceScore,
this.metadata,
this.queryRecord,
this.reply,
});
GoogleCloudContactcenterinsightsV1SmartReplyData.fromJson(core.Map json_)
: this(
confidenceScore: (json_['confidenceScore'] as core.num?)?.toDouble(),
metadata: (json_['metadata'] as core.Map<core.String, core.dynamic>?)
?.map((key, value) => core.MapEntry(key, value as core.String)),
queryRecord: json_['queryRecord'] as core.String?,
reply: json_['reply'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final confidenceScore = this.confidenceScore;
final metadata = this.metadata;
final queryRecord = this.queryRecord;
final reply = this.reply;
return {
'confidenceScore': ?confidenceScore,
'metadata': ?metadata,
'queryRecord': ?queryRecord,
'reply': ?reply,
};
}
}
/// Speech-to-Text configuration.
///
/// Speech-to-Text settings are applied to conversations ingested from the
/// `UploadConversation` and `IngestConversations` endpoints, including
/// conversation coming from CCAI Platform. They are not applied to
/// conversations ingested from the `CreateConversation` endpoint.
class GoogleCloudContactcenterinsightsV1SpeechConfig {
/// Whether to disable word time offsets.
///
/// If true, the `enable_word_time_offsets` field in the recognition config
/// will be set to false.
core.bool? disableWordTimeOffsets;
/// The fully-qualified Speech Recognizer resource name.
///
/// Format:
/// `projects/{project_id}/locations/{location}/recognizer/{recognizer}`
core.String? speechRecognizer;
GoogleCloudContactcenterinsightsV1SpeechConfig({
this.disableWordTimeOffsets,
this.speechRecognizer,
});
GoogleCloudContactcenterinsightsV1SpeechConfig.fromJson(core.Map json_)
: this(
disableWordTimeOffsets: json_['disableWordTimeOffsets'] as core.bool?,
speechRecognizer: json_['speechRecognizer'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final disableWordTimeOffsets = this.disableWordTimeOffsets;
final speechRecognizer = this.speechRecognizer;
return {
'disableWordTimeOffsets': ?disableWordTimeOffsets,
'speechRecognizer': ?speechRecognizer,
};
}
}
/// The request message for testing auto labeling rules.
class GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleRequest {
/// The auto labeling rule to test.
///
/// Required.
GoogleCloudContactcenterinsightsV1AutoLabelingRule? autoLabelingRule;
/// Conversation data to test rules against.
///
/// Required.
GoogleCloudContactcenterinsightsV1Conversation? conversation;
GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleRequest({
this.autoLabelingRule,
this.conversation,
});
GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleRequest.fromJson(
core.Map json_,
) : this(
autoLabelingRule: json_.containsKey('autoLabelingRule')
? GoogleCloudContactcenterinsightsV1AutoLabelingRule.fromJson(
json_['autoLabelingRule']
as core.Map<core.String, core.dynamic>,
)
: null,
conversation: json_.containsKey('conversation')
? GoogleCloudContactcenterinsightsV1Conversation.fromJson(
json_['conversation'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final autoLabelingRule = this.autoLabelingRule;
final conversation = this.conversation;
return {
'autoLabelingRule': ?autoLabelingRule,
'conversation': ?conversation,
};
}
}
/// The response message for testing auto labeling rules.
class GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse {
/// The result of the test auto labeling rule.
core.String? labelResult;
GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse({
this.labelResult,
});
GoogleCloudContactcenterinsightsV1TestAutoLabelingRuleResponse.fromJson(
core.Map json_,
) : this(labelResult: json_['labelResult'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final labelResult = this.labelResult;
return {'labelResult': ?labelResult};
}
}
/// The request to test correlation config.
class GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequest {
/// A list of conversations to test against.
///
/// Optional.
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequestConversations?
conversations;
/// The correlation config to test.
///
/// Required.
GoogleCloudContactcenterinsightsV1CorrelationConfig? correlationConfig;
/// Filter to select conversations to test correlation against.
///
/// Conversations matching this filter will be sampled based on start time.
/// The most recent `max_sample_count` conversations will be selected. If no
/// conversations match the filter, the request will fail with an
/// `INVALID_ARGUMENT` error.
///
/// Optional.
core.String? filter;
/// The maximum number of conversations to sample when using the `filter`.
///
/// If not set, defaults to 1000. Values greater than 1000 are coerced to
/// 1000. This field is ignored if `conversations` is provided.
///
/// Optional.
core.int? maxSampleCount;
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequest({
this.conversations,
this.correlationConfig,
this.filter,
this.maxSampleCount,
});
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequest.fromJson(
core.Map json_,
) : this(
conversations: json_.containsKey('conversations')
? GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequestConversations.fromJson(
json_['conversations'] as core.Map<core.String, core.dynamic>,
)
: null,
correlationConfig: json_.containsKey('correlationConfig')
? GoogleCloudContactcenterinsightsV1CorrelationConfig.fromJson(
json_['correlationConfig']
as core.Map<core.String, core.dynamic>,
)
: null,
filter: json_['filter'] as core.String?,
maxSampleCount: json_['maxSampleCount'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final conversations = this.conversations;
final correlationConfig = this.correlationConfig;
final filter = this.filter;
final maxSampleCount = this.maxSampleCount;
return {
'conversations': ?conversations,
'correlationConfig': ?correlationConfig,
'filter': ?filter,
'maxSampleCount': ?maxSampleCount,
};
}
}
/// Wrapper for a list of conversations.
class GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequestConversations {
/// The conversations.
///
/// Optional.
core.List<GoogleCloudContactcenterinsightsV1Conversation>? conversations;
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequestConversations({
this.conversations,
});
GoogleCloudContactcenterinsightsV1TestCorrelationConfigRequestConversations.fromJson(
core.Map json_,
) : this(
conversations: (json_['conversations'] as core.List?)
?.map(
(value) =>
GoogleCloudContactcenterinsightsV1Conversation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final conversations = this.conversations;
return {'conversations': ?conversations};
}
}
/// Request for TuneQaScorecardRevision endpoint.
class GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest {
/// Filter for selecting the feedback labels that needs to be used for
/// training.
///
/// This filter can be used to limit the feedback labels used for tuning to a
/// feedback labels created or updated for a specific time-window etc.
///
/// Required.
core.String? filter;
/// Run in validate only mode, no fine tuning will actually run.
///
/// Data quality validations like training data distributions will run. Even
/// when set to false, the data quality validations will still run but once
/// the validations complete we will proceed with the fine tune, if
/// applicable.
///
/// Optional.
core.bool? validateOnly;
GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest({
this.filter,
this.validateOnly,
});
GoogleCloudContactcenterinsightsV1TuneQaScorecardRevisionRequest.fromJson(
core.Map json_,
) : this(
filter: json_['filter'] as core.String?,
validateOnly: json_['validateOnly'] as core.bool?,
);
core.Map<core.String, core.dynamic> toJson() {
final filter = this.filter;
final validateOnly = this.validateOnly;
return {'filter': ?filter, 'validateOnly': ?validateOnly};
}
}
/// The request to undeploy an issue model.
class GoogleCloudContactcenterinsightsV1UndeployIssueModelRequest {
/// The issue model to undeploy.
///
/// Required.
core.String? name;
GoogleCloudContactcenterinsightsV1UndeployIssueModelRequest({this.name});
GoogleCloudContactcenterinsightsV1UndeployIssueModelRequest.fromJson(
core.Map json_,
) : this(name: json_['name'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final name = this.name;
return {'name': ?name};
}
}
/// The request to undeploy a QaScorecardRevision
typedef GoogleCloudContactcenterinsightsV1UndeployQaScorecardRevisionRequest =
$Empty;
/// Request to upload a conversation.
class GoogleCloudContactcenterinsightsV1UploadConversationRequest {
/// The conversation resource to create.
///
/// Required.
GoogleCloudContactcenterinsightsV1Conversation? conversation;
/// A unique ID for the new conversation.
///
/// This ID will become the final component of the conversation's resource
/// name. If no ID is specified, a server-generated ID will be used. This
/// value should be 4-64 characters and must match the regular expression
/// `^[a-z0-9-]{4,64}$`. Valid characters are `a-z-`
///
/// Optional.
core.String? conversationId;
/// The parent resource of the conversation.
///
/// Required.
core.String? parent;
/// DLP settings for transcript redaction.
///
/// Will default to the config specified in Settings.
///
/// Optional.
GoogleCloudContactcenterinsightsV1RedactionConfig? redactionConfig;
/// Speech-to-Text configuration.
///
/// Will default to the config specified in Settings.
///
/// Optional.
GoogleCloudContactcenterinsightsV1SpeechConfig? speechConfig;
GoogleCloudContactcenterinsightsV1UploadConversationRequest({
this.conversation,
this.conversationId,
this.parent,
this.redactionConfig,
this.speechConfig,
});
GoogleCloudContactcenterinsightsV1UploadConversationRequest.fromJson(
core.Map json_,
) : this(
conversation: json_.containsKey('conversation')
? GoogleCloudContactcenterinsightsV1Conversation.fromJson(
json_['conversation'] as core.Map<core.String, core.dynamic>,
)
: null,
conversationId: json_['conversationId'] as core.String?,
parent: json_['parent'] as core.String?,
redactionConfig: json_.containsKey('redactionConfig')
? GoogleCloudContactcenterinsightsV1RedactionConfig.fromJson(
json_['redactionConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
speechConfig: json_.containsKey('speechConfig')
? GoogleCloudContactcenterinsightsV1SpeechConfig.fromJson(
json_['speechConfig'] as core.Map<core.String, core.dynamic>,
)
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final conversation = this.conversation;
final conversationId = this.conversationId;
final parent = this.parent;
final redactionConfig = this.redactionConfig;
final speechConfig = this.speechConfig;
return {
'conversation': ?conversation,
'conversationId': ?conversationId,
'parent': ?parent,
'redactionConfig': ?redactionConfig,
'speechConfig': ?speechConfig,
};
}
}
/// Information about a user.
class GoogleCloudContactcenterinsightsV1UserInfo {
/// The user's username.
core.String? username;
GoogleCloudContactcenterinsightsV1UserInfo({this.username});
GoogleCloudContactcenterinsightsV1UserInfo.fromJson(core.Map json_)
: this(username: json_['username'] as core.String?);
core.Map<core.String, core.dynamic> toJson() {
final username = this.username;
return {'username': ?username};
}
}
/// The View resource.
class GoogleCloudContactcenterinsightsV1View {
/// The time at which this view was created.
///
/// Output only.
core.String? createTime;
/// The human-readable display name of the view.
core.String? displayName;
/// The resource name of the view.
///
/// Format: projects/{project}/locations/{location}/views/{view}
///
/// Immutable.
core.String? name;
/// The most recent time at which the view was updated.
///
/// Output only.
core.String? updateTime;
/// A filter to reduce conversation results to a specific subset.
///
/// Refer to https://cloud.google.com/contact-center/insights/docs/filtering
/// for details.
core.String? value;
GoogleCloudContactcenterinsightsV1View({
this.createTime,
this.displayName,
this.name,
this.updateTime,
this.value,
});
GoogleCloudContactcenterinsightsV1View.fromJson(core.Map json_)
: this(
createTime: json_['createTime'] as core.String?,
displayName: json_['displayName'] as core.String?,
name: json_['name'] as core.String?,
updateTime: json_['updateTime'] as core.String?,
value: json_['value'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final createTime = this.createTime;
final displayName = this.displayName;
final name = this.name;
final updateTime = this.updateTime;
final value = this.value;
return {
'createTime': ?createTime,
'displayName': ?displayName,
'name': ?name,
'updateTime': ?updateTime,
'value': ?value,
};
}
}
/// Represents a dashboard element, could be a nested Container or Chart.
class GoogleCloudContactcenterinsightsV1Widget {
/// A chart widget.
GoogleCloudContactcenterinsightsV1Chart? chart;
/// A reference to a chart widget.
///
/// Format:
/// projects/{project}/locations/{location}/dashboards/{dashboard}/charts/{chart}
core.String? chartReference;
/// A container widget.
GoogleCloudContactcenterinsightsV1Container? container;
/// Filter applied to all charts in the container.
///
/// Should support scope later.
core.String? filter;
GoogleCloudContactcenterinsightsV1Widget({
this.chart,
this.chartReference,
this.container,
this.filter,
});
GoogleCloudContactcenterinsightsV1Widget.fromJson(core.Map json_)
: this(
chart: json_.containsKey('chart')
? GoogleCloudContactcenterinsightsV1Chart.fromJson(
json_['chart'] as core.Map<core.String, core.dynamic>,
)
: null,
chartReference: json_['chartReference'] as core.String?,
container: json_.containsKey('container')
? GoogleCloudContactcenterinsightsV1Container.fromJson(
json_['container'] as core.Map<core.String, core.dynamic>,
)
: null,
filter: json_['filter'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final chart = this.chart;
final chartReference = this.chartReference;
final container = this.container;
final filter = this.filter;
return {
'chart': ?chart,
'chartReference': ?chartReference,
'container': ?container,
'filter': ?filter,
};
}
}
/// Specifies the audit configuration for a service.
///
/// The configuration determines which permission types are logged, and what
/// identities, if any, are exempted from logging. An AuditConfig must have one
/// or more AuditLogConfigs. If there are AuditConfigs for both `allServices`
/// and a specific service, the union of the two AuditConfigs is used for that
/// service: the log_types specified in each AuditConfig are enabled, and the
/// exempted_members in each AuditLogConfig are exempted. Example Policy with
/// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices",
/// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[
/// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type":
/// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com",
/// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type":
/// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] }
/// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
/// logging. It also exempts `jose@example.com` from DATA_READ logging, and
/// `aliya@example.com` from DATA_WRITE logging.
class GoogleIamV1AuditConfig {
/// The configuration for logging of each type of permission.
core.List<GoogleIamV1AuditLogConfig>? auditLogConfigs;
/// Specifies a service that will be enabled for audit logging.
///
/// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
/// `allServices` is a special value that covers all services.
core.String? service;
GoogleIamV1AuditConfig({this.auditLogConfigs, this.service});
GoogleIamV1AuditConfig.fromJson(core.Map json_)
: this(
auditLogConfigs: (json_['auditLogConfigs'] as core.List?)
?.map(
(value) => GoogleIamV1AuditLogConfig.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
service: json_['service'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final auditLogConfigs = this.auditLogConfigs;
final service = this.service;
return {'auditLogConfigs': ?auditLogConfigs, 'service': ?service};
}
}
/// Provides the configuration for logging a type of permissions.
///
/// Example: { "audit_log_configs": \[ { "log_type": "DATA_READ",
/// "exempted_members": \[ "user:jose@example.com" \] }, { "log_type":
/// "DATA_WRITE" } \] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while
/// exempting jose@example.com from DATA_READ logging.
typedef GoogleIamV1AuditLogConfig = $AuditLogConfig;
/// Associates `members`, or principals, with a `role`.
class GoogleIamV1Binding {
/// The condition that is associated with this binding.
///
/// If the condition evaluates to `true`, then this binding applies to the
/// current request. If the condition evaluates to `false`, then this binding
/// does not apply to the current request. However, a different role binding
/// might grant the same role to one or more of the principals in this
/// binding. To learn which resources support conditions in their IAM
/// policies, see the
/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
GoogleTypeExpr? condition;
/// Specifies the principals requesting access for a Google Cloud resource.
///
/// `members` can have the following values: * `allUsers`: A special
/// identifier that represents anyone who is on the internet; with or without
/// a Google account. * `allAuthenticatedUsers`: A special identifier that
/// represents anyone who is authenticated with a Google account or a service
/// account. Does not include identities that come from external identity
/// providers (IdPs) through identity federation. * `user:{emailid}`: An email
/// address that represents a specific Google account. For example,
/// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that
/// represents a Google service account. For example,
/// `my-other-app@appspot.gserviceaccount.com`. *
/// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An
/// identifier for a
/// [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts).
/// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. *
/// `group:{emailid}`: An email address that represents a Google group. For
/// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain
/// (primary) that represents all the users of that domain. For example,
/// `google.com` or `example.com`. *
/// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:
/// A single identity in a workforce identity pool. *
/// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`:
/// All workforce identities in a group. *
/// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:
/// All workforce identities with a specific attribute value. *
/// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}
/// / * `: All identities in a workforce identity pool. *
/// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`:
/// A single identity in a workload identity pool. *
/// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`:
/// A workload identity pool group. *
/// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`:
/// All identities in a workload identity pool with a certain attribute. *
/// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}
/// / * `: All identities in a workload identity pool. *
/// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
/// identifier) representing a user that has been recently deleted. For
/// example, `alice@example.com?uid=123456789012345678901`. If the user is
/// recovered, this value reverts to `user:{emailid}` and the recovered user
/// retains the role in the binding. *
/// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
/// unique identifier) representing a service account that has been recently
/// deleted. For example,
/// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If
/// the service account is undeleted, this value reverts to
/// `serviceAccount:{emailid}` and the undeleted service account retains the
/// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email
/// address (plus unique identifier) representing a Google group that has been
/// recently deleted. For example,
/// `admins@example.com?uid=123456789012345678901`. If the group is recovered,
/// this value reverts to `group:{emailid}` and the recovered group retains
/// the role in the binding. *
/// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`:
/// Deleted single identity in a workforce identity pool. For example,
/// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
core.List<core.String>? members;
/// Role that is assigned to the list of `members`, or principals.
///
/// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an
/// overview of the IAM roles and permissions, see the
/// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For
/// a list of the available pre-defined roles, see
/// [here](https://cloud.google.com/iam/docs/understanding-roles).
core.String? role;
GoogleIamV1Binding({this.condition, this.members, this.role});
GoogleIamV1Binding.fromJson(core.Map json_)
: this(
condition: json_.containsKey('condition')
? GoogleTypeExpr.fromJson(
json_['condition'] as core.Map<core.String, core.dynamic>,
)
: null,
members: (json_['members'] as core.List?)
?.map((value) => value as core.String)
.toList(),
role: json_['role'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final condition = this.condition;
final members = this.members;
final role = this.role;
return {'condition': ?condition, 'members': ?members, 'role': ?role};
}
}
/// An Identity and Access Management (IAM) policy, which specifies access
/// controls for Google Cloud resources.
///
/// A `Policy` is a collection of `bindings`. A `binding` binds one or more
/// `members`, or principals, to a single `role`. Principals can be user
/// accounts, service accounts, Google groups, and domains (such as G Suite). A
/// `role` is a named list of permissions; each `role` can be an IAM predefined
/// role or a user-created custom role. For some types of Google Cloud
/// resources, a `binding` can also specify a `condition`, which is a logical
/// expression that allows access to a resource only if the expression evaluates
/// to `true`. A condition can add constraints based on attributes of the
/// request, the resource, or both. To learn which resources support conditions
/// in their IAM policies, see the
/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
/// **JSON example:** ``` { "bindings": [ { "role":
/// "roles/resourcemanager.organizationAdmin", "members": [
/// "user:mike@example.com", "group:admins@example.com", "domain:google.com",
/// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
/// "roles/resourcemanager.organizationViewer", "members": [
/// "user:eve@example.com" ], "condition": { "title": "expirable access",
/// "description": "Does not grant access after Sep 2020", "expression":
/// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
/// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: -
/// members: - user:mike@example.com - group:admins@example.com -
/// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
/// role: roles/resourcemanager.organizationAdmin - members: -
/// user:eve@example.com role: roles/resourcemanager.organizationViewer
/// condition: title: expirable access description: Does not grant access after
/// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
/// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features,
/// see the [IAM documentation](https://cloud.google.com/iam/docs/).
class GoogleIamV1Policy {
/// Specifies cloud audit logging configuration for this policy.
core.List<GoogleIamV1AuditConfig>? auditConfigs;
/// Associates a list of `members`, or principals, with a `role`.
///
/// Optionally, may specify a `condition` that determines how and when the
/// `bindings` are applied. Each of the `bindings` must contain at least one
/// principal. The `bindings` in a `Policy` can refer to up to 1,500
/// principals; up to 250 of these principals can be Google groups. Each
/// occurrence of a principal counts towards these limits. For example, if the
/// `bindings` grant 50 different roles to `user:alice@example.com`, and not
/// to any other principal, then you can add another 1,450 principals to the
/// `bindings` in the `Policy`.
core.List<GoogleIamV1Binding>? bindings;
/// `etag` is used for optimistic concurrency control as a way to help prevent
/// simultaneous updates of a policy from overwriting each other.
///
/// It is strongly suggested that systems make use of the `etag` in the
/// read-modify-write cycle to perform policy updates in order to avoid race
/// conditions: An `etag` is returned in the response to `getIamPolicy`, and
/// systems are expected to put that etag in the request to `setIamPolicy` to
/// ensure that their change will be applied to the same version of the
/// policy. **Important:** If you use IAM Conditions, you must include the
/// `etag` field whenever you call `setIamPolicy`. If you omit this field,
/// then IAM allows you to overwrite a version `3` policy with a version `1`
/// policy, and all of the conditions in the version `3` policy are lost.
core.String? etag;
core.List<core.int> get etagAsBytes => convert.base64.decode(etag!);
set etagAsBytes(core.List<core.int> bytes_) {
etag = convert.base64
.encode(bytes_)
.replaceAll('/', '_')
.replaceAll('+', '-');
}
/// Specifies the format of the policy.
///
/// Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
/// are rejected. Any operation that affects conditional role bindings must
/// specify version `3`. This requirement applies to the following operations:
/// * Getting a policy that includes a conditional role binding * Adding a
/// conditional role binding to a policy * Changing a conditional role binding
/// in a policy * Removing any role binding, with or without a condition, from
/// a policy that includes conditions **Important:** If you use IAM
/// Conditions, you must include the `etag` field whenever you call
/// `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a
/// version `3` policy with a version `1` policy, and all of the conditions in
/// the version `3` policy are lost. If a policy does not include any
/// conditions, operations on that policy may specify any valid version or
/// leave the field unset. To learn which resources support conditions in
/// their IAM policies, see the
/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
core.int? version;
GoogleIamV1Policy({
this.auditConfigs,
this.bindings,
this.etag,
this.version,
});
GoogleIamV1Policy.fromJson(core.Map json_)
: this(
auditConfigs: (json_['auditConfigs'] as core.List?)
?.map(
(value) => GoogleIamV1AuditConfig.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
bindings: (json_['bindings'] as core.List?)
?.map(
(value) => GoogleIamV1Binding.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
etag: json_['etag'] as core.String?,
version: json_['version'] as core.int?,
);
core.Map<core.String, core.dynamic> toJson() {
final auditConfigs = this.auditConfigs;
final bindings = this.bindings;
final etag = this.etag;
final version = this.version;
return {
'auditConfigs': ?auditConfigs,
'bindings': ?bindings,
'etag': ?etag,
'version': ?version,
};
}
}
/// Request message for `SetIamPolicy` method.
class GoogleIamV1SetIamPolicyRequest {
/// REQUIRED: The complete policy to be applied to the `resource`.
///
/// The size of the policy is limited to a few 10s of KB. An empty policy is a
/// valid policy but certain Google Cloud services (such as Projects) might
/// reject them.
GoogleIamV1Policy? policy;
/// OPTIONAL: A FieldMask specifying which fields of the policy to modify.
///
/// Only the fields in the mask will be modified. If no mask is provided, the
/// following default mask is used: `paths: "bindings, etag"`
core.String? updateMask;
GoogleIamV1SetIamPolicyRequest({this.policy, this.updateMask});
GoogleIamV1SetIamPolicyRequest.fromJson(core.Map json_)
: this(
policy: json_.containsKey('policy')
? GoogleIamV1Policy.fromJson(
json_['policy'] as core.Map<core.String, core.dynamic>,
)
: null,
updateMask: json_['updateMask'] as core.String?,
);
core.Map<core.String, core.dynamic> toJson() {
final policy = this.policy;
final updateMask = this.updateMask;
return {'policy': ?policy, 'updateMask': ?updateMask};
}
}
/// Request message for `TestIamPermissions` method.
typedef GoogleIamV1TestIamPermissionsRequest = $TestIamPermissionsRequest00;
/// Response message for `TestIamPermissions` method.
typedef GoogleIamV1TestIamPermissionsResponse = $PermissionsResponse;
/// The response message for Operations.ListOperations.
class GoogleLongrunningListOperationsResponse {
/// The standard List next-page token.
core.String? nextPageToken;
/// A list of operations that matches the specified filter in the request.
core.List<GoogleLongrunningOperation>? operations;
/// Unordered list.
///
/// Unreachable resources. Populated when the request sets
/// `ListOperationsRequest.return_partial_success` and reads across
/// collections. For example, when attempting to list all resources across all
/// supported locations.
core.List<core.String>? unreachable;
GoogleLongrunningListOperationsResponse({
this.nextPageToken,
this.operations,
this.unreachable,
});
GoogleLongrunningListOperationsResponse.fromJson(core.Map json_)
: this(
nextPageToken: json_['nextPageToken'] as core.String?,
operations: (json_['operations'] as core.List?)
?.map(
(value) => GoogleLongrunningOperation.fromJson(
value as core.Map<core.String, core.dynamic>,
),
)
.toList(),
unreachable: (json_['unreachable'] as core.List?)
?.map((value) => value as core.String)
.toList(),
);
core.Map<core.String, core.dynamic> toJson() {
final nextPageToken = this.nextPageToken;
final operations = this.operations;
final unreachable = this.unreachable;
return {
'nextPageToken': ?nextPageToken,
'operations': ?operations,
'unreachable': ?unreachable,
};
}
}
/// This resource represents a long-running operation that is the result of a
/// network API call.
class GoogleLongrunningOperation {
/// If the value is `false`, it means the operation is still in progress.
///
/// If `true`, the operation is completed, and either `error` or `response` is
/// available.
core.bool? done;
/// The error result of the operation in case of failure or cancellation.
GoogleRpcStatus? error;
/// Service-specific metadata associated with the operation.
///
/// It typically contains progress information and common metadata such as
/// create time. Some services might not provide such metadata. Any method
/// that returns a long-running operation should document the metadata type,
/// if any.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? metadata;
/// The server-assigned name, which is only unique within the same service
/// that originally returns it.
///
/// If you use the default HTTP mapping, the `name` should be a resource name
/// ending with `operations/{unique_id}`.
core.String? name;
/// The normal, successful response of the operation.
///
/// If the original method returns no data on success, such as `Delete`, the
/// response is `google.protobuf.Empty`. If the original method is standard
/// `Get`/`Create`/`Update`, the response should be the resource. For other
/// methods, the response should have the type `XxxResponse`, where `Xxx` is
/// the original method name. For example, if the original method name is
/// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
///
/// The values for Object must be JSON objects. It can consist of `num`,
/// `String`, `bool` and `null` as well as `Map` and `List` values.
core.Map<core.String, core.Object?>? response;
GoogleLongrunningOperation({
this.done,
this.error,
this.metadata,
this.name,
this.response,
});
GoogleLongrunningOperation.fromJson(core.Map json_)
: this(
done: json_['done'] as core.bool?,
error: json_.containsKey('error')
? GoogleRpcStatus.fromJson(
json_['error'] as core.Map<core.String, core.dynamic>,
)
: null,
metadata: json_.containsKey('metadata')
? json_['metadata'] as core.Map<core.String, core.dynamic>
: null,
name: json_['name'] as core.String?,
response: json_.containsKey('response')
? json_['response'] as core.Map<core.String, core.dynamic>
: null,
);
core.Map<core.String, core.dynamic> toJson() {
final done = this.done;
final error = this.error;
final metadata = this.metadata;
final name = this.name;
final response = this.response;
return {
'done': ?done,
'error': ?error,
'metadata': ?metadata,
'name': ?name,
'response': ?response,
};
}
}
/// A generic empty message that you can re-use to avoid defining duplicated
/// empty messages in your APIs.
///
/// A typical example is to use it as the request or the response type of an API
/// method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns
/// (google.protobuf.Empty); }
typedef GoogleProtobufEmpty = $Empty;
/// The `Status` type defines a logical error model that is suitable for
/// different programming environments, including REST APIs and RPC APIs.
///
/// It is used by [gRPC](https://github.com/grpc). Each `Status` message
/// contains three pieces of data: error code, error message, and error details.
/// You can find out more about this error model and how to work with it in the
/// [API Design Guide](https://cloud.google.com/apis/design/errors).
typedef GoogleRpcStatus = $Status00;
/// Represents a textual expression in the Common Expression Language (CEL)
/// syntax.
///
/// CEL is a C-like expression language. The syntax and semantics of CEL are
/// documented at https://github.com/google/cel-spec. Example (Comparison):
/// title: "Summary size limit" description: "Determines if a summary is less
/// than 100 chars" expression: "document.summary.size() \< 100" Example
/// (Equality): title: "Requestor is owner" description: "Determines if
/// requestor is the document owner" expression: "document.owner ==
/// request.auth.claims.email" Example (Logic): title: "Public documents"
/// description: "Determine whether the document should be publicly visible"
/// expression: "document.type != 'private' && document.type != 'internal'"
/// Example (Data Manipulation): title: "Notification string" description:
/// "Create a notification string with a timestamp." expression: "'New message
/// received at ' + string(document.create_time)" The exact variables and
/// functions that may be referenced within an expression are determined by the
/// service that evaluates it. See the service documentation for additional
/// information.
typedef GoogleTypeExpr = $Expr;